Skip to content

TroubleshootingGoogle Ads

Google Ads Conversions Not Matching GA4: Why

Google Ads and GA4 conversion counts rarely match exactly. Learn which gaps are structural and which ones signal a real tracking problem.

Published
Reviewed

Diagnosis

  1. Platform Google Ads
  2. Usual cause Wrong conversion action, missing hashed data, or double counting with GA4 import.
  3. Causes, ranked 6
  4. How to diagnose it 7
Go to the checks

First answer free, within one working day. Describe your case

Sounds familiar?

The symptom

Symptom report Google Ads

Someone pulls up Google Ads’ conversions column next to GA4’s purchase count for the same date range, and they don’t match. Sometimes the gap is small and ignorable. Sometimes it’s large enough that budget decisions start hinging on which number someone happened to trust that day.

Two counters for the same conversions using different time windows, showing different totals
Tick what you see

Tick the lines that match your store.

Describe my case

The short version

Direct answer

Google Ads and GA4 aren’t built to report identical conversion counts, even when both are correctly configured. Different attribution windows, conversion-time-versus-click-time accounting, and two entirely separate matching pipelines produce some baseline gap.

The diagnostic question isn’t whether the numbers match exactly — structurally, they won’t — it’s whether the gap is stable and explainable, or growing and erratic. A gap that shrinks once the attribution window fully closes is structural and not a problem. A gap driven by lost gclids or an incomplete Enhanced Conversions setup is real, and it’s costing you attributed conversions you actually earned.

Where to look

Causes, ranked

Google Ads ≠ orders6 causes

  1. Attribution window mismatch

    Google Ads’ conversion window (commonly 30–90 days depending on the action) counts a purchase on the date of the click, even weeks later. GA4 counts it on the date of the transaction. Compare a date range before that window has fully closed, and the two will disagree by design.
  2. Click-through vs. view-through counting

    Google Ads can count view-through conversions — an impression with no click that later converts — which have no equivalent session in GA4 at all.
  3. Conversion time vs. click time

    Related to the window issue but worth checking separately: switching a conversion action’s reporting between “by conversion time” and “by conversion date” can shift totals for the same underlying data.
  4. gclid loss

    The same redirect, consent, or cross-domain issues that cause GA4’s Unassigned traffic can also strip the gclid parameter before it reaches Google Ads’ matching logic — meaning a real ad-driven purchase never gets credited to the ad at all.
  5. Enhanced Conversions gaps

    If hashed customer data isn’t being sent, or is incomplete, conversions that could have matched via Enhanced Conversions fall back to weaker cookie-based matching, or don’t match at all.
  6. Structural counting-model differences

    Even with everything else correct, GA4 and Google Ads use separate attribution models to credit conversions across their own data. Identical underlying orders can still produce two different, both-legitimate counts.

7 steps

How to diagnose it

Work through them in this order.

  1. In Google Ads → Goals → Conversions → Summary, open the specific conversion action and check its attribution model and status.
  2. Check the conversion window settings on that action — click-through and view-through windows are set independently and both affect the count.
  3. Compare totals only for a date range where the attribution window has already closed (for example, a 60–90 day old month) rather than the trailing 7 or 14 days, where the numbers are still settling.
  4. In the conversion action’s settings, check whether it’s reporting by conversion time or by conversion date, and note how much the total shifts between the two views.
  5. Confirm auto-tagging is on (Google Ads → Account settings), then manually click through a real ad-tagged URL to checkout to verify the gclid parameter survives every redirect.
  6. In Google Ads → Tools → Conversions, check the Enhanced Conversions status column for a “needs attention” flag or a visible match-rate indicator, and confirm hashed customer data is actually present in the network request on the purchase page.
  7. In GA4 → Advertising → Attribution → Model comparison, compare GA4’s own conversion counts for the Google Ads channel under different models, to see how much the choice of model alone moves the number independent of any tracking issue.

Signal and fix

Decision table

CauseSignal you’ll seeFix
Attribution window mismatchThe gap shrinks the further back you look, and converges for fully closed date rangesNo fix needed — compare only closed windows, and document the expected lag for stakeholders
View-through inflationGoogle Ads includes conversions with no matching click or session in GA4Check the view-through window setting; decide deliberately whether to include it in comparisons
gclid lossClick-based conversions run consistently below actual paid orders, tracing to a redirect or consent pathFix the parameter-stripping redirect; confirm auto-tagging is on and gclid persists through checkout
Enhanced Conversions gapMatch rate is low or partial in the Ads UI; hashed data missing from the network payloadComplete the Enhanced Conversions data flow (email, phone, address) on the purchase page
Structural counting-model differenceThe gap is stable and roughly consistent month to month, and doesn’t trend toward zeroDocument it as expected; treat stability, not size, as the health signal

A note from Daniilbefore you decide

Should you fix it yourself or bring in help?

Checking attribution window and conversion-timing settings, confirming auto-tagging is on, and comparing only fully closed date ranges is something you can do directly in the Google Ads and GA4 interfaces.

What usually needs a specialist is implementing or debugging Enhanced Conversions’ data flow, tracing gclid loss through a redirect or consent chain you don’t fully control, or building a repeatable reconciliation process across Ads, GA4, and Shopify rather than eyeballing two dashboards each month.

If the gap is growing rather than converging, or shows up right after a checkout or consent change, that’s worth scoping through Google Ads conversion tracking work rather than assuming it’s just structural noise.

— Daniil

Next

If the self-check does not settle it.

The checks above find the cause in most stores. When two or more overlap, an order-level reconciliation is faster than another afternoon spent comparing dashboards.

Tracking Health Check

Price
USD 395
Access
Read-only
Timeline
verdict two working days after the kickoff

What the reconciliation shows for this symptom.

A Health Check reconciles this symptom order by order against your Shopify orders, so the cause is a fact from your own data, not a guess from a dashboard. Real numbers for this symptom are not published yet — ask for the sample report.

Request a Health Check · USD 395

Follow the order. Then compare the evidence.

  1. Real orderOrder ID, amount, currency
  2. Browser / server eventsConsent, event ID, delivery
  3. GA4 / advertising platformsReceived events and reporting
  4. Reconcile the recordsMatch IDs, time windows and definitions
A completed order and a reported conversion are different records. Check the path and compare like-for-like before treating a difference as missing data.

Questions

Questions this symptom raises

Why do Google Ads and GA4 never show the exact same conversion count?

They're two separate crediting systems reading overlapping but not identical data. Google Ads attributes a conversion to the day of the click and uses its own attribution model and conversion window; GA4 attributes based on session data and its own model. Even with perfect tracking, these two systems are structurally unlikely to land on the same number.

Should I trust Google Ads' number or GA4's number for budget decisions?

Neither is 'more correct' in isolation — they answer different questions. Google Ads' number is what its own bidding algorithm is optimizing against, so it matters for in-platform decisions. GA4's number is useful for cross-channel comparison. Reconciling both against actual Shopify orders is what tells you which one, if either, needs fixing.

What is Enhanced Conversions and do I need it?

Enhanced Conversions sends hashed first-party customer data (email, phone, address) alongside a conversion so Google can match it even when a cookie or click ID wasn't captured. It generally improves match rates, especially on longer or cross-device paths, but it isn't a fix for a fundamentally broken purchase event — it enriches good data, it doesn't create it.

Why did my conversion count for last week change when I checked again today?

This is normal and expected, not a bug. Conversions are attributed to the click date, so a purchase completing several days after the click gets added to that earlier date once it's processed — meaning any date range within your conversion window can still be updating.

Daniil Maximkin

Hi, I’m Daniil.

I work with you from defining the problem to implementation and handover. You talk to the person who does the work. I work in English and Russian.

Tried it and still stuck?

Describe your task

The first answer is free, within one working day. Or write directly: next@taskfordaniel.com