Omesta
ProductHow it worksWhy OmestaPricingFAQ
Sign inGet Free Audit
← All posts
← All posts

Contents

  • What Meta-reported ROAS includes
  • What true ROAS measures
  • The four sources of inflation
  • The simple true-ROAS check
  • Practical implications
  • How Omesta surfaces true ROAS
True ROAS vs reported ROAS: why your Meta Ads look profitable when they're not — illustration
Omesta blog

True ROAS vs reported ROAS: why your Meta Ads look profitable when they're not

OmOmesta team·May 15, 2026

Quick answer

Meta-reported ROAS includes click-through purchases, view-through purchases, modeled iOS conversions, and 28-day attribution windows. True ROAS is what your bank actually sees. The gap is usually 30-60%. Here's how to measure both.

8 min read

Most e-commerce operators tune Meta Ads based on the ROAS number in Meta Ads Manager. That number is wrong, and the way it's wrong is consistent: it's almost always inflated 30-60% above true ROAS — the ROAS your bank actually sees at the end of the month.

Some campaigns that look profitable on Meta are unprofitable in real life. Some campaigns that look mediocre are actually crushing. You can't tell which is which without measuring true ROAS separately.

What Meta-reported ROAS includes

What Meta-reported ROAS includes — illustration

The headline ROAS in Ads Manager is the sum of attributed conversion values divided by ad spend. "Attributed" is doing a lot of work in that sentence. Specifically, Meta counts a purchase as attributed to an ad if any of these happened:

1. The customer clicked the ad and purchased within 7 days (default click attribution). 2. The customer viewed the ad and purchased within 1 day (default view attribution). 3. The customer was on iOS without ATT consent and Meta modeled a probable conversion for them. 4. The customer triggered a CAPI event that matched ad exposure data.

By default, Meta's "Purchases" column is the union of all four. So a single sale to one customer can be attributed simultaneously to:

  • The Meta video they saw last week (view attribution).
  • The Meta carousel they clicked on yesterday (click attribution).
  • A Google Ads search they did this morning (Google takes credit too).
  • An email you sent (your ESP takes credit).

If you sum up "attributed revenue" across all your tools, the number is bigger than your total revenue. Everyone is taking credit for the same purchase.

What true ROAS measures

What true ROAS measures — illustration

True ROAS is the dollars your bank deposits divided by the dollars you spent on a specific channel, with channel attribution done at the visitor level — not the impression level. If a customer touched Meta, Google, and email before buying, true ROAS doesn't give Meta 100% credit; it splits the credit (or assigns it to the highest-leverage touchpoint depending on your model).

For a clean measurement:

1. Pull total revenue from your store's source of truth (Shopify, Stripe, your ERP). 2. Pull total ad spend per channel from each channel's billing. 3. Apply an attribution model that matches the customer journey: time-decay, position-based, or first-touch — whatever fits your funnel. 4. Compare attributed revenue per channel to spend per channel.

That ratio is what your business actually runs on.

The four sources of inflation

The four sources of inflation — illustration

Reported ROAS exceeds true ROAS for four reasons, usually compounding:

1. View-through attribution

A "view-through conversion" is a sale where the customer saw your ad but didn't click. Meta counts it as ad-driven. Reality: many of these would have happened anyway. Industry estimates put the incrementality of view-through at 10-30% — meaning 70-90% of view-through credit is for sales Meta didn't actually drive.

2. Long attribution windows

Meta's default click window is 7 days. If a customer clicks an ad on day 1 and buys on day 7 — but also sees three of your emails and a Google retargeting ad in between — Meta gets full credit. Tightening the window to 1-day click only is a more conservative measure that aligns better with true ROAS.

3. Modeled conversions

For ATT-denied iOS users, Meta fills in probable conversions using a model. The model has systematic bias (it tends to over-predict for high-spending advertisers). Modeled conversions can be 15-30% off in either direction. See our iOS attribution guide for how to read modeled data correctly.

4. Double-counted CAPI

Stores that send both pixel events and CAPI events without proper deduplication see their conversion volume inflate. The fix is correct event_id matching. Many stores still have this bug. Omesta's leak scan catches it.

The simple true-ROAS check

The simple true-ROAS check — illustration

You don't need fancy MMM (media mix modeling) to know whether your reported ROAS is wildly inflated. Do this once a month:

1. Total revenue for the month from your store (call it R). 2. Total ad spend across all channels for the month (call it S). 3. Compute overall blended return: R/S. 4. Compare to the sum of channel-reported "ad-driven revenue" / S. If the second number is much higher than the first, your channels are over-attributing.

Most stores find that summed channel-reported ROAS is 30-60% higher than blended actual ROAS. That gap is what you're optimizing against when you tune campaigns on reported numbers alone.

Practical implications

If your Meta-reported ROAS for a campaign is 2.5x and your true ROAS is 1.5x, that campaign might still be profitable (depending on margin) but it's nowhere near as profitable as Meta says. If you scale it based on reported ROAS, you'll scale into unprofitability.

Conversely, a campaign with reported ROAS of 1.0x but true ROAS of 1.6x is doing more work than you think — usually because it's driving customers who later convert through other channels Meta doesn't see.

How Omesta surfaces true ROAS

Omesta correlates Meta ad spend with Stripe revenue at the customer level, using order timing, first-touch URL parameters, and CAPI event IDs. The dashboard shows reported ROAS, true ROAS, and the gap between them — per campaign, per ad set, per ad.

Most accounts find that 20-30% of campaigns have a reported-vs-true gap big enough that the right action is to cut or scale aggressively. Tuning to the right number changes the budget allocation by thousands of dollars a month for most stores.

See the leak scan or browse the full leak pattern library.

Related reading

  • What Is a Good Conversion Rate? Understanding Benchmarks for Success

    Discover what is a good conversion rate with industry benchmarks, factors influencing success, and strategies to optimize your performance.

  • Understanding Google Ads Cost Per Click: A Comprehensive Guide

    Understand Google Ads cost per click (CPC). Learn factors influencing CPC, budget control, and optimization tactics for efficient ad spend.

  • Beyond TikTok: Mastering Targeted Ads on Other Platforms

    Master targeted ads outside of TikTok on platforms like Meta & Pinterest. Learn strategies for creative, targeting, & optimization to boost conversions.

Get started

See your own leaks

Two minutes. No card. Read-only. The same scan that found a median $3,900 in month-one recoveries last week.

Run a leak scanSee pricing
Omesta

The standard for revenue recovery. Protecting payments, attribution, and ad spend.

Contact

Omesta Systems LLC
5830 E 2nd St
Ste 7000 #33555
Casper, WY 82609
support@omestasystems.com
Product
  • Platform
  • Pricing
  • Integrations
  • AI revenue recovery
  • How it works
  • Developers
Solutions
  • Local businesses
  • E-commerce
  • Marketing agencies
  • Growth teams
  • Multi-brand
Resources
  • Blog
  • Case studies
  • Glossary
  • Compare
  • Help center
  • Roadmap & feedback
  • Changelog
  • System status
Company
  • About
  • Careers
  • Partners
  • Press
  • Security
  • Contact
  • Privacy
  • Terms
  • Refund policy
  • Data disclosure

As featured in

See all 500+ features →
AP NewsNewsBreakBoston HeraldInternational Business TimesStar TribuneStreet InsiderMilwaukee Journal SentinelBarchart

© 2026 Omesta Systems. All rights reserved.

Privacy PolicyTerms of Service