Why is my Facebook ROAS different from Shopify?
Meta counts sales Shopify never credits to it — views without clicks, longer windows, and customers other channels also claim. Here is why the two never match.
Short answer: Meta counts sales that Shopify never credits to it. It counts people who saw your ad without clicking, it counts sales for days or weeks after the click, and it counts customers that Google and your email tool are also counting. Shopify only sees somebody arrive and buy.
Neither system is broken. They are answering different questions. Here are the five reasons they diverge, in rough order of how much damage each does.
1. Meta counts views, not just clicks
By default Meta will credit a sale if someone saw your ad and later bought, without ever clicking it. That is a view-through conversion.
There is a real argument for it — an ad someone scrolled past can still do work. But if you show an ad to a hundred thousand people, a number of them will buy from you that week for reasons having nothing to do with the ad. They were already customers. They were already searching for you. The ad was in the room and takes the credit for being there.
Shopify has no idea any of that happened. It sees a visit and a purchase.
2. The attribution windows are different, and they are a setting
Meta credits a sale if it happened within a set number of days of the click or view. Google uses a different default. Your email tool uses another.
Change that setting and the same week gets a different history. Your past performance is, to a real extent, a configuration choice.
3. Several platforms claim the same customer
This is the big one and it is structural.
One person sees your Facebook ad, searches your brand on Google, clicks a Google ad, then buys from an email. Meta counts it. Google counts it. Your email tool counts it.
One order, three claims, and every one of them is honestly answering "did I touch this sale?" It only becomes fiction when you add them together.
Add up what every platform claims for last month and compare it to your actual Shopify order count. The claimed total will be bigger. That difference is the double-counting, and it is the fastest way to see the problem in your own numbers.
4. Time zones move sales between days
Your Meta ad account has a time zone. Your Shopify store has one. They are often not the same.
An order at 11:40pm lands on Tuesday in one system and Wednesday in the other. Compare a single day and they disagree for no reason but arithmetic. Compare weeks or months instead, where the edges matter less.
5. You may be sending the same purchase twice
Modern tracking sends each purchase from two places — the shopper's browser and your server — because browsers block things and the server copy is more reliable.
Both copies carry an ID so the platform can spot the duplicate and drop one. When that ID is missing or does not match, it does not drop it. It counts both.
The tell is a platform reporting suspiciously close to exactly double what you expected. If you see that, check deduplication before anything else.
Which number should you actually use?
Build a hierarchy and stick to it.
For money, always Shopify. It is the only system in the list that watched real money move. Revenue, orders, refunds, what you kept.
For whether Meta is improving, use Meta — compared only to itself. This is the part people throw away in frustration, and it is genuinely useful. Meta's numbers are bad at telling you how much Meta made you. They are fine at telling you whether this week's Meta beats last week's, because the definition is at least wrong in the same way both weeks.
For whether advertising is working at all, use blended. Total revenue divided by total ad spend, across every platform. No windows, no view-through, no double claims, nothing to argue about. It will not tell you which channel to cut — but it cannot be gamed by a settings change, and it is the honest direction of travel.
The one rule to take away
Never add conversions across platforms. There is no correction factor and no clever weighting that fixes it. Those numbers were not built to be added, and adding them invents sales that never happened.
If you want the longer version, with the arithmetic: Meta Says 40 Sales. Shopify Says 12. Here's Who's Right.
Aplon reconciles what your store actually recorded against what each platform claims, so you can see the gap instead of arguing about it. [See how it works](/).
Aplon turns your Shopify store into profit analytics. See how it works.