Fix guide

Shopify says €9,400. Facebook says €5,100. Who is lying?

Nobody. Each tool counts a different thing, and each one grades its own homework. Here is what each number actually measures, and which one you should be making decisions with.

Denislav Kalchevruns ads daily at Magnet Minds
Updated 2026-08-30 7 min read

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".

ToolWhat it countsWhere the difference comes from
Shopify or WooCommerceEvery order placed in your store, whatever caused itRepeat buyers, email, organic and word of mouth are all in there. It has no idea which ad was involved.
Meta AdsSales it can match to someone who clicked or saw one of your ads inside its attribution windowMisses buyers whose tracking was blocked. Claims sales that other channels also touched.
Google AdsSales it attributes to a Google click, by its own attribution modelThe same order can be claimed here and in Meta. Both were genuinely involved.
GA4Sessions with a purchase, credited to the last non-direct sourceDifferent 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.

The tell: add up what every platform claims and compare it to Shopify's total for the same dates. If the claimed sum is well above your real revenue, you are looking at overlap, not fraud. If it is well below, you are looking at blocked tracking - that is a different problem, and it is fixable.

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 anytime

Which 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.

Know your floor before you judge anything Work out the ROAS where you stop losing money with our free breakeven ROAS calculator, then check a campaign against it in the ROAS calculator. No signup for either.

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 we are not the answer: if you spend on one platform only and you are happy ranking creatives inside it, the native dashboard is free and it is enough. Magneety earns its keep when there are two or more channels, a store, and a genuine question about which one deserves the next €500. Plans start at €50/month with a 14-day trial and no card - see what each one includes.

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