- Meta Ads
- Attribution
- Tracking
- Shopify
- GA4
Why Meta Ads Over-Report Conversions (and the Fix)
By Olam Sule · Published 12 Aug 2026
TL;DR
Meta Ads overreports conversions because Meta Ads Manager counts view-through purchases (people who saw an ad but never clicked) and fills gaps with modelled data after iOS 14.5. So it can claim far more sales than your Shopify orders or GA4 confirm: in one audit, Meta claimed 6.9 times the revenue Shopify actually recorded on the same spend. Reconcile it by matching Meta's claimed purchases against last-click orders in Shopify.
Olamide Sule, founder of Dolphin Analytics: a digital analytics expert based in London who reconciles ad-platform numbers to real sales for agency and in-house clients.
You checked Meta Ads Manager, then you checked Shopify, and the two numbers are nowhere near each other. Meta says it drove hundreds of purchases; the orders in your store, and the sessions in GA4, tell a smaller story. Before you assume the pixel is broken or the campaign is a fraud, know this: most of that gap is Meta counting sales the way Meta chooses to count them, not a tracking fault you can patch away. We reconcile these numbers for ecommerce brands and their agencies most weeks, so here is what is actually happening and how to get to a figure you can trust.
Why does Meta report more conversions than Shopify?
Meta reports more conversions than Shopify because the two systems count different events. Meta Ads Manager credits a purchase to an ad when the shopper clicked it within 7 days, or simply saw it within 1 day, and it adds modelled estimates for conversions it can no longer observe directly since iOS 14.5 (Apple’s 2021 App Tracking Transparency change). Shopify only counts orders that reached checkout. So Meta claims influence over sales your store records under other channels, or would have made anyway.
That single difference, attribution model versus sales ledger, explains most of the gap before any tracking bug enters the picture. Meta is measuring advertising influence as it defines it. Shopify is measuring money that changed hands. They were never going to agree.
The three reasons Meta over-reports
Almost every over-reporting case we audit traces back to three causes, in roughly this order of size.
- View-through conversions. Meta’s default window credits a sale to an ad the shopper saw but never clicked, if they bought within a day. For a brand with healthy organic, email and direct demand, a large share of those buyers were coming anyway. This is the biggest inflator by far.
- Modelled conversions after iOS 14.5. When a shopper opts out of tracking, Meta cannot see the conversion directly, so it estimates one using aggregated modelling. Those modelled sales are real people in aggregate but not individually verifiable, and they push the claimed number up.
- Pixel and Conversions API double counting. Many stores now send the
same purchase twice, once from the browser pixel and once server-side
through the Conversions API (CAPI). If those two events are not
deduplicated with a shared
event_id, Meta counts one sale as two.
The first two are structural: Meta working as designed. You reconcile them, you do not fix them. The third is a genuine setup fault, and it is the one worth catching first because it is the only one you can switch off.
How big can the gap get?
The gap can be several times over, not a rounding error. In one audit of a subscription box brand, Meta Ads Manager claimed roughly 6.9 times the revenue Shopify actually confirmed on the same ad spend over a financial year. On a single campaign, 71% of the purchases Meta claimed were 1-day view-through: the shopper saw the ad and never clicked it. Shopify confirmed a small fraction of those as last-click orders.
That is the shape of the problem at its worst. A brand looking only at Meta’s dashboard would have believed the channel was carrying most of the business. The confirmed orders told a very different story, and every downstream decision, budget, forecast, agency scorecard, was being made on the inflated figure.
Why don’t Meta and GA4 match either?
Meta and GA4 disagree because they use different attribution models and different tracking, so neither equals your sales ledger. GA4 attributes conversions with a data-driven or last-click model, based on its own tags and the visitor’s consent state, and it drops conversions where consent is denied. Meta uses its 7-day-click, 1-day-view window plus modelling. Put the two dashboards side by side and they will disagree with each other as well as with Shopify.
This is why “which number is right” is the wrong question. None of the three is wrong; they answer different questions. GA4 asks which channel got the last click. Meta asks which ads it can take credit for. Shopify asks how many orders completed. Only one of those is the money, and it is not in an ad platform. If your GA4 conversions look off on their own, that is a separate tracking check worth running, but it will not make Meta and Shopify agree.
How to reconcile Meta’s numbers to real sales
Reconciling means picking one source of truth and measuring everything against it. You are not trying to make Meta match Shopify; you are working out how much of Meta’s claim is confirmed, view-through, or modelled, so you can judge the channel on real orders. Here is the sequence we run.
- Name the source of truth. For ecommerce that is your commerce backend: Shopify, WooCommerce, whatever processes the payment. Every other number gets measured against it, not the other way round.
- Fix deduplication first. Confirm the pixel and CAPI share an
event_idand that purchase events fire once per order, not on refresh. This removes the one inflator that is a genuine fault. - Split Meta’s claim by attribution type. In Ads Manager, break conversions into 1-day-view versus 7-day-click. The view-through slice is the part least likely to be incremental. A large view-through share is your signal that the headline number is soft.
- Compare last-click to confirmed orders. Line up Meta’s 7-day-click purchases against last-click orders in Shopify or GA4 for the same window. The overlap is the defensible core of what Meta drove.
- Recalculate return on ad spend on confirmed revenue. Divide Shopify-confirmed revenue by spend to get a last-click figure you can put in front of a finance team, alongside Meta’s claimed one, each labelled as a different measure.
- Decide spend from the real figure. Once you know the confirmed number, you can judge the channel honestly, which often means keeping it. A profitable channel with an inflated dashboard is still a profitable channel.
Should you turn Meta off if it is over-reporting?
No, not on the reported number alone. Over-reporting is a measurement problem, not evidence the channel loses money, and the two get confused constantly. In the same subscription box audit, stripping view-through inflation out took the return on ad spend from a dashboard-claimed 32.8x down to a confirmed 4.7x on last-click. Lower, but still well into profit. Cut that channel on the raw discrepancy and you would have cut a channel that was working.
The point of reconciliation is a decision you can defend, not a smaller number for its own sake. Sometimes the confirmed figure kills a campaign that looked great. More often it just right-sizes expectations and stops a brand over-crediting one platform while starving the channels, like email and organic, that quietly did the work. If you want a fuller view of how the platforms fit together, our guide to digital analytics tools covers what each one is actually built to measure.
Get your ad numbers reconciled
If Meta is claiming sales your till cannot see, a reconciliation is the fastest way to know what your advertising is really doing. Our free data blind-spot review checks exactly this: where your ad platforms, GA4 and your commerce backend disagree, and which number to trust. You can also see how we approach tracking and attribution before you re-plan a single budget line. Start from confirmed sales, and the rest of the picture gets a lot clearer.
Frequently asked
Why does Meta report more conversions than Shopify?
Meta Ads Manager and Shopify count different things. Meta credits a purchase to an ad if the shopper clicked it within 7 days or merely saw it within 1 day (a view-through conversion), and it adds modelled estimates for conversions it can no longer track directly after iOS 14.5. Shopify only records orders that actually completed at checkout. The result is that Meta claims sales Shopify never confirms, sometimes several times more on the same ad spend.
Is Meta over-reporting or is my tracking broken?
Usually both play a part. Over-reporting from view-through and modelled conversions is Meta working as designed, not a bug. But a double-firing pixel, a Conversions API (CAPI) event that is not deduplicated against the pixel, or a purchase event firing on a page refresh will inflate the number further. Check the deduplication and event setup first, because that part is fixable; the attribution-window inflation is structural and has to be reconciled, not switched off.
Why don't Meta conversions match GA4 either?
GA4 and Meta use different attribution models and different tracking. GA4 attributes conversions with a data-driven or last-click model based on its own tags and consent state, while Meta uses its 7-day-click, 1-day-view window plus modelled data. Neither is the sales ledger, so both will disagree with each other and with Shopify. Treat your commerce backend (Shopify) as the source of truth and measure the other two against it.
Should I turn Meta off if it is over-reporting?
Not on the reported number alone. Over-reporting is a measurement problem, not proof the channel loses money. In one audit, stripping out view-through inflation still left a last-click return on ad spend of 4.7x, down from a dashboard-claimed 32.8x but comfortably profitable. Reconcile the numbers to confirmed sales first, then decide on spend from the real figure.
What is a view-through conversion in Meta Ads?
A view-through conversion is a sale Meta credits to an ad the shopper saw but never clicked, as long as they bought within the view window (1 day by default). It assumes the impression influenced the purchase. For a brand with strong organic, email and direct demand, many of those buyers would have converted anyway, so view-through is the single biggest reason Meta's claimed sales run ahead of what your till confirms.