What each tool is actually counting
Open three tabs on the same week and you get three revenue figures. That is not a bug in any of them. They were built to answer three different questions, and none of those questions is "how much money did the shop make from ads".
| Tool | What it counts | Where the difference comes from |
|---|---|---|
| Shopify or WooCommerce | Every order placed in your store, whatever caused it | Repeat buyers, email, organic and word of mouth are all in there. It has no idea which ad was involved. |
| Meta Ads | Sales it can match to someone who clicked or saw one of your ads inside its attribution window | Misses buyers whose tracking was blocked. Claims sales that other channels also touched. |
| Google Ads | Sales it attributes to a Google click, by its own attribution model | The same order can be claimed here and in Meta. Both were genuinely involved. |
| GA4 | Sessions with a purchase, credited to the last non-direct source | Different lookback window, consent gaps, and modelled conversions filling in what it could not observe. |
Read that table once more with your own numbers in mind. Shopify counts orders. Meta counts credit. GA4 counts sessions. Three different units, printed with the same euro sign in front of them.
Why none of them are lying
Say a customer sees your Instagram ad on Tuesday, ignores it, gets your abandoned-cart email on Thursday, searches your brand name on Google on Friday and buys. Who made that sale?
Meta says it did - the ad was seen inside its window. Google says it did - the last click was a search ad. GA4 says the search brought the session. Your email tool says the reminder did it. All four are describing something real about that one order. Add their reported revenue together and you have four times the money your bank actually received.
Attribution windows make it worse in a way most people never check. Meta's default counts a purchase within seven days of a click and one day of a view. Google Ads defaults to a thirty-day window on a different model. So the same order can land in Meta's Tuesday column and Google's Friday column. Neither platform is aware the other one also counted it.
See all four numbers side by side
Connect your store and your ad accounts and Magneety puts real orders next to what each platform claims for the same dates - so you can see the size of the overlap instead of arguing with a dashboard.
14-day trial · no card · cancel anytimeWhich number to trust for which decision
The mistake is looking for one true number. There is not one. There is a right source for each kind of decision, and using the wrong source is what actually costs money.
Trust your store
- How much money did I actually make
- What did I pay myself this month
- Is the business growing or not
- Anything you would tell your accountant
Trust the ad platform
- Which of my ads beat the others
- Which audience or creative to kill
- Which product set to push harder
- Comparisons inside one platform only
Meta is a decent judge of Meta. It is a terrible judge of how much of your total business it deserves credit for. Use it to rank your own ads against each other, never to decide whether Meta as a channel is worth the money. For that second question you need the blended view.
GA4 sits in an awkward middle. It is genuinely useful for understanding paths - which pages people saw, where they dropped, how long they took to come back. It is a poor revenue ledger, because consent banners and cookie limits mean it never sees every session, and it fills some gaps with modelling.
The number that cannot lie: blended ROAS
Take your total store revenue for the month. Divide it by everything you spent on ads across every platform. That is your blended ROAS, sometimes called MER.
No attribution model. No double counting. No window. Money in, money out. It will not tell you which ad won, and it does include revenue that ads had nothing to do with - which is exactly why you watch it as a trend rather than as a verdict on a single campaign. When you raise spend and blended ROAS holds, the extra spend is working. When you raise spend and blended ROAS falls, it is not, no matter what the platform dashboard says.
Two things make the blended view sharper. First, count profit rather than revenue - set your margin so a low-margin €200 basket stops looking like a win. Second, keep the platform tracking as complete as you can, so the per-ad rankings you use for creative decisions are based on most of your buyers instead of half of them.
What Magneety does with this
- One screen showing store revenue, spend across Meta, Google, TikTok and Microsoft, and blended ROAS
- Real profit after ad spend once you set your margin, instead of top-line revenue
- A flag when a platform's claimed revenue drifts far from what your store actually recorded
- Server-side tracking to Meta set up by connecting, not by writing code
- AI budget pacing on the €100/month Pro plan, which moves spend towards what the blended view says is working
Where to go next
Common questions
Why does Meta report more sales than my Shopify store?
Attribution overlap. Meta counts any purchase made within its attribution window by someone who clicked or saw your ad, even if the customer arrived through email or search on the day they bought. Those orders exist in Shopify once, but Meta, Google and your email tool may each claim the same one. Compare each platform against your store total rather than against each other.
Why does Meta report fewer sales than my store?
That is usually blocked tracking rather than attribution. iOS privacy settings, ad blockers and consent banners stop the pixel firing for a share of real buyers, so Meta never learns those orders happened. Server-side tracking through the Conversions API closes most of that gap.
Which number do I put in my ROAS calculation?
For a whole-business view, use store revenue divided by total ad spend across every platform. For judging one ad against another inside Meta, use the numbers Meta reports, because at least the bias is consistent across the ads you are comparing. Never mix the two in one calculation.
Should I change my attribution window so the numbers match?
No. Shortening the window makes Meta claim less, which makes the dashboards look closer together, but it does not make either number more true and it can starve the optimisation of signal. Leave the window alone and read the blended number instead.
Does GA4 fix this?
No. GA4 is a fourth opinion, not a referee. It uses last non-direct attribution on its own lookback window, it misses sessions where consent was declined, and it models some conversions it could not observe. Useful for understanding customer paths, poor as a revenue ledger.
How close should the numbers get after I fix tracking?
They will not match, and they are not supposed to. What should happen is that the gap becomes stable and explainable: Meta consistently claiming a sensible share of your orders rather than swinging wildly week to week. A stable gap you understand is the goal, not a matching one.
See the number that cannot lie
Magneety connects your store and every ad account, shows real revenue against what each platform claims, and tells you in plain English which channel actually earned its budget.
See my blended ROAS - free for 14 days 14-day trial · from €50/month after · see plans