8 min read
Real ROAS vs Platform-Reported ROAS: Why Your Ads Feel Profitable But Aren't
The ROAS number in your ad dashboard is not the ROAS that matters for your business.
· Grometrics Team
The short version
You launch a campaign on Meta, Apple Search Ads, or Google. The platform shows a ROAS of 4.5x. You scale the spend. Weeks later, your Stripe or RevenueCat dashboard shows revenue that does not match what the ad platform promised. Something is wrong, and it is not your product.The ad platform is grading its own homework. When Meta reports a conversion, it is reporting a click or view that it believes caused the purchase. When Apple Search Ads attributes an install, it is attributing based on its own matching logic. Neither platform sees what happens inside your payment flow, and neither platform sees refunds, churned subscriptions, or customers who bought from a different source after clicking your ad.Grometrics exists because digital product sellers, mobile app developers, and course creators need to know where money actually comes from. This article explains why platform-reported ROAS differs from real ROAS, what gets misattributed, and how payment-backed attribution closes the gap.
- Platform-reported ROAS includes conversions that happened without your ad, inflated by last-click logic and cross-device tracking gaps.
- Payment-backed reporting ties every purchase, renewal, and refund back to the actual source that drove the customer.
- Real ROAS reveals which campaigns create paying customers and which merely generate clicks that never convert.
- Server-side, first-party tracking captures conversions that ad pixels miss because of browser restrictions or checkout redirects.
- Connecting payment data to acquisition context transforms ROAS from a vanity metric into a revenue decision tool.
What Platform-Reported ROAS Actually Measures
Every ad platform wants you to keep spending. The most effective way to do that is to show you results that look good, and the primary metric they control is conversion attribution. When you run a Meta Ads campaign, Meta decides which of its clicks count as conversions. The decision is made using Meta's own matching algorithms, which prioritize showing you a number that justifies continued spend.
The problem is that attribution is not the same as causation. A user clicks your Meta ad, leaves, and later searches for your product by name on Google. They land through an organic result, read your sales page, and buy. Meta still claims that conversion because the click happened within its attribution window, even though organic search actually drove the sale. This is called last-click attribution, and it systematically overstates the impact of ad platforms while understating every other channel.
For mobile apps, the problem compounds. Apple Search Ads reports an install attribution based on the AdServices API. RevenueCat reports a purchase. If the user installs through Apple Search Ads but buys through a web paywall linked from Instagram, Apple Search Ads still claims credit for the install while your payment data shows the revenue came from a different source. The two systems do not talk to each other, and neither one sees the full journey.
- Last-click attribution credits the final touchpoint, even when earlier channels drove the actual purchase decision
- Cross-device journeys break attribution because a user may click an ad on mobile but convert on desktop
- Attribution windows vary between platforms, so a conversion counted on day one may have been driven by a touchpoint from day seven
- Ad platforms do not see refunds, cancellations, or churned subscriptions, so they overstate net revenue
- SKAdNetwork and App Tracking Transparency limits have reduced pixel accuracy, making platform attribution even less reliable
The attribution gap costs more than you think: If your reported ROAS is 4.5x but actual revenue from paid channels is 40 percent lower after accounting for refunds and cross-channel leakage, you are scaling campaigns that are barely breaking even or losing money.
Why Real ROAS Requires Payment Data
Real ROAS starts with the transaction, not the click. When a customer pays through Stripe, LemonSqueezy, Gumroad, Paddle, PayPal, or RevenueCat, that payment record contains the amount, the timestamp, the currency, and the customer identifier. That data is ground truth. It is not subject to attribution window decisions or matching algorithm biases. The customer paid, and that payment is real.
Grometrics connects payment data to acquisition data by matching customer records across the entire journey. When a user arrives through a specific campaign, visits specific pages or screens, and eventually completes a purchase, that complete chain is visible in Grometrics. The purchase is tied to the campaign, the keyword, the ad group, and the creative that drove the initial interest. No ad platform controls this matching because the payment data lives outside the ad platform.
This approach also captures refunds and churned subscriptions. If a customer buys a course for $197, watches 20 minutes of content, and requests a refund through Gumroad, the ad platform still counts that as a conversion. Grometrics subtracts the refund and shows the net revenue contribution. For mobile apps with RevenueCat, the same applies to failed renewals, canceled subscriptions, and promo code redemptions. Real ROAS is revenue minus what actually stayed in your account.
- Payment-backed ROAS uses Stripe, RevenueCat, Gumroad, or LemonSqueezy transaction records as the source of truth
- Refunds, chargebacks, and churned subscriptions reduce attributed revenue, providing accurate net ROAS
- Server-side tracking captures conversions that browser-based pixels miss, especially on mobile and Safari
- Campaign, keyword, and creative-level ROAS becomes possible when payment data is connected to acquisition context
- Real ROAS tells you which campaigns create customers who pay and keep paying, not just clicks that look like conversions
Revenue is the only metric that pays your bills: Clicks, installs, and impressions are vanity metrics. Revenue minus refunds is the number that determines whether your ad spend is a growth engine or a money pit.
How To Track Real ROAS With Grometrics
Setting up real ROAS tracking begins with connecting your payment provider to Grometrics. Whether you use Stripe for course payments, RevenueCat for mobile subscriptions, Gumroad for digital downloads, or LemonSqueezy for membership sites, the integration pulls every transaction, renewal, and refund into a unified revenue view. This takes minutes with the lightweight tracking script or mobile SDK, and no engineering-heavy setup is required.
Next, ensure your campaign URLs or ad attribution is wired to the same customer identifiers that your payment provider records. Grometrics matches the visitor journey from the first ad click through every page visit, screen view, and checkout interaction. When a purchase completes, the revenue is attributed to the campaign, source, and keyword that started the journey. If the customer arrived through organic search but had clicked a Meta ad two weeks earlier, Grometrics can show both touchpoints and weight them according to your attribution model.
Finally, build your real ROAS dashboard. Filter by campaign, ad group, keyword, or creative. Compare platform-reported ROAS side by side with Grometrics-attributed revenue. Look for campaigns where the gap is largest. These are the campaigns that appear profitable in the ad platform but are likely breaking even or losing money in reality. Cut spend on those, and redirect budget to campaigns where real ROAS exceeds platform-reported ROAS, because those are the ones actually driving revenue.
- Connect Stripe, RevenueCat, Gumroad, LemonSqueezy, Paddle, PayPal, or Shopify to pull transaction-level revenue data
- Use campaign URL parameters and first-party tracking to capture every acquisition touchpoint
- Compare platform-reported conversions against payment-backed attributed revenue to identify overstatement
- Filter by campaign, keyword, creative, and time period to see exactly where revenue is coming from
- Track net revenue after refunds, cancellations, and churn to get the true contribution of each channel
Start with one payment provider: You do not need to connect every tool at once. Start with your primary payment provider, connect your current ad campaigns, and immediately see the gap between what the platform claims and what actually landed in your account.
What To Do When Platform ROAS and Real ROAS Diverge
When you see a large gap between what the ad platform reports and what Grometrics shows, the first step is to stop scaling based on platform data alone. The platform sees clicks and claims conversions, but you are the one paying for the ad spend with real money. Trust your payment data more than the platform dashboard, because the platform has every incentive to inflate its own numbers.
The second step is to investigate the attribution path. In Grometrics, you can see the full journey from first touch to purchase. If a campaign shows high platform ROAS but low real ROAS, check whether those users are dropping off before reaching the payment page, bouncing after seeing the pricing screen, or converting at a lower rate than the platform assumes. Sometimes the campaign brings clicks but the landing page or paywall is the bottleneck, not the ad.
The third step is to reallocate budget toward channels with the highest real ROAS. If Apple Search Ads keywords show 3.2x real ROAS while Meta campaigns show 1.1x after refunds, the math is simple. You spend more on what actually drives revenue. This is the core value of payment-backed attribution: it replaces guesswork with numbers that reflect actual business outcomes.
- Pause or reduce spend on campaigns where real ROAS is significantly lower than platform-reported ROAS
- Use funnel data to identify where users drop off, whether at landing pages, pricing screens, or checkout
- Double down on channels and campaigns with the highest net revenue contribution after refunds
- Reconcile platform-reported spend with actual payment data monthly to catch attribution drift early
- Document the gap between platform and real ROAS to build internal alignment around data-driven spend decisions
The gap is your opportunity: Every percentage point of ROAS inflation is money you are leaving on the table or spending without justification. Payment-backed attribution reveals the truth so you can stop guessing which ads are actually profitable.
READY TO SEE YOUR REAL NUMBERS?
Connect your payment provider and see which channels actually drive revenue.
Start tracking for free →RELATED POSTS