HomeBlogMeta ROAS

Why Meta’s in-platform ROAS lies (and what to track instead)

Meta Ads dashboard reporting overstated ROAS

Open Ads Manager and the ROAS column looks great. Pull the number against actual store revenue and it almost never matches. That gap isn’t a tracking bug you can patch — it’s how the platform is built to report. Here’s why the number is structurally inflated, and what to look at instead.

Why the number is inflated by design

Meta gets credit for a sale under generous rules: a 1-day view window (someone scrolled past your ad and bought a day later — counted) and a 7-day click window (they clicked once, browsed, and bought a week later through a completely different path — still counted). Neither proves the ad caused the sale. It just proves Meta was somewhere in the picture, and the platform is incentivised to take credit for as much as the attribution rules allow.

Three ways it double-counts you

  • Overlapping campaigns: run prospecting and retargeting at once and the same buyer can get “credited” to both, inflating combined ROAS beyond what actually happened.
  • Cross-channel halo: a customer who saw your TikTok Shop video, then your Meta ad, then searched your brand on Google gets attributed fully to whichever platform’s pixel fires last — usually Meta, since it’s aggressive about claiming the touch.
  • Organic and branded demand: people who already knew your brand and would have bought anyway still count as an ad-driven sale if they happened to see or click one on the way.
A brand spending across TikTok Shop, Meta, and Google will often see combined platform-reported revenue that’s 20–40% higher than what actually lands in the bank. That gap is the cost of trusting the dashboard.

Signs your ROAS number is more fiction than fact

  • The math never quite adds up. Sum every channel’s self-reported revenue and it’s consistently higher than what actually landed in the store — a sign of overlapping credit, not a fluke.
  • ROAS jumps when you pause other channels. If turning off Google or TikTok ads barely moves total revenue, Meta wasn’t driving as much incremental demand as its dashboard claimed.
  • Retargeting looks unbelievably efficient. Warm-audience campaigns almost always show inflated ROAS because they’re catching people who were already about to buy.
  • The number moved but nothing else changed. A sudden ROAS jump with flat spend and flat creative is usually an attribution-window quirk, not a real performance shift.

What to track instead

None of this means stop advertising on Meta — it means stop making budget decisions off Meta’s own scoreboard. Use metrics anchored to your actual revenue:

  • Blended ROAS / MER: total revenue from your store divided by total ad spend across every channel, for the same period. Simple, and it can’t double-count.
  • CAC by cohort: what it actually costs to acquire a customer, tracked against lifetime value, not last-click cost.
  • Clean Pixel + Conversions API: server-side events deduplicated against browser events, so at least the input data is accurate even before you touch attribution logic.
  • Incrementality tests: geo or audience holdouts that turn a campaign off for a slice of your market and measure the real revenue delta — the only method that proves causation, not correlation.
  • A single source of truth: one dashboard reconciling store revenue against total spend, refreshed daily, that every other number gets checked against.

Build the source of truth once

Most accounts never get an honest read because nobody owns the reconciliation — each platform reports its own number and nobody adds it all up against what actually shipped. Once you build that blended view, decisions get simpler: you scale what moves the top-line number, not what a platform decided to take credit for. It also exposes the real winners: campaigns that look mediocre in-platform sometimes carry more incremental weight than the ones with the flashiest self-reported ROAS.

A basic holdout test is easier to run than most teams expect: pick a geography or audience segment, exclude it from a campaign for two to four weeks, and compare its revenue to a similar segment that still saw ads. The gap between the two is your real incremental lift — not the number Ads Manager reports, but the number your bank account would agree with. Run it once a quarter on your biggest campaigns and you’ll know within a few percentage points how much of your “ROAS” was ever real.

This is exactly the tracking and reporting layer we build into every Meta Ads account we manage — clean Pixel and CAPI, blended reporting against real revenue, and scaling decisions made on what the holdout data actually shows.

Ready to see what Meta is really driving?

Tell us your brand and market and we’ll show you blended return, not the platform’s. No lock-in, no fluff.

Chat with us