Why your Google Ads and GA4 conversion numbers don't match

Some of the gap is by design. The rest is a defect, and the two need separating before anyone makes a budget decision.

Google Ads and GA4 report different conversion counts because they use different attribution models, different attribution dates, and different session definitions. A stable gap of roughly five to fifteen percent is normal. A large, unstable, or directionally odd gap usually indicates duplicate event firing, broken cross-domain measurement, or an unverified conversion action.

The three structural reasons the numbers differ

First, attribution date. Google Ads credits a conversion to the date of the ad click that led to it; GA4 credits the date the conversion happened. Google's own troubleshooting documentation lists this as the first cause of discrepancy and notes that a conversion can be reported up to 90 days after the click. A conversion from a click eleven days ago appears in a different day's row in each platform. Over a month this mostly washes out; over a week it does not.

Second, attribution model and scope. Google Ads attributes only to ad interactions, across its own network, within its own lookback window. GA4 attributes across all channels (organic, direct, email, referral) so any conversion GA4 assigns to another channel simply will not appear in the Ads number. Both platforms let you change the model, and the two settings are configured separately, so a change made in one place quietly widens the gap in the other.

Third, what's being counted. Google Ads counts conversions, which can include multiple per click depending on the conversion action's counting setting. GA4 counts key events per session. These are different units of measurement, and no configuration makes them the same one.

There are two further asymmetries that surprise people who have only compared totals. Google Ads reports view-through conversions and cross-device conversions that GA4 has no equivalent for, and Google Ads removes traffic it classifies as invalid before reporting. All three are on Google's own list of discrepancy factors, and none of them are bugs.

The counting setting almost nobody checks

Before blaming the tags, open your conversion actions and look at the Count column. Google Ads offers two settings, and the default is different depending on how the conversion action was created. "Every" is the default for website actions, in-app actions, Analytics transactions and imports. "One" is the default for calls from ads, website phone calls, Analytics goals and app installs.

That single field explains a large share of unexplained gaps in lead-generation accounts. A contact form set to Every counts three submissions from one persistent visitor as three conversions. GA4, counting key events per session, will not agree, and neither will your CRM, which has one record with three notes on it.

The rule Google states is straightforward and worth applying literally. Use Every where each occurrence has independent value, which usually means sales. Use One where only the first occurrence has value, which usually means leads. Getting this wrong does not just distort a report: Smart Bidding optimises toward the count, so an inflated lead action teaches the algorithm to buy repeat form-fillers.

What a normal gap looks like

For a well-implemented account with a single primary conversion action, expect Google Ads to report somewhat more conversions than GA4 attributes to paid search, commonly five to fifteen percent, and expect that relationship to be stable month over month.

Stability is the diagnostic, not the size. A consistent 12% gap you can explain is a healthy account. A gap that swings between 4% and 60% by month is telling you something is broken, regardless of the average.

Direction is the second diagnostic. Google Ads reporting fewer conversions than GA4 attributes to paid search is unusual and worth investigating rather than celebrating, because the platform is counting a superset in most configurations. It usually means the Ads conversion action is firing on a narrower condition than the GA4 key event, and the narrower one is the one bidding runs on.

The defects that produce a large gap

Duplicate firing. The same user action triggers two events: a GTM tag and a hard-coded gtag call, or a thank-you page view alongside a form submission event. Conversions inflate by an unknown and variable factor.

Broken cross-domain measurement. The user moves from your site to a booking platform, payment processor, or subdomain, and the session breaks. GA4 records a new session from a referral; the conversion loses its paid attribution entirely. This one has a specific fix rather than a workaround: the destination domains have to be configured on the data stream so the linker parameter carries the identifier across.

Unverified conversion actions. Someone marked a soft engagement (a phone-number click, a PDF download) as a primary conversion, and Smart Bidding is optimizing toward it. The count is high, the quality is unknown, and the CRM disagrees with both platforms.

Call tracking double counts. A call platform reports a conversion, and a click-to-call event fires for the same call. Both reach the ad platform.

Consent Mode and modelling. Where consent is denied, GA4 may model conversions while Ads counts differently. Modelled figures are estimates produced from observed behaviour and are labelled as such in Analytics, which matters when a finance team asks whether a number is measured or inferred. Whether this affects you depends on your jurisdiction and traffic mix, but it should be a known factor rather than a surprise.

How to reconcile them

Start with an inventory: every system that counts a conversion, and what precisely it counts. Most organizations have four (the ad platform, GA4, call tracking, and the CRM or booking system) and have never written the four definitions side by side.

Write the definitions in the same shape for each: the triggering user action, the counting rule, the attribution date, the attribution model, and the lookback window. Half the disagreements resolve during the writing, because two of the four turn out to be measuring different actions and nobody had noticed.

Trace one path end to end

Then trace the highest-value conversion path end to end, in a real session with debug tooling open: user action, data layer, GTM trigger, tag fire, platform receipt. Duplicate firing and broken linkage are visible in minutes this way, and invisible in reports for months. The failures worth finding are conditional rather than total, which is why a tag that fires in your test is not a tag that fires for your customers.

Declare one authoritative source

Then declare authority. One source is authoritative per decision: platform numbers for in-platform bidding, CRM or booking numbers for revenue reporting, with a documented expected variance between them. Write the expected variance down. A gap you predicted is a footnote; a gap you discovered on a client call is a credibility problem.

Which number should you report?

Which number should you report?
DecisionUseWhy
In-platform biddingGoogle Ads conversionsSmart Bidding optimizes on what it can see
Channel comparisonGA4 key eventsOnly source that sees all channels
Revenue and CPA to financeCRM / booking systemThe only source tied to money
Call volumeCall platform, deduplicatedPlatform events double count

Reporting all four without stating which is authoritative is the practice that erodes trust fastest, because each number is defensible in isolation and the set is not.

The row that causes the most internal friction is the third. Finance will treat the CRM figure as the only real one, and they are right for their purpose, but bidding cannot run on it without an import path. The way out is not to argue about which is correct: it is to state the expected variance between rows one and three in advance, in writing, and to review it monthly rather than after a bad quarter.

When to stop reconciling and audit instead

Reconciliation is worth doing yourself when the four definitions are knowable and the gap is stable. It stops being worth it when you cannot establish which system is even supposed to be right, or when correcting one number moves another for reasons nobody can explain.

Three signals say the problem is upstream. Conversion counts that change when nobody touched the account. A gap that reverses direction between months. And a primary conversion action that nobody currently employed can explain the origin of.

At that point the deliverable is not a fix, it is a reconciled definition set: a conversion attribution audit that quantifies each gap, separates structural variance from defects, and names one authoritative source per decision. Fixing tags underneath unreconciled definitions just relocates the disagreement.

The multi-location case

For multi-location businesses there's a fourth failure mode that dwarfs the others: conversion events that fire without a location parameter. The conversions are real and correctly counted in aggregate, and per-location performance is simply unmeasurable, which means budget decisions across locations are being made on aggregate data and gut feel.

This is what an attribution gap means in practice, and it's fixable at the event layer. It is worth checking before any optimization work, because per-location CPA is not comparable until it is fixed.

It also inverts the usual priority. When the aggregate gap is stable and the per-location data is missing, chasing the aggregate gap is the lower-value work. A stable variance you can explain costs you a footnote; an unmeasurable location costs you every budget decision you make about it.

Start a conversationMore insights