Article
Your Meta pixel isn't lying: how to tell whether the gap with GA4 is normal
The gap always exists and is almost never a fault. The two checks used to diagnose it don't answer the question you're asking, and the shortcut most often recommended isn't an available shortcut.
The gap always exists and is almost never a fault. The problem is that the two checks used to diagnose it, the event match quality score and a direct comparison of the two dashboards, do not answer the question you are asking. And the shortcut recommended most often, moving collection to the server so you no longer depend on consent, is not an available shortcut.
Category: attribution · 11 minute read · Mattia Minafò · updated 18 August 2026
What this is about
Ads Manager says 126 purchases, GA4 counts 70. Someone tells you the pixel is broken, someone else that you need server-side, and meanwhile you can’t tell whether you’re looking at a problem or at the normal behaviour of two different tools.
The question this article answers: how do you tell a normal gap from a genuine fault.
In order: why the two tools were never meant to give the same number, how large the typical gap is and who measured it, why the event quality score isn’t the check you think it is, what server-side does not let you get around, and the procedure for separating the two.
Method and limits. Platform dates and behaviours are verified against linked public sources, as of 18 August 2026. Project numbers come from our own audits, with the window stated. The consent section describes a legal constraint and is not legal advice: for that you need someone who does it for a living.
You’ll find three labels in the text. Documentation when the source is official, measured by us when the number comes from one of our audits, recommendation when it is a professional judgement rather than a fact.
Contents
- Why the two tools don’t give the same number by construction
- How large the typical gap is, and who measured those numbers
- Why the event quality score isn’t the check you think
- What server-side does not let you get around
- How to separate the normal gap from the fault
- The most common mistakes
Why the two tools don’t give the same number by construction
Three differences, all intended by the people who designed the two systems.
View-through conversions. Meta attributes a purchase that happened within a day of an ad view, with no click at all. GA4 never receives that signal and cannot even know that the order is connectable to the campaign. It isn’t a loss: it is data that exists on one side only.
The windows. Meta looks back seven days from the click and one from the view. GA4 looks back thirty days for acquisition conversions and ninety for the others. Two different periods over the same orders give two different counts.
What counts as a click, which changed recently. On 3 March 2026 Meta narrowed the definition of click-through to link clicks only. Before that, reactions, comments, saves and shares counted too, and they now sit in a separate category. Rollout continued through late March and April.
Estimates of the effect converge without coinciding. An analysis across more than three thousand accounts reports a drop in click-through conversions between 15% and 30% overnight. Other independent measurements point to an average between 20% and 25%, higher on campaigns built around engagement.
Recommendation. If you saw a drop on Meta between March and April 2026 and rewrote your campaigns, check whether the drop falls within that range before intervening further. That drop isn’t performance, it’s accounting.
How large the typical gap is, and who measured those numbers
Almost all the figures circulating on this subject come from three sources, and it is worth knowing which.
The incremental attribution test. Seer Interactive tested Meta’s incremental attribution setting on roughly $1.05 million of spend across six accounts. Meta declared 87% of conversions incremental; comparison with GA4 brought the estimate to 67%. Twenty points of difference produced by attribution logic.
The view-through share. An analysis by Adam Lovallo across seventy accounts and roughly twelve million dollars of spend attributed 34% of Meta’s total reported conversions to the view window. It is from November 2022 and should be used as an order of magnitude, not as a current value.
Measured by us. On a store reporting a gap of over three times between the two dashboards, we redid the comparison over one window and with one question. Between 31 May and 27 June the real orders in the ledger were 41. Meta saw 37 after deduplication, GA4 36. The real gap was ten or twelve points.
| Source | Purchases | Distance from the order ledger |
|---|---|---|
| Order ledger | 41 | reference baseline |
| Meta, after deduplication | 37 | 90% |
| GA4 | 36 | 88% |
The “three times” and the “ten per cent” described the same store over the same period. The only change was that in the second reading the two figures covered the same window and answered the same question.
Why the event quality score isn’t the check you think
The advice you read everywhere is: if the event match quality score is above seven, tracking works. It doesn’t hold, and it is worth understanding why before using it as a traffic light.
Measured by us. On a Shopify store the score on page view and product view was 5.9. On those same events, IP address and user agent were present at 100%, the internal user identifier at 100%, the ad click identifier at 68.6% and 73.0%. Email, phone, name and city were missing.
They were missing because on a product view that data does not exist yet. It isn’t an implementation flaw, it is a property of that event type. The score was low and there was nothing to fix.
A client who runs Meta campaigns full time put it to us more bluntly than we would have, in a call in March 2026: that metric is the most misleading thing he has seen, because he regularly has every parameter at a hundred per cent and still reads a low grade.
Recommendation. Use the score as an indicator of change, not as a threshold. A value dropping two points in a week tells you something. A low value in absolute terms, on events that by nature carry no personal data, tells you nothing.
The threshold we use instead is ad click identifier coverage. Below 30 or 40% of events it is a genuine alarm, because that parameter should be present on all traffic arriving from ads, and its absence does not depend on the event type.
What server-side does not let you get around
There is a widespread belief here that needs correcting, because it is expensive.
You don’t get around consent by moving collection. You often read that the server channel is partly immune to cookie refusal, because the data leaves from your server rather than the browser. Technically the channel works. Legally nothing changes: sending the personal data of a user who has not consented remains processing without a legal basis, whether it goes through the browser or the server.
If consent is missing, the event should not be sent. And sending it stripped of identifiers, with only IP address and user agent, produces an event nobody can match, so it is useless and the controller carries the risk anyway.
There is an aggregated campaign measurement that works without individual tracking, but that is a different thing and returns a different kind of data. It is not the server channel used as a consent shortcut.
And the native protection may not cover you where you think. On Shopify the restriction that suspends sending in the absence of consent can be active on certain markets only. On one store we checked it was active for Italy alone, while the majority of traffic was foreign and remained entirely delegated to the consent management platform. It is a setting to check, not to take for granted.
That this isn’t theoretical is confirmed by a court. In February 2026 the Dresden court ordered Meta to compensate four users for data collection through its advertising tools, pixel and server channel included, with no appeal.
You don’t get around UTMs. If ad links aren’t labelled, Meta counts the conversion correctly server-side and GA4 receives it but attributes it to direct traffic. The gap you see is real, the cause is in the advertising platform and not in tracking.
Measured by us. On one project the quality score was 8.3, the server channel worked, deduplication was verified event by event, and the perceived gap stayed above three times. The cause was that the active ads carried no tracking parameters. The work to be done was not technical, it was renaming campaigns.
You don’t get around the Shopify sandbox. The native pixel and your container remain two separate layers. If you send the same events from both without deduplication, the number you read is inflated and no dashboard flags it.
How to separate the normal gap from the fault
The procedure, in the order it should be run.
| Check | What you look at | What it means |
|---|---|---|
| 1. Same window, same question | The two figures cover the same period and count the same thing | If not, stop here. It is the check that closes more reports than any technical intervention |
| 2. Order ledger against both dashboards | Real orders in the back office, compared with deduplicated Meta and with GA4 | Gives you the only reference that doesn’t depend on an attribution model |
| 3. View-through conversions | The dedicated column in Ads Manager | If it is high, you have found one of the main causes and it is not repairable |
| 4. Tracking parameters on the ads | The links of active campaigns | Missing means real conversions attributed to direct traffic |
| 5. Click identifier coverage | What percentage of events carry it | Below 30 or 40% is an alarm, and unlike the overall score it doesn’t depend on event type |
| 6. Continuity over time | Whether the gap widened abruptly, and on what date | A sharp step points to a datable technical change, a flat trend doesn’t |
| 7. Errors in the container logs | 4xx, 429, 5xx codes | They are the only signal that indicates a fault with no room for interpretation |
Recommendation. Point 6 is what solves the hard cases. A wide but stable gap of many months is almost always structural. A gap that widens in one specific week has a datable cause, and that cause can be found.
The most common mistakes
Comparing two figures covering different periods. It produces the most spectacular gaps and the ones that close fastest.
Using the quality score as pass or fail. On events that carry no personal data it stays low by construction, and there is nothing to fix.
Treating the server channel as a solution to refused consent. It moves collection, it doesn’t change the legal basis.
Leaving ads without tracking parameters. It is the most frequent cause and the cheapest to fix, and it is almost always looked at last.
Reacting to the March 2026 drop by rewriting campaigns. It is an accounting reclassification, and the expected range is known.
Assuming the native consent protection is active without checking which markets it covers. It is a per-country setting, not a global switch.
Taking a gap declared normal at face value without verifying it on your own store. Published ranges, including the one you are reading here, are averages over other people’s samples.
In short
The gap between the two dashboards is the expected behaviour of two tools built to answer different questions.
What needs verifying is not whether the figures match, but whether they have the same window, the same question and a reference point outside the platforms. The rest of the difference, almost always, isn’t yours to fix.
Sources
- Search Engine Land, Meta introduces click and engage-through attribution updates, March 2026, retrieved 18 August 2026
- Jon Loomer, Click-Through Attribution Now Requires a Link Click, retrieved 18 August 2026
- Seer Interactive, We Tested Meta’s New Incremental Attribution Setting on $1M in Ad Spend, retrieved 18 August 2026
- Adam Lovallo, Incrementality: Facebook/Instagram Benchmarking Total Attribution, November 2022, retrieved 18 August 2026
- Google Analytics Help, About attribution and attribution modeling, retrieved 18 August 2026
- Backlinko, Ad blocker users statistics, on DataReportal data, retrieved 18 August 2026
- Meta Business Help Center, About attribution, retrieved 18 August 2026
- Internal measurements from audits of Shopify and WooCommerce stores, windows stated in the text
The first step
Open your store’s order ledger and count the real orders of a closed month. Then count the same thirty days in Ads Manager and in GA4, without changing the dates and without changing the metric.
If both platforms land between 85% and 95% of the ledger, your tracking is working and the gap you were seeing was the comparison. If one of the two sits well below, you now know which one to look at, and we’re happy to talk.
Content verified against public sources on 18 August 2026. Platform rules change often; if you are reading this much later, re-check the links.