hello@newnorth.nl+31 (0) 85 401 31 62
/Journal

Attribution: why GA4, Google Ads and Meta never show the same number

ReferenceAnalytics2023.01.30
Freek Kampen
Freek KampenCo-founder, New North Digital

Attribution decides which touchpoint gets the conversion. Three platforms, three models, three windows, and a total that is always too high.

What attribution is

Attribution assigns a conversion to the touchpoints that came before it. Someone sees an Instagram ad, searches your brand name later, clicks an ad, returns directly two days after that and orders.

One order, four touchpoints. Which one gets the revenue? That is the question an attribution model answers.

Every platform answers it differently, and every platform has decent reasons for its own answer. Almost every "the numbers do not match" conversation starts here.

Attribution models in GA4

GA4 uses data-driven attribution by default. It splits the credit across touchpoints based on how the probability of converting changes when a channel is or is not in the path. So you get fractions: 0.4 of a conversion to Google Ads, 0.35 to organic, 0.25 to email.

Last click still exists in two flavours: across all channels, and across Google paid channels only. Google removed the older models (first click, linear, time decay, position-based) from GA4, so you cannot select those any more.

The setting lives under Admin > Attribution settings, together with the lookback window. For regular conversion events you choose between 30, 60 and 90 days, with 90 as the default. Change the model or the window and GA4 reprocesses your historical reports.

GA4 ignores direct traffic for attribution as long as there is an earlier non-direct touchpoint inside the window. So that direct return in the example above gets no credit.

Why the platforms disagree

Three systems, three points of view.

GA4Google AdsMeta
Looks fromthe siteits own clickits own click or impression
Default modeldata-drivendata-drivenlast interaction in the window
Counts viewsnoseparately, for videoyes, 1 day by default
Dates the conversion tothe conversionthe clickthe ad interaction

That last row explains a large part of the gap on its own. Google Ads writes a conversion back to the day of the click. GA4 books it on the day of the order. With a week of consideration time, the two daily reports never line up, even when the long-run totals sit close together.

Then the attribution window adds its share. Meta defaults to 7-day click and 1-day view, so someone who saw your ad without clicking and ordered within a day counts for Meta and not for GA4. Two platforms claim the same order, and by their own definitions both are right.

On top of that, each platform only measures its own traffic. Meta cannot see a Google click and Google cannot see a Meta impression. Only GA4 sees everything that lands on the site, and GA4 in turn misses the people who declined consent or started on another device.

The total is always too high

Add up the conversions from Google Ads, Meta and your email tool and you land above your actual order count. That is double counting: every platform claims the order it touched.

The only place holding the real number is your backend. Your order system, your till, your books. Start there and work backwards.

A quick check: divide the summed platform conversions by the orders in your backend. At 1.4 your channels overlap noticeably. At 2.5 you are steering on numbers that largely count each other twice.

What to do with this

  • Pick one source of truth for budget decisions. Usually GA4 or your warehouse, because that is where all channels sit side by side under one model and one window.
  • Use the platform numbers for optimisation inside the platform. The bidding algorithms at Google and Meta need their own signals, and their own counting comes with that.
  • Check your GA4 attribution settings and write down which model and which window you use. Without that agreement everyone compares different things.
  • Set Meta's attribution window deliberately. Leave it alone and view-through counts without you having decided that.
  • Compare your totals with your backend monthly and track the ratio. The trend in that ratio tells you more than any single month.
  • Stop expecting a match to the unit. Steer on direction and on change, not on the difference between 812 and 847 conversions.

Want to talk about this?

Let's talk data.

Tell us about your stack, your goals, the data you wish you had.

Takes 1 minute