You pull conversion numbers from Google Ads. Then you check GA4. Then you look at your internal CRM. All three disagree.
This isn't a tracking bug. It's the expected outcome of three systems that count conversions using fundamentally different logic. The gap between them isn't noise — it's information. But only if you understand what each source is actually measuring.
This guide breaks down the major attribution methods in Google Ads and GA4, explains why they produce different numbers, and gives you a framework for choosing the right one depending on what question you're trying to answer.
Google Ads Native Pixel vs GA4-Imported Conversions
The first split most teams encounter is between conversions tracked natively by Google Ads and conversions imported from GA4.
Native pixel conversions
A conversion tag fires directly from the Google Ads tag (gtag.js or Google Tag Manager) when the user completes an action. The tag communicates directly with Google Ads servers — GA4 is not involved. Google Ads uses its own cookie (_gcl_aw, _gcl_dc) and click ID (gclid) to attribute the conversion back to a specific click.
Native pixel conversions support both click-date and conversion-date reporting and are eligible for enhanced conversions, where hashed first-party data is sent alongside the tag fire to improve match rates when cookies are missing.
GA4-imported conversions
The conversion event is tracked in GA4 first (via the GA4 tag or gtag config for your GA4 property). You then link GA4 to Google Ads and import specific GA4 events as Google Ads conversions. GA4 uses its own session and user model to determine attribution before handing the conversion to Google Ads.
The key difference: GA4 deduplicates across sessions and applies its own scoping rules. A user who clicks two different campaigns and converts will be counted differently depending on GA4's attribution scope. GA4-imported conversions typically show lower numbers than native pixel conversions because GA4 deduplicates per user, while the native pixel can fire multiple times per session.
Both still get DDA
Once conversions land in Google Ads — whether from the native pixel or GA4 import — they receive Data-Driven Attribution. Google Ads redistributes fractional credit across touchpoints in the conversion path regardless of origin. The input numbers differ, but the attribution model applied downstream is the same.
How conversions reach Google Ads
Native pixel
- →Tag fires in browser
- →Direct to Google Ads servers
- →Uses gclid + _gcl cookies
- →Can fire multiple times per session
GA4-imported
- →Event tracked in GA4 first
- →Imported via GA4–Ads link
- →GA4 session/user scoping applied
- →Deduplicated per user
Both paths receive Data-Driven Attribution once inside Google Ads.
Click-Date vs Conversion-Date Reporting
This is one of the most common sources of confusion in Google Ads reporting, and it trips up experienced marketers regularly.
Click-date attribution
The conversion is attributed back to the date the ad was clicked, not the date the conversion happened. A user who clicks an ad on May 1 and converts on May 10 has that conversion appear on May 1. This means recent days always look worse than they actually are — numbers will increase retroactively as delayed conversions come in. This lag can be substantial for longer sales cycles.
Click-date is the default in Google Ads reporting and what Smart Bidding strategies optimize against. It's the right view for evaluating campaign performance because it tells you which clicks are producing results.
Conversion-date attribution
The conversion appears on the date it actually occurred. Same example: the conversion shows up on May 10. Numbers are more stable day-to-day but don't tell you which click drove the action.
Conversion-date is useful for matching against internal systems — your CRM, billing platform, or data warehouse — that record events by the date they happened. If you're reconciling Google Ads data with your own records, this is the view to use.
Bing's limitation
Bing Ads only supports click-date attribution. There is no conversion-time equivalent in their reporting API. If you're running both platforms and comparing performance, you need to be aware that you're comparing click-date Bing numbers against whatever date model you've chosen in Google Ads.
Data-Driven Attribution: Why Your Conversions Aren't Integers
Since late 2023, Data-Driven Attribution has been the default model in Google Ads, replacing last-click. DDA uses machine learning on your account's conversion path data to assign fractional credit to each touchpoint in the journey.
A single conversion can be split across multiple campaigns and keywords. You might see 0.3 conversions attributed to a brand campaign and 0.7 to a generic campaign for the same actual conversion event. This is why conversion columns in Google Ads show decimal values.
DDA applies to both native pixel and GA4-imported conversions. The fractional credit distribution is opaque — Google does not expose model weights or explain why specific splits were made.
For most SaaS accounts, this means brand campaigns will show fewer conversions than they would under last-click (since DDA credits earlier generic or competitor touches), while upper-funnel campaigns will show more. This is generally more accurate but makes apples-to-apples comparisons with historical data harder if you previously ran on last-click.
GA4 Scopes: Session vs First-User
GA4 doesn't have a single attribution model. The attribution depends on which scope you query, and the logic is different for each.
Session scope
Attributes the conversion to whatever campaign, source, or medium is associated with that session. GA4 determines session source using last non-direct click logic — if the user arrives directly but has a prior campaign touch within the lookback window, the session inherits that prior source.
In practice: a user who originally found you through a generic keyword, then returns directly a week later and converts, gives session-scope credit to the direct visit (or the prior campaign if within the lookback window). Brand and remarketing campaigns tend to get more credit under session scope because they drive return visits.
First-user scope
Attributes the conversion to the campaign, source, or medium of the user's first-ever session — their acquisition touchpoint. This is permanently locked to the first touch, regardless of how many sessions follow. The user from the example above gives first-user credit to the original generic keyword, no matter what drove their converting session.
When to use each
First-user scope answers: "What channel acquired this customer?" It tends to show more conversions on generic and competitor campaigns and fewer on brand. This is the right scope for evaluating top-of-funnel efficiency and answering whether your prospecting spend is working.
Session scope answers: "What drove this specific visit?" It tends to favour brand and remarketing. This is useful for understanding what's driving immediate action but overweights channels that capture existing demand rather than creating it.
Neither scope distributes fractional credit across multiple touchpoints the way Google Ads DDA does. It's always 100% to one source — they just differ on which session that source comes from.
GA4 attribution scopes compared
Session scope
- →Credits the converting session
- →Last non-direct click logic
- →Favours brand & remarketing
- →Best for: "What drove this visit?"
First-user scope
- →Credits the acquisition session
- →Permanently locked to first touch
- →Favours generic & prospecting
- →Best for: "What acquired this user?"
Both scopes assign 100% credit to one source — no fractional distribution like Google Ads DDA.
Server-Side vs Client-Side: The Reliability Gap
All of the above assumes your tags actually fire. In reality, client-side tracking is increasingly unreliable.
Client-side tracking
JavaScript tags fire in the user's browser when events occur. They're subject to ad blockers, Intelligent Tracking Prevention (Safari's 7-day cookie cap), Firefox Enhanced Tracking Protection, consent banners, and simple page load failures. This is the standard approach — gtag.js, GTM web container, GA4 config tag — and its reliability is declining year over year.
Server-side tracking
Events are sent from your server to Google's servers, bypassing the browser entirely.
Server-side GTM (sGTM) runs a GTM container on your own cloud infrastructure that receives events from the client-side tag, processes them, and forwards to GA4 or Google Ads server-to-server.
Measurement Protocol sends HTTP requests directly from your backend to GA4's collection endpoint — no browser involved at all.
The benefits are clear: not blocked by ad blockers, not subject to browser cookie restrictions, and you can enrich events with server-side data like actual revenue from your billing system. The trade-offs are real too: more infrastructure to maintain, responsibility for consent handling (you must not track opted-out users), and a first-party cookie is still needed for user identity unless you use User-ID.
Enhanced conversions sit in between — the client-side tag collects hashed PII (email, phone) and sends it alongside the event. Google uses this to match conversions server-side even when cookies are missing. It's the lowest-effort way to recover some of the signal lost to browser restrictions.
Putting It All Together: A Decision Framework
The right attribution source depends on the question you're asking.
| Question | Best source | Why |
|---|---|---|
| Which campaigns should I increase budget on? | Google Ads (click-date, DDA) | Bidding optimises against this; it reflects what clicks produce results |
| Does our total conversion count match the CRM? | Google Ads (conversion-date) or internal data | Same calendar-day alignment as your systems |
| What channels are acquiring new customers? | GA4 first-user scope | Credits the channel that originally brought the user in |
| What's driving conversions this week? | GA4 session scope | Credits whatever drove the converting visit |
| Are our Google Ads numbers inflated? | Compare GA4-imported vs native pixel | GA4 deduplicates per user; large gaps suggest multi-fire or bot issues |
Rules for keeping your analysis clean
- 1.Never mix attribution sources in the same table.Comparing Google Ads native conversions for one channel with GA4 first-user conversions for another produces meaningless numbers.
- 2.Always state the attribution source.Every report should specify: platform attribution (and click-date vs conversion-date), GA4 session scope, GA4 first-user scope, or internal/CRM attribution.
- 3.Expect the numbers to disagree.Discrepancies between sources aren't bugs — they're the result of different counting methodologies answering different questions. A 10-20% gap between Google Ads native and GA4-imported conversions is normal.
- 4.Use first-user scope for acquisition analysis.If you want to know whether your prospecting spend is working, session scope will mislead you by giving credit to brand and remarketing touchpoints.
- 5.Use click-date for campaign optimisation.Conversion-date is better for reconciliation, but click-date tells you which decisions actually produced outcomes.
The Bottom Line
Attribution isn't a solved problem — it's a set of trade-offs. Each method answers a different question, and none of them is "right" in isolation. The mistake isn't choosing one source over another. It's mixing sources without realizing it, or assuming that because Google Ads says you got 50 conversions, that's the same 50 your GA4 dashboard shows.
Pick the attribution source that matches your question. Label it clearly. And when your stakeholders ask why the numbers don't match across reports, you'll have the answer ready.
Need help making sense of your attribution data?
Jarrah helps growth teams build measurement frameworks that connect ad platform data to real business outcomes — so you can optimise with confidence.
Talk to us →