F · Kampen
← All notes
2026-05-23

When Google Ads and GA4 don't match — what's normal, what's a bug

The same conversation as the Meta one, slightly different tools. "Google Ads is reporting 192 conversions. GA4 is showing 165. We're paying for 192. What's actually happening?"

A 10% gap between Google Ads and GA4 is normal. It happens because the two systems define conversions differently and apply different attribution rules, and there's nothing you can do about a few percent of that. When the gap is much larger than 10%, you're not looking at a definition difference — you're looking at a bug. The diagnostic question is which direction the gap goes.

If Google Ads reports more conversions than GA4.

Two usual suspects. First, attribution: Google Ads gives credit to the last Google Ads click; GA4 uses last non-direct click. When a paid click is followed by an organic visit or a direct revisit, Google Ads still claims the conversion and GA4 sends it to organic or direct. The cleanest way to see this is to open GA4's Conversion paths report and count how many paid-search conversions had a subsequent non-paid touchpoint.

Second, timing. Google Ads reports a conversion on the click date — so a click on Monday with a conversion on Wednesday shows up in Monday's report. GA4 reports it on Wednesday. Compare 7-day rolling totals, never single days, or this will drive you mad.

Other reasons in the same direction: view-through conversions (Google Ads tracks display impressions converting later; GA4 doesn't), call extensions (Google Ads counts phone calls if you've set them up; GA4 has no idea), cross-device conversions (Google has a graph of logged-in Chrome users; GA4 doesn't unless you've wired up User-ID).

If GA4 reports more conversions than Google Ads.

Almost always one cause: a transaction firing more than once in GA4. Refresh the receipt page, count two sales. I wrote about the fix in a separate note.

The other possibility is the account link is misconfigured and Google Ads can't see all the imported conversions, but that's rare and shows up as zero rather than as "fewer".

The diagnostic flow I run.

1. Confirm Google Ads and GA4 are linked and the conversion you're comparing is actually the same event — not "Purchase" in one and "purchase_complete" in the other. (Yes, I've seen that.)

2. Check auto-tagging is on. If gclid is missing from your URLs, Google Ads thinks it's getting traffic that GA4 is classifying as organic.

3. Open the Conversion paths report in GA4 over the last 14 days. Count the paths that contain Paid Search but where the last touch was something else.

4. Look at the GA4 transactions for a sample day and count distinct transaction_id values versus total purchase events. If they don't match, you have a deduplication bug.

5. Verify timezones match. This is the cheapest fix and the most often overlooked.

If you're still seeing a more than 15% gap after all of that, something is genuinely broken. Usually a redirect on the landing page stripping gclid, or the GA4 tag failing to fire on the conversion page itself. Load it directly with a real gclid parameter and watch DebugView.

The thing I tell clients who push for an exact match: that's not a thing. The two systems were built for different jobs. Google Ads optimises a bidding model. GA4 reports user behaviour. Their conversion counts living within 10% of each other means both are doing their job. Pick the one that drives your operational decision — for ad spend that's Google Ads, for user-journey analysis that's GA4 — and stop trying to reconcile them down to the unit.