Skip to content
DM · Daniil Maximkin
Solution

Google Ads Conversions Not Matching GA4: Why

·

The short answer

Google Ads and GA4 aren't built to report identical conversion counts, even when both are wired correctly. Different attribution windows, conversion-time-vs-click-time accounting, and separate matching pipelines produce some baseline gap. The diagnostic question isn't whether the numbers match — they won't exactly — but whether the gap is stable and explainable, or growing and erratic. A gap that shrinks as the window closes is structural; one from lost gclids or gaps in enhanced conversions is fixable.

Symptoms you might be seeing

  • Google Ads' conversions column doesn't match GA4 purchases for the same period
  • The two numbers converge for older date ranges but diverge for recent ones
  • Enhanced Conversions shows a partial or low match rate
  • Conversion counts for a given day keep changing days after the fact

The symptom

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.

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.

Causes, ranked

  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.

How to diagnose it

  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.

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

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.

Redirects and consent issues that strip gclid overlap heavily with what causes GA4 unassigned traffic — the same diagnostic steps apply to both. For the broader question of how GA4 revenue and Shopify’s own numbers relate, see GA4 revenue doesn’t match Shopify.

FAQ

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.

Not sure whether your tracking is actually broken?

Start with a Health Check — a fast, read-only diagnosis that tells you what is wrong before you spend anything fixing it. Prefer email? Send your store URL and one sentence about what looks off.