Which number to trust for which decision.
Every Monday for two years, our weekly meeting opened with the same argument. The media buyer had Meta's number. The agency had Google's. The finance person had Shopify's. GA4 had a fourth number that nobody had asked for. We spent twenty minutes deciding which was "real" and then made decisions on whichever one had been said most confidently.
The one-sentence version
The numbers never match because each tool counts a different thing and calls it revenue. Shopify counts orders. Meta counts touches inside its window. Google counts touches inside its window. GA4 counts sessions it managed to follow. Only one of those is money.
The setup
Try it: last month, four tools
Type your numbers. Get the diagnosis.
Ad platforms and email claim 149% of what you actually sold
Platforms claim 149% of your revenue. Overlap and view-through are doing the rest. GA4 sees 38% less than Shopify. Consent declines, Safari and checkout session loss. Do not use GA4 for ad budgets.
Shopify is the only receipt. Everything else is a claim on it.
Tool by tool
| Tool | Counts | Misses | Bias |
|---|---|---|---|
| Shopify | Orders and revenue | Which ad caused them | None |
| Meta Ads Manager | Touches in its window, modeled | Every other platform, cross-device | High |
| Google Ads | Touches in its window, last click | Consent declines, Safari, Meta | Brand search high, non-brand low |
| Klaviyo | Opens or clicks in its window | Paid touches, Apple Mail auto-opens | High |
| GA4 | Sessions it can follow | Checkout hops, consent declines, cross-device | Low, and 'direct' balloons |
Why it matters
The twenty minutes were not the cost. The cost was that whoever argued best that week set the budget. A reconciled number ends the argument because there is nothing left to argue about. Channel revenue that sums to Shopify revenue cannot be gamed by picking a tab.
The agency was not wrong about Google. The buyer was not wrong about Meta. They were both right inside a tool that could only see itself.
The fix
Take every Shopify order. Attach every touch from every platform and the survey answer. Split the credit once. Now the per-channel revenue sums to the Shopify total by construction. Keep Ads Manager open for creative and delivery, keep GA4 for on-site behaviour, and stop asking either of them how much you sold. That reconciled table is TrueROAS's home screen.
Honest footnote
A 5 to 10% difference between Shopify and the sum of platform claims is normal noise. Above 20%, or below 60%, something structural is going on and it is worth an hour.
Questions people actually ask
Which number is right?
Shopify, for revenue. It counts orders. Every other tool counts something else (touches, sessions, events) and reports it in a way that looks like revenue.
Why is GA4 so low?
GA4 drops consent-declined sessions, loses the session on Shopify's checkout domain in many setups, applies thresholds, and attributes anything it cannot follow to 'direct'. It is a behaviour tool, not a reconciliation tool.
Can I just scale each platform's number down?
A single factor per platform hides the campaign-level differences that matter. Retargeting over-reports far more than prospecting inside the same account.
So what should each tool be used for?
Shopify for revenue. Ads Manager for delivery diagnostics and creative. GA4 for on-site behaviour. Order-verified attribution for deciding where the money goes.
See your own numbers, verified against your orders.
Free under $10k/month in revenue. 14-day trial above that. Nothing changes in your ad accounts. You will know within a week which platform has been telling stories.

"I built this because I was making $50k-a-month decisions on numbers I knew were wrong. If TrueROAS does not show you something Meta or Google got wrong in the first two weeks, tell me and I will help you cancel."
Rasmus Arvidsson
Founder, TrueROAS. Answers support himself.
Keep going