Attribution
Meta's Ads Manager and your Shopify orders page are measuring two different things, on two different windows, with two different standards of evidence. The gap between them isn't a bug — it's what you should expect.
Shopify records a fact: an order was placed, for this amount, at this time. Meta doesn't have access to that fact directly — it estimates which of its ads probably caused a purchase, using its own attribution model, and reports revenue against that estimate. One is a ledger. The other is a model built on incomplete visibility into what happened outside Meta's own properties.
Meta's default attribution setting credits a purchase to an ad if it happened within a set window after a click or a view — commonly 7 days after a click, 1 day after a view, though this is configurable per ad account. A customer who saw an ad on Monday and bought two weeks later, unprompted by anything else, falls outside that window and gets no credit. Shopify has no equivalent window — it just has the order timestamp.
Click-through attribution — someone clicked the ad, then bought — is the more defensible half of Meta's number. View-through attribution credits a purchase to an ad the customer saw but never clicked, based on the assumption that the impression influenced the decision. That assumption is unverifiable at the individual level. It's also the single biggest reason Meta's reported sales run higher than what a click-only view would show.
A customer scrolls Instagram on their phone, then buys on a laptop an hour later. Meta can sometimes bridge that with logged-in identity signals, sometimes can't. Separately, Meta and Google frequently claim the same order — a customer who saw a Meta ad and later searched the brand name on Google can show up as a conversion in both platforms' reporting, each unaware of the other's claim. Add both platforms' numbers together and you'll usually overstate total attributed revenue.
Browser restrictions, ad blockers and declined tracking consent reduce what Meta can observe directly — which, on its own, would undercount Meta's true influence. Server-side tracking (Meta Conversions API) recovers some of that lost signal, but it still depends on the customer having consented and on enough matching data being sent. The undercounting pressure from tracking loss and the overcounting pressure from view-through credit and cross-platform double-claiming are pulling in opposite directions at the same time — which is part of why the gap between platforms isn't consistent from month to month.
Chasing an exact match between Meta and Shopify isn't a realistic goal — the two systems aren't measuring the same thing by design. What's worth checking is whether the ratio between them stays roughly stable over time. A sudden jump — Meta suddenly reporting 40% more or less than usual relative to Shopify — is a signal something changed: a tracking break, a new attribution setting, or a duplicate event issue. That's a more useful question than "why don't these two numbers match."
Connect your store, Meta and Google accounts to see platform- reported revenue next to actual Shopify orders, for your own data.