Google Ads conversions vs GA4 imported conversions: which number to trust
Your Google Ads conversion count and your GA4 conversion count will never match, and one of them should not be driving your bidding. Why the numbers differ, and which one is right for which job.
Short answer: for bidding, use the native Google Ads conversion tag, not the GA4 conversion imported into Ads. They count differently by design, and the GA4 import applies a second attribution model on top of data that has already been sampled through a different lens. The two numbers not matching isn't a bug to fix — it's what correctly configured tracking looks like.
If someone has told you the discrepancy means your tracking is broken, that may be true, but the gap alone is not the evidence.
They count different things
This is the root of it. Four differences, each of which alone produces a mismatch:
Attribution timing. Google Ads credits a conversion to the date of the click. GA4 credits it to the date of the conversion. A click on the 28th that converts on the 3rd shows up in a different month in each platform. Compare any short date range and they cannot agree.
Attribution model. Google Ads reports conversions against the ad interaction that earned credit under its own model. GA4 applies its own attribution across all channels — including the organic and direct sessions Ads never sees. GA4 is deliberately trying to give other channels credit that Ads, by design, keeps.
Counting rules. Google Ads lets you choose "every" or "one" conversion per click. GA4 counts events. A user who submits the same form three times can be three conversions in one system and one in the other.
Consent and modelling. Both platforms model unobserved conversions under Consent Mode, but they model different things from different inputs. Two models, two answers.
A 10–20% gap between Google Ads and GA4 on the same conversion is normal and expected. Investigate when the gap is directional and growing, when one platform drops to near-zero, or when the two diverge sharply on a single day — that's a tag or consent problem, not an attribution artefact.
Why the native tag should drive bidding
Smart Bidding optimises against the conversions you tell Google Ads about. Two reasons to make those the native ones:
Latency. The native tag reports in near real time. A GA4 conversion imported into Ads goes through GA4's processing first, adding delay before the bidding algorithm sees it. On a fast-moving account, you're bidding on stale data.
Fidelity loss. Each hop costs you signal. Browser → GA4 → attribution processing → export to Ads is three opportunities for a conversion to be dropped, deduplicated, or re-attributed away from the ad click. Browser → Ads is one.
There's a legitimate case for importing GA4 conversions: events that only exist in GA4 and would be genuinely awkward to instrument twice — a deep engagement threshold, a multi-step funnel completion. That's a reasonable use. What isn't reasonable is importing a GA4 purchase or lead event when a native Ads conversion for the same action already exists.
The double-counting trap
Which brings us to the most common failure in this area. If you have both a native Ads conversion action and an imported GA4 conversion for the same event, and both are set to "Include in 'Conversions'", Google Ads counts the action twice and bids on the inflated number.
The symptom is a conversion count that looks implausibly good, a cost-per-conversion that's suspiciously low, and a business that isn't seeing the revenue. Check Goals → Conversions → Summary in Ads: look for two actions describing the same real-world event, both with "Include in 'Conversions'" set to Yes. One of them should be set to secondary — and it should be the imported one.
Which number for which job
| Question | Use |
|---|---|
| What should Smart Bidding optimise toward? | Native Google Ads conversion |
| How much did paid search really contribute across channels? | GA4 |
| Did the campaign hit its target CPA? | Google Ads |
| What did users do after converting? | GA4 |
| What actually became revenue? | Your CRM, imported back via OCI |
The last row is the one that resolves most arguments. Both platforms are measurement systems with modelling assumptions; neither is the accounting system. When Ads and GA4 disagree and it genuinely matters, the tiebreaker isn't a third analytics tool — it's your backend. If your CRM says 40 qualified leads and Ads says 62, the useful conversation is about what those extra 22 were, not about which dashboard is lying.
Feeding that CRM outcome back into Ads is what makes bidding accurate in the first place — see enhanced conversions vs offline conversion import for how that pipeline is built.
Before you blame attribution
A genuine tracking fault looks different from an attribution gap. Check these first:
- Is the tag firing before consent, or not at all? If your CMP blocks the Ads tag and Consent Mode isn't wired, you lose conversions and the modelling that would have partially recovered them.
- Is the Conversion Linker present? Without it, the GCLID isn't stored and click attribution degrades.
- Are conversions deduplicated? If you fire both a gtag conversion and a server-side one for the same event without a shared transaction ID, you'll double-count.
- Did the gap start on a specific date? Attribution differences are gradual. Cliff edges are deployments.
The fastest way to rule out the consent-layer causes is to look at what your site actually does before anyone clicks Accept. The Google Ads consent checker loads your site in a real browser and reports which Google tags fire pre-consent, plus the AW/G/GTM IDs it detects.
If the checker comes back clean and the numbers still don't reconcile, the problem is almost certainly attribution methodology rather than tracking — which means the answer isn't to fix the gap, but to stop expecting the two numbers to be the same one.