Why does Meta report more revenue than Shopify?
Platform revenue almost never matches your store back-end. Here is exactly where the gap comes from, how large a gap is normal, and how to reconcile the two without arguing.
Short answer
Meta reports more revenue than Shopify because it credits every conversion inside its attribution window, including view-through conversions and purchases also claimed by Google or email. A 20–40% gap is normal. Reconcile by comparing blended revenue to total spend rather than platform totals.
Key takeaways
- Attribution windows, view-through credit and cross-channel overlap create the gap — not broken tracking, usually.
- Adding up every platform's reported revenue typically produces 130–160% of real revenue.
- A gap above roughly 50% points at a real tracking or deduplication problem worth fixing.
- Shopify's own attribution is last-click and under-credits ads; the truth sits between the two.
- Blended ROAS and marketing efficiency ratio remove the argument entirely.
The four sources of the gap
First, attribution window. Meta's default 7-day click / 1-day view means a purchase seven days after a click still counts, while Shopify's last-click model credits whatever brought the visitor back on the day.
Second, view-through conversions. Someone who saw your ad, did not click, then searched your brand and bought is a Meta conversion and a Google conversion at the same time.
Third, cross-device. Meta matches a phone impression to a desktop purchase through logged-in identity; your analytics usually cannot.
Fourth, genuine measurement error: missing Conversions API events, broken deduplication, consent-denied traffic modelled rather than observed.
| Cause | Typical contribution to gap |
|---|---|
| Attribution window length | 10–20% |
| View-through conversions | 5–15% |
| Cross-device matching | 5–10% |
| Duplicate pixel + CAPI events | 0–25% (fixable) |
The first three are structural. The fourth is a defect and should be eliminated.
How much gap is normal
For a healthy account with server-side tracking and correct deduplication, expect Meta to report 20–40% more purchases than your store attributes to Meta. Below 15% usually means under-tracking; above 50% means duplicated events, a missing event ID, or a heavy brand-search overlap.
The direction matters more than the number. A stable gap you can predict is workable; a gap that swings from 15% to 70% month to month means your data layer is unreliable and every optimisation decision downstream is compromised.
Fix the part that is genuinely broken
Deduplication is the most common real defect. The browser pixel and the Conversions API must send the same event with the same event ID, or every purchase is counted twice.
The second most common defect is consent handling. With Consent Mode v2, denied traffic should be modelled consistently rather than silently dropped, otherwise reported revenue drifts with your cookie-banner acceptance rate rather than with performance.
- Send a shared event ID from both pixel and Conversions API
- Hash customer data with SHA-256 before it leaves your server
- Verify event match quality in Events Manager monthly, not once at setup
- Confirm purchase value excludes VAT and shipping consistently in both systems
Reconcile with blended numbers
Stop trying to make two attribution models agree — they are answering different questions. Instead, run a monthly reconciliation: total store revenue, total ad spend across all platforms, and the resulting blended ROAS or marketing efficiency ratio. That single ratio cannot be inflated by any platform.
Then use each platform's internal numbers only for internal comparisons: this campaign versus that campaign, this creative versus that creative.
| Line | Source |
|---|---|
| Total revenue | Store back-end |
| Total ad spend | All ad platforms |
| Blended ROAS | Revenue ÷ spend |
| New-customer revenue | Store back-end segment |
| Contribution profit | Revenue − COGS − spend |
The incrementality question
The honest version of this question is not 'who gets the credit?' but 'what would have happened without the ads?'. Geo holdout tests and campaign pause tests answer that directly: turn spend off in comparable regions for two to four weeks and measure the revenue difference.
Most brands never do this and rely on platform numbers forever. Running one holdout per year is usually enough to calibrate how much of the reported ROAS is real.
FAQ
Which number should I report to my board?
Blended ROAS or marketing efficiency ratio alongside contribution profit. Platform-reported revenue invites double-counting and will not survive scrutiny when someone adds the channels together and finds more revenue than the P&L shows.
Does turning off view-through attribution fix the gap?
It shrinks the gap but also hides real influence, especially for video-heavy accounts. A better approach is keeping the default window for optimisation and reporting blended numbers for decisions.
Can server-side tracking make the gap larger?
Yes, initially. Recovering conversions that browsers previously blocked increases reported conversions. That is the tracking working, and the resulting signal improvement usually lowers real cost per acquisition within a few weeks.
Keep reading
Want this run on your own account?
Request a free ad account audit. We review tracking, account structure, creative mix and wasted spend, and send back a prioritised 90-day plan within 48–72 hours of getting access.