The Grandmother Test

Why don't GA4 and Meta numbers match?

They never will, and making them match is the wrong goal. A gap is structural — different attribution models, different windows, different bot filtering, different consent handling. What matters is whether the gap is stable: a steady 5% difference is a documented known quantity you can plan around; a gap that moves 5% → 14% → 30% means something changed, and that is the number worth chasing.

Gergana Tyaneva · 21 September 2026 · 12 years in product and marketing analytics

The grandmother version

Two people count the guests at a party. One stands at the front door, one at the back. One counts anyone who walks in; the other only counts people who take a drink, and gives credit to whoever handed them the invitation — even if that was three weeks ago.

At the end of the night their numbers differ. Neither of them is lying. They counted different things, on purpose, using rules they each wrote down beforehand.

So don't ask which door was right. Ask the bar how many drinks were actually paid for — that's the only number where money changed hands. Then check, every night, whether the gap between the bar and the door-counters stays the same size. When it suddenly doesn't, something happened, and that's worth finding out.

Where the gap actually comes from

Four mechanisms, and they compound. None of them is a bug, which is why "fixing" the mismatch is not a coherent project.

MechanismWhat it does to the gap
Attribution modelMeta credits view-through and a long click window by default; GA4 credits its own channel grouping on a different window. The same sale is claimed by both, and counted differently by each.
ConsentWhere a visitor declines, GA4 may model the conversion while Meta simply loses it, or vice versa. The gap then moves with your consent rate, which moves with your banner design.
Bot filteringEach platform applies its own rules. Neither publishes them. A change on their side moves your number with no change on yours.
DeduplicationBrowser and server events for the same conversion, without a shared event ID, are counted twice. This is the single most common cause of a gap that suddenly widens.
Same party. Two counters. Different rules.Front doorcounts anyone who walks in1,780Back doorcounts drinkers, credits the inviter1,430The tilldrinks actually paid for1,242What matters is whether the gap stays the same sizeJan1.43×Feb1.41×Mar1.45×Apr1.72×May2.10×A steady 1.4× is a known quantity. 1.4 → 2.1 is the alarm.

The mistake worth avoiding

Do not reconcile GA4 to Meta. Both are estimates, neither is ground truth, and picking one as the reference just moves the error. Reconcile both to your system of record — billing, or the orders table in your database. That number is the only one that is actually true, and it is the only defensible denominator.

How to measure your own gap, in about an hour

  1. Pull completed, paid orders for one full month from billing. Not from any analytics tool. This is your ground truth, call it n.
  2. Pull the same month's conversions from GA4 and from Meta, using the same date basis (order date, not click date).
  3. Express each as a share of ground truth: "GA4 reported 84% (1,043 of 1,242)". Always carry the count, never the bare percentage.
  4. Repeat for the two previous months. Three points is enough to see whether the ratio is stable.
  5. Write the three ratios down. That is your baseline, and it is worth more than any single month's number.
  6. From then on, any month that moves more than about 5 percentage points from baseline is a signal to investigate. Movement is the alarm — level is not.

What "investigate" means, in order

When the ratio does move, check in this sequence, because it is roughly the order of likelihood and cost:

  1. Deduplication. Are browser and server events sharing an event ID? A broken dedup is the most common cause of a sudden widening.
  2. Consent rate. Did the banner change, or did a regulation land in a market you serve? The gap moves with consent and nobody thinks to mention it.
  3. Traffic mix. A shift toward iOS, or toward a market with lower consent, moves the ratio without anything breaking.
  4. Conversion value. Tax, shipping and refunds handled differently across platforms will move value far more than volume — and wrong value breaks smart bidding harder than wrong volume does.
  5. A platform-side change. Last, because you cannot act on it. Check the changelogs before assuming it's you.

The short version

Stop asking "why don't these match". Ask "has the relationship between them changed, and why". The first question has no answer. The second has an owner, a baseline and a threshold — which is what makes it a decision instead of an argument.

Or, the way your grandmother would put it: don't argue about who counted the door. Count the till, and notice when the difference changes.

If your gap is moving and you don't know why — the Data Readiness Check is €400 and tells you whether your data can even answer the question.

See prices →

One question before you read on. I'd like to count visits with Google Analytics, which sets cookies and sends your IP to Google. Nothing has loaded yet, and the site works exactly the same either way. What's collected.