Your Meta Ads Manager says 4.2× ROAS. Your Google Ads says 3.8×. Add them together and you're supposedly generating more revenue from ads than your total revenue. Something doesn't add up — because it doesn't. Both platforms are lying to you.
Why Platforms Over-Report ROAS
Every ad platform has an incentive to show you strong performance numbers. The mechanism that creates inflated ROAS is attribution window overlap:
- Cross-channel double counting. A user sees your Facebook ad on Monday, clicks your Google ad on Wednesday, and buys on Thursday. Both Meta and Google claim the full conversion value. Your Shopify/analytics platform records one sale. You appear to have generated $200 revenue from $50 spend across two platforms — but only $100 actually happened.
- View-through attribution inflation. Meta's default 1-day view attribution means any user who saw your ad (even without clicking) and then purchased within 24 hours is attributed. Most of those users were going to buy anyway.
- Broad attribution windows. The standard 7-day click, 1-day view window on Meta means purchases made a week after clicking an ad are fully attributed — even if the user visited your site 4 more times via organic channels in between.
How to Calculate True ROAS
True ROAS — what some call blended ROAS or MER (Marketing Efficiency Ratio) — is simple: Total Revenue ÷ Total Ad Spend. Not per-platform. Total.
If you spent $10,000 on ads last month (across Meta and Google) and your Shopify recorded $32,000 in revenue, your MER is 3.2×. If Meta reports 4.2× and Google reports 3.8× independently, those numbers are platform-siloed fictions. 3.2× is the real number.
From there, you can use incrementality testing (geo holdouts, ghost bids) to determine each channel's true contribution to incremental revenue — but MER is the starting point that grounds you in reality.
The Attribution Model That Matters
For most growing brands, the priority order for attribution accuracy is:
- Fix the signal layer first. Server-side CAPI ensures you're counting real conversions, not missing 20–40% due to iOS blocking. You can't attribute what you can't see.
- Use data-driven attribution. Switch from last-click to data-driven attribution in both Meta and Google. It distributes credit across touchpoints rather than awarding 100% to the last click.
- Track MER weekly. Total revenue ÷ total spend is your north star. Individual platform ROAS is a guide to relative channel performance, not absolute ROI.
- Run incrementality tests. Every 90 days, run a holdout test on your top channel to confirm your attribution model isn't overstating its contribution.
What Zephra Does With Attribution Data
Zephra implements server-side CAPI on setup, then builds a cross-channel view of performance using verified signal data — not just what each platform reports. The Decision Engine sees total performance across Meta and Google simultaneously, which means budget allocation decisions are made on a unified cross-channel intelligence layer, not each platform's siloed version.
The reasoning logs show you exactly which signals drove each budget decision — and when a platform's reported ROAS and your verified server-side signals conflict, Zephra surfaces the discrepancy rather than silently optimising on the wrong number.
Explore Zephra's Decision Engine architecture → · How it works in practice →
Audit your campaign performance
Connect one ad account and Zephra will audit your ROAS — identifying what's underperforming, where improvements can be made, and what to prioritise first. No commitment. No credit card.
Start free audit →