Key takeaways
- Google Ads reports a conversion on the date of the ad click, while GA4 reports it on the date the conversion happened, so the two will differ for any date range.
- Google Ads only sees Google Ads interactions and shares credit between them; GA4 shares credit across every channel, so paid search usually looks smaller in GA4.
- Consent Mode modelling works differently in each system and has different eligibility thresholds, which widens the gap in European markets.
- Never put Google Ads and GA4 numbers in the same table; pick one source of truth for each question and label it.
- Use the platform for optimisation, GA4 for channel mix and the CRM for pipeline.
GA4 and Google Ads will never show the same conversion numbers, even when both track the same form. They answer different questions. Google Ads asks which of its own ad clicks led to a conversion and books the result against the click date. GA4 asks which channels contributed to a conversion across the whole site and books it against the day it happened.
The practical answer is to stop trying to make them match. Use each system for the question it answers well, keep them in separate tables, and investigate only when the gap between them changes suddenly. That change is almost always a tracking fault.
Click time and event time
Google Ads reports conversions against the date and time of the click that led to them. If someone clicks on 28 March and requests a demo on 4 April, the conversion appears in March. GA4 reports the same demo request on 4 April.
For B2B SaaS, with sales cycles measured in weeks, this matters a great deal. Last month's Google Ads conversions keep rising for up to the length of the conversion window, while GA4's figure for last month is fixed once the month ends. Google Ads offers "by conversion time" columns if you need an event-time view inside the platform, but the default columns are click time.
This is why we report a market's primary action (for example trial requests) in event time for anything that concerns the business, such as a brand incrementality test, and keep Google Ads' click-time numbers for optimising campaigns.
Attribution and who gets credit
Both systems offer data-driven attribution and last-click options. First click, linear, time decay and position-based models were retired in both. Data-driven attribution is the default for most Google Ads conversion actions.
The difference is the pool of channels competing for credit. The Google Ads tag only sees Google Ads interactions, so a conversion preceded by one Google Ads click gets full credit in Google Ads. GA4 can share that same conversion with an organic visit, a LinkedIn ad and an email. GA4 also excludes direct visits from credit unless the path is entirely direct. Paid search usually looks smaller in GA4 as a result.
GA4 offers three reporting models: data-driven, paid and organic last click, and Google paid channels last click. Check which one your property uses before comparing reports, because a change here moves every channel's numbers.
Conversion windows
A Google Ads click-through conversion window defaults to 30 days and can be set from 1 to 90 days per conversion action. GA4's lookback window defaults to 90 days for most key events (30 or 60 are the alternatives) and 30 days for acquisition events. Changes to conversion and lookback windows apply going forward only.
A demo request 45 days after the click counts in GA4 under default settings and is missed by a Google Ads action left on 30 days. In long-cycle B2B, we usually set Google Ads windows to match the real time from first click to conversion.
Consent and modelled conversions in Europe
In the EEA, Consent Mode v2 passes two further signals, ad_user_data and ad_personalization, alongside the storage signals. When a visitor declines, both systems can model some of the missing data, but under different rules.
- Google Ads models conversions when consent mode is implemented correctly and the account passes 700 ad clicks over 7 days per country and domain grouping. Modelled conversions appear in the Conversions column and can take several days to stabilise.
- GA4 behavioural modelling needs at least 1,000 events a day with analytics storage denied for 7 days, plus at least 1,000 daily consented users on 7 of the previous 28 days. Modelled data only shows with the Blended reporting identity and is not included in BigQuery export.
In the accounts we run, B2B SaaS sites often meet the Google Ads threshold in their largest market and miss the GA4 threshold. Google Ads then fills in declined-consent conversions and GA4 does not, so the gap is widest in countries with low consent rates.
Imported GA4 conversions and native Google Ads tags
You can bid on GA4 key events imported into Google Ads, or on the native Google Ads conversion tag. Imported GA4 conversions are still reported by click date in Google Ads, can take several hours to arrive, and pass through Google Ads' invalid click filtering, so they will not equal the GA4 count either.
The bigger risk is having several versions of the same action. In audits we often find conversions split across GA4 imports, legacy Universal Analytics imports, CRM form events and old thank-you-page tags, sometimes with different primary actions in each Google Ads account. No report can be trusted until each action has one primary source and everything else is set to secondary. For most B2B accounts the next step is importing CRM stages; see our guide to offline conversion import from HubSpot and Salesforce.
When "Unassigned" jumps: a diagnosis
GA4 uses "Unassigned" when no channel rule matches an event's traffic source. A small, steady amount is normal. A sudden jump almost always means a tracking fault.
A typical pattern: after a site change, unassigned trial events jump from a handful a day to a large share of all trial requests, while organic and direct fall by a similar amount. Paid search often holds steady, because Google Ads attribution through the click ID is unaffected. From that day, the organic and direct shares in GA4 are understated.
The diagnostic order we follow:
- Tag Manager version history. Find the container version published on or near the date of the jump and compare it with the previous one. Most cases start here.
- Event order and session start. Check whether the conversion event fires before the Google tag has initialised the session, for example on a form in an iframe or a new thank-you page.
- UTM and gclid handling. Look for redirects, consent banners or single-page app routes that strip query parameters before the Google tag reads them.
- Server-side or Measurement Protocol events. Events sent without a valid client ID and session ID cannot join a session and land in Unassigned.
- Channel rules. Non-standard
utm_mediumvalues fall outside the default channel group.
Reconciliation table
The effect sizes below are rough, qualitative ranges from the accounts we run.
| Reason | System affected | Usual size of effect | What to do |
|---|---|---|---|
| Click time vs event time | Both, by date | Small over a quarter, large for recent weeks | Compare full quarters, or use Google Ads "by conversion time" columns |
| Cross-channel credit | GA4 shows less paid search | Moderate to large | Accept it; use GA4 for channel mix only |
| Conversion window vs lookback window | Google Ads undercounts long cycles | Small to moderate | Align windows with your real sales cycle |
| Consent modelling thresholds | Usually Google Ads higher | Moderate in low-consent markets | Check eligibility per country; note it in reports |
| Counting setting ("One" vs "Every") | Google Ads | Small to large for repeat actions | Use "One" for leads and trials |
| Duplicate or legacy conversion actions | Google Ads | Can double the count | One primary action per goal, others secondary |
| Unassigned spike | GA4 channel shares | Large, sudden | Tag Manager history first, then session and parameter checks |
| Time zone differences | Both, by day | Small | Set account and property to the same time zone |
The reporting rule: one source per question
Never mix Google Ads and GA4 numbers in one table. A column of platform conversions next to a column of GA4 sessions invites a division that means nothing. Pick one source of truth for each question and state it in the table heading.
| Question | Source of truth | Time basis |
|---|---|---|
| Which campaigns, keywords and ads should get more budget? | Google Ads (or Microsoft Ads, LinkedIn) | Click time |
| How is demand split across channels, and is organic growing? | GA4 | Event time |
| How much pipeline and revenue did paid media produce? | CRM | Opportunity or close date |
A recommended reporting layout
- Platform view, for optimisation. One section per ad platform, using its own conversions and cost, reviewed weekly.
- GA4 view, for channel mix. Primary action by channel in event time, reviewed monthly, with Unassigned shown as its own row so a spike is visible.
- CRM view, for pipeline. Opportunities and closed revenue by source over a rolling 90 days, which suits B2B sales cycles.
Each section carries its own heading, date basis and definition. Commentary is written from the same data as the tables so the two cannot drift apart.
Across several European markets
Consent rates, and therefore modelling, differ by country, so the gap between GA4 and Google Ads can be small in one country and large in its neighbour. Compare each market with itself over time and keep currency and time zone settings consistent across accounts and properties.
A first step
Write down, for each report you send, which system each number comes from and whether it is click time or event time. Most confusion disappears once every table carries that label. If you want a reporting setup built this way, see our dashboards and measurement services.
Questions
How big a gap between GA4 and Google Ads is normal?
There is no fixed normal figure, because the gap depends on sales cycle length, consent rates and attribution settings. As a rule of thumb, look for a stable gap. A sudden change in the gap matters more than its size and usually points to a tracking change.
Should Google Ads bid on imported GA4 key events or on the Google Ads tag?
Either can work, but pick one as the primary conversion for each action and set the other to secondary so it is not counted twice. Many B2B accounts end up importing CRM stages as offline conversions and using those for bidding instead.
Why does GA4 show more Google Ads conversions than Google Ads on some days?
GA4 counts conversions on the day they happen, while Google Ads moves them back to the click date. A day with many conversions from older clicks will look higher in GA4. Different counting settings and lookback windows can also push GA4 higher.
What does "Unassigned" mean in GA4?
It is the channel GA4 uses when no channel rule matches the event's traffic source. A sudden rise usually means something broke the link between events and the session that started them.