← All articles

Blog

Why Google Ads and GA4 Conversion Counts Don't Match (The Real Cause + How to Diagnose)

google ads ga4 conversions don't matchconversion counts mismatchga4 vs google ads numbers differentwhy conversion numbers differ

"My Google Ads conversion count and my GA4 conversion count don't match." This is a problem nearly every advertiser runs into. You're supposedly measuring the same sign-ups, the same purchases — yet the numbers disagree. Which one is right? Is something broken?

Here's the short answer: most of the gap is a difference in definition, not a bug. Google Ads and GA4 count, attribute, and window conversions differently, so not matching exactly is normal. The real problem is when a genuine tracking loss hides inside that normal gap. This article lays out the causes, then a way to separate the two.

The premise: they measure with two different rulers

GA4 and Google Ads have different purposes, so their measurement is designed differently.

  • GA4: an "analytics ruler" that measures site-wide user behavior with GA4's own sessions and attribution
  • Google Ads: an "advertising ruler" that measures outcomes tied to an ad click (gclid), for the sake of bid optimization

Different rulers count the same event differently. So the first step in diagnosis is to let go of the assumption that "not matching means something's wrong."

The common reasons they don't match

Here are the main reasons numbers diverge, ordered by impact. Find which one fits your case.

1. Attribution (which day/click the outcome belongs to)

The biggest cause. Google Ads generally credits the conversion back to the day of the click (click-based). GA4 records it as an event on the day the conversion happened, with its own attribution model. "Clicked Monday → purchased Thursday" can be counted on Monday by Google Ads and Thursday by GA4 — so a day-by-day view will naturally diverge.

2. Counting method ("Every" vs "One")

Google Ads conversion actions have a counting setting: count "Every" conversion from a single click, or just "One." GA4 generally counts every conversion event that occurs. "One" for leads, "Every" for purchases — that difference shows up directly as a count gap.

3. Conversion window (the measurement window)

Google Ads has a "click-to-conversion window," and outcomes past it aren't counted. It differs from GA4's lookback window, so the longer your consideration cycle, the wider the gap.

4. The starting point of measurement (presence of gclid)

Google Ads only counts visits tied to the ad-click gclid. When gclid is missing, the number survives in GA4 but drops only in Google Ads. This is not a "normal gap" — it's a textbook example of a tracking loss (see how the click ID (gclid) works and why it goes missing).

5. Time zones

If your Google Ads account time zone differs from your GA4 property time zone, the boundary of "that day" shifts and daily numbers won't line up. If it diverges daily but converges monthly, suspect this.

6. Consent mode and modeling

Cookie consent state changes what can be measured, and Google Ads may apply conversion modeling (estimation) for the unconsented portion. GA4 handles this differently, producing another gap.

7. Import double-counting and lag

If you import GA4 conversions into Google Ads and also run direct tag measurement, you can get double counting or reporting lag. Audit which path you actually measure through.

8. View-through and other ad-specific counts

Google Ads may separately count view-through conversions and similar, which don't involve a click. These rest on different assumptions than GA4's "via ad click" numbers. Make sure you're comparing the same conversion types.

9. Reporting timing and bot-filtering differences

Both have reporting lag, and their invalid-traffic (bot) exclusion logic differs. Recent numbers diverge most and often converge after a few days.

10. Ad blockers and browser privacy restrictions

Ad blockers and privacy-focused browsers can block the GA4 JavaScript tag from loading or firing, which means those conversions never reach GA4. Industry estimates suggest ad blockers reduce GA4-reported conversions by 15–30% depending on your audience. Google Ads is less affected because it tracks from the ad platform side (click registration happens before the user reaches your site) and can use Enhanced Conversions and server-side signals. This creates a gap where Google Ads shows more conversions than GA4 — the opposite of what most people expect. If your audience skews technical (developers, IT professionals), the impact is even larger (see how ad blockers affect conversion tracking).

11. Cross-device conversions

GA4 can stitch user journeys across devices using Google Signals, User-ID, and device-ID, attributing a conversion to a session that started on a different device. Google Ads attributes conversions to the gclid from the original click, which is device-specific. A user who clicks an ad on mobile but converts on desktop may be counted by GA4 (via cross-device stitching) but missed or double-counted by Google Ads depending on whether the gclid carried over. The longer your consideration cycle and the more device-switching your audience does, the wider this gap becomes.

Separating a "normal gap" from a "real tracking loss"

This is the most important part. Of the causes above, most of 1–3 and 5–9 are definitional — a normal gap that's fully explainable once you understand the settings. But there are also signs of a tracking loss you can't ignore.

What's a "normal" discrepancy range?

As a rough benchmark, industry practitioners consider a 20–30% gap between Google Ads and GA4 to be within the normal range for most accounts. You can break this down by component to sanity-check your own numbers:

Component Typical contribution to the gap
Attribution model and date differences 5–15%
Counting method (Every vs One) 5–20%
Consent mode and modeling 5–15%
Cross-device and ad-blocker effects 2–10%

If your overall discrepancy stays within a consistent band month over month, it's likely definitional. If it exceeds 40–50% or suddenly spikes, that points to a configuration issue or tracking loss worth investigating.

Signs of a normal gap:

  • It diverges daily, but settles into a stable ratio monthly
  • The direction and size of the gap are roughly consistent each time
  • It's explainable by setting differences (counting method, window, time zone)

Signs that point to a tracking loss:

  • One side is near 0, or one path/page is extremely low
  • The divergence suddenly widened on a specific day (e.g., right after a tag or site change)
  • There's a change you can point to — gclid loss, a consent-banner change, an added redirect

The practical diagnosis steps:

  1. First eliminate what setting differences can explain (check counting method, conversion window, and time zone on both sides)
  2. For the gap that remains, identify which path or page is dropping it
  3. On that path, confirm whether the conversion is actually firing and being counted (verify the Google Ads tag / verify the GA4 tag)

Why "comparing the numbers" alone won't reach the cause

No matter how carefully you reconcile report numbers, those are the result — they don't tell you at which stage it dropped. When Google Ads is low, whether that's "an attribution definition difference (normal)" or "gclid loss (a leak)" can't be told apart without seeing whether the request actually fires and is counted on that path.

In particular, verifying the real ad-click path is tricky. Clicking your own ad to check it risks a policy violation, and checking from inside your office can't reproduce real users' conditions. The final diagnosis of "the numbers don't match" requires seeing what's actually sent on your live page, from an independent environment.

Diagnosis checklist

  • Did you check the time zones of Google Ads and GA4?
  • Do you know the conversion action's counting setting (Every / One)?
  • Did you account for the conversion window difference?
  • Do you understand the attribution difference (click day vs event day)?
  • Does it settle into a stable ratio monthly even if daily diverges (a sign of a normal gap)?
  • Are there leak-side signs — gclid loss, consent banner, redirects?
  • On the most divergent path/page, did you confirm it actually fires and is counted?
  • Is import-path measurement double-counting with direct tag measurement?

Frequently asked questions (FAQ)

Q. Which number should I trust — Google Ads or GA4? A. It depends on the purpose. Use Google Ads numbers for bid optimization, GA4 for site-wide behavior analysis. Neither is "correct" — the starting point is understanding they use different rulers.

Q. Can I make them match exactly? A. Structurally that's hard and not a realistic goal. Aim not for "matching" but for a state where you can explain the gap — i.e., tell a normal gap apart from a real tracking loss.

Q. It shows in GA4 but is low in Google Ads — why? A. Missing click ID (gclid) is the top suspect. Google Ads only counts what's tied to an ad click, so check auto-tagging, the Conversion Linker, and redirects (how gclid works).

Q. What if Google Ads is the higher one? A. View-through conversions, an "Every" counting setting, or consent-mode modeling (estimation) can make Google Ads read higher. Make sure you're comparing the same conversion types.

Conclusion: aim not to "match" but to "explain"

Google Ads and GA4 numbers use different rulers, so not matching is normal. What matters isn't forcing them together — it's explaining the gap by setting differences and finding the real tracking loss hiding inside it. And diagnosing that loss requires more than reconciling reports: it requires confirming whether conversions actually fire and get counted in production.

ConversionOK runs your live page in an independent, isolated browser and intercepts the conversion requests that are actually sent, then verifies them — with no need to click your own ad and no interference from your office environment. Start with a free static check to confirm the entry point of your measurement.