Meta almost always reports a higher ROAS than your bank shows, for three structural reasons: it claims credit for sales across a multi-day attribution window, it counts view-through and cross-channel conversions that other platforms also claim, and the browser pixel over- or under-fires depending on ad blockers and iOS privacy. The fix is to reconcile Meta's number against real orders and buy to blended margin.
Two numbers that never match
Open Meta Ads Manager and it might show a 4x ROAS. Open your Shopify dashboard or your bank statement for the same period and the revenue is lower, sometimes far lower. Both numbers are real. They are just measuring different things, and only one of them pays your bills.
Meta's ROAS is a modelled, platform-side estimate of the sales it believes its ads influenced. Your bank balance is the money that actually landed. When you scale spend against the first number without checking it against the second, you can grow reported ROAS while shrinking real profit.
Attribution windows inflate the number
By default, Meta credits a conversion when someone buys within a window after clicking or even just viewing your ad, commonly seven days after a click and one day after a view. If a customer sees your ad, then buys three days later after a Google search and an email, Meta still books that sale as its own.
That means Meta counts purchases it merely touched, and sometimes purchases that would have happened anyway. The wider the window, the more generous the number, and the further it drifts from the revenue you can actually spend.
Every platform claims the same order
Run Meta and Google and email at the same time and each one will claim credit for the same order in its own dashboard. Add the platform ROAS figures together and the implied revenue can exceed your total sales, which is impossible. This is double counting, and it is why summing platform-reported numbers is meaningless.
The only denominator that cannot double count is your real total revenue. Measured against that, the honest question is not what each platform claims, but whether your blended return across all spend clears your margin.
The pixel sees a distorted slice
Even Meta's own count is built on incomplete data. The browser pixel loses events to ad blockers, iOS App Tracking Transparency opt-outs, and cookie restrictions, so it under-fires for some users. A misconfigured pixel can also over-fire or fire the wrong values, corrupting the very data your ad account learns from.
Rebuilding tracking server-side with first-party Meta Conversions API (CAPI), and reconciling every event against real orders, is what turns that distorted slice back into a signal you can trust. It is the foundation of everything we do, before we buy a single impression.
Buy to blended truth, not platform ROAS
The way out is to stop optimising to the number inside the ad account and start optimising to reality. Track your blended return, total revenue divided by total spend, and your blended customer acquisition cost against contribution margin. Let Meta's in-platform ROAS be a directional signal, not the scoreboard.
Once your tracking tells the truth and you buy to margin, the two numbers stop being a source of confusion and start agreeing on the only thing that matters: the profit you actually keep.

