GA4 and Google Ads numbers don't match: which gaps are normal and which are faults.
- “GA4 and Google Ads numbers don't match, why”
- “Google Ads conversions higher than GA4”
- “Google Ads conversions don't match Google Analytics”
- “GA4 vs Google Ads conversion discrepancy”
Baris Asa, tracking consultant, London · Last checked: October 2026
GA4 and Google Ads don’t match because they count by different rules. GA4 counts conversions from every channel and dates them to the day they happened. Google Ads counts only conversions it credits to its own ads and dates them to the ad click. Google’s help puts it plainly: “Discrepancies, often up to 20%, are expected due to different attribution models.”
So GA4 usually runs above Google Ads, and Google Ads runs above GA4 when it adds conversions GA4 can’t see. Neither is a fault. A steady gap after a like-for-like comparison is the rules doing their job. Roughly double, a zero, or a jump on a date you can name is a fault, and each of those has a code on file.
Why do GA4 and Google Ads show different numbers?
Seven rules differ. Five are design. Two, how repeats are counted and which actions are primary, are settings: set wrong, they become faults.
| GA4 | Google Ads | |
|---|---|---|
| Who gets credit | Any channel | Only its own ads |
| Credit for GA4 imports | Decided in GA4 first | Takes what GA4 sends |
| Date of the conversion | Day it happened | Day of the ad click |
| A repeat by the same person | Counted each time, or once a session | Counted each time, or once per click |
| Which actions count | Every key event | Primary actions only |
| Conversions it can’t observe | Left out | Estimated and added |
| How far back it looks | Up to 90 days | 1 to 90 days, per action |
1. They give credit to different channels
Google Ads reports only conversions that followed an interaction with its own ads. GA4 credits every channel: session reports credit whatever started the session, key event reports use the property’s attribution model (Admin, Attribution settings). A buyer who clicks an ad on Monday and comes back through an email on Friday can sit under email in GA4 and under the campaign in Google Ads.
2. Credit for GA4 imports is decided in GA4 first
A GA4 key event imported into Google Ads is attributed in GA4 before it is sent. The setting is Channels that can receive credit. For conversions shared with Google Ads it defaults to Google paid channels. Switched to Paid and organic, an organic visit can take the credit, and fewer imported conversions reach Google Ads.
3. They date conversions differently
Google Ads reports a conversion on the date of the ad click. GA4 reports it on the date it happened. A click on 28 October that converts on 2 November is October in Google Ads and November in GA4. The gap is widest at month end and after a change in spend.
4. They count repeats differently
In Google Ads, each conversion action has a Count setting: Every counts each conversion after a click, One counts one per click. A lead who sends the form twice is two key events in GA4 and one conversion in Google Ads set to One. That is right for leads; for purchases, Every is right. GA4 sets its own counting on each key event: Once per event, the default, or Once per session (Legacy), the default for key events created from Universal Analytics goals.
5. Only primary actions reach the Conversions column
The Conversions column shows primary actions; All conv. adds secondary ones. Actions created through the GA4 interface start as secondary. A GA4 purchase imported but never made primary shows in All conv. and nowhere else.
6. Google Ads adds conversions GA4 can’t see
Google Ads can include modelled conversions, estimated by Google for journeys it can’t observe: cross-device paths, and visitors who declined cookies under Consent Mode. That is upside: conversions you would otherwise lose, counted back. All conv. can also carry view-through conversions, from people who saw an ad and didn’t click. Enhanced Conversions, which sends hashed customer data with the conversion, helps Google Ads match more of them (F-402 ). It is not a dedup mechanism; transaction_id is (F-102 ).
7. They look back over different windows
A Google Ads conversion window runs from 1 to 90 days, set per action, and a conversion after it never reaches Google Ads. GA4’s lookback for most key events defaults to 90 days. Changes to either apply going forward.
Housekeeping that moves the numbers too
- Google Ads may filter out imported conversions that followed clicks it classes as invalid. GA4 keeps them.
- GA4 processing takes 24 to 48 hours, some data arrives up to 7 days late, and attribution credit for key events can change for up to 12 days.
- GA4 imports reach Google Ads up to 24 hours after the conversion.
- Each account has its own time zone and currency. Yesterday is always short somewhere.
How do I compare GA4 and Google Ads like for like?
Often the “mismatch” is two different reports, not two different counts. Make four changes, in this order. Each one removes a rule from the gap.
- Same channel. In GA4, go to Explore, start a free-form exploration, add the Source / medium dimension (the plain one, not session source / medium) and filter it to
google / cpc. What it shows you: GA4’s purchases credited to Google Ads. GA4 still applies its own attribution model here, so a few points of difference are by design. - Same conversion action. In Google Ads, open Campaigns, then Segment, Conversions, Conversion action. Read only the purchase row. What it shows you: purchases alone, without leads, calls or sign-ups mixed into the total.
- Same date basis. Still in Google Ads, open Columns, Conversions, and add All conv. (by conv. time). Read it on the purchase row. What it shows you: purchases dated to when they happened, as GA4 dates them, including a purchase action set to secondary.
- A settled fortnight. Pick a closed week that ended at least two days ago. Look again about two weeks later before you call anything a fault. What it shows you: the gap once late data and GA4’s attribution updates have landed.
Keep the store’s own order count for the same week next to both. It is the number both platforms are read against.
| STEP | GA4 | GOOGLE ADS | GAP |
|---|---|---|---|
| As first read | 388 | 212 | GA4 +83% |
| 1. Google Ads only | 171 | 212 | Ads +24% |
| 2. Purchase only | 171 | 194 | Ads +13% |
| 3. All conv., by conv. time | 171 | 183 | Ads +7% |
| 4. Two weeks later | 176 | 184 | Ads +5% |
The first read compares GA4 across every channel with the whole Google Ads Conversions column, and GA4 looks 83% ahead. Step 1 cuts GA4 to Google Ads traffic and the gap turns round. Step 2 drops the primary lead action from the Google Ads total. Step 3 moves purchases from the click date to the conversion date. Two weeks later the gap is 5%: modelling and attribution, not a fault.
If you can’t get to these reports, or the gap is still wide after step 4, email the two numbers for one closed week and say which way the gap runs.
How do I read the gap?
After the four changes:
| What you see | Likely cause | On file |
|---|---|---|
| Steady, roughly within Google’s 20% | Attribution and modelling: normal | None |
| Google Ads roughly double | Two primary actions, one sale | F-104 |
| Moves independently, or GA4 well above | Wrong event imported | F-104 |
| GA4 below Google Ads on repeat buyers | Key event on Once per session | F-104 |
| Google Ads has zero GA4 conversions | Link or import missing | F-403 |
| Both above store orders | Purchase fires twice | F-101 |
| Ads counts it, GA4 credits a payment site | Journey broken at checkout | F-204 |
| Counts agree, revenue doesn’t | Value built differently | F-302 |
| Both drop the day the banner changed | Consent wired wrong | F-201 |
Faults stack. A doubled primary action and a broken checkout journey can run at once and partly cancel out, which is why the check runs one action at a time.
Which gaps are faults?
A fault leaves a shape the seven rules don’t, and it usually starts on a date: a new import, a release, a banner change. Each is on file with the test that confirms it.
F-104 · Google Ads roughly double: two primary actions for one sale
Shape: Google Ads purchases run at about twice GA4, from the day a GA4 import was made primary.
Primary actions feed the Conversions column and Smart Bidding, Google’s automated bidding. When the Google Ads tag and a GA4 import both count the same purchase and both are primary, each fires once, each is correct, and the column adds them. In Google Ads, open Goals, Conversions, Summary, and look for two primary purchase actions with similar counts. Keep one primary and set the other to secondary. Full write-up: F-104 .
F-104 · The two move independently: the wrong event is imported
Shape: GA4 and Google Ads rise and fall on different days, or GA4 stays well above Google Ads after all four changes.
The event imported into Google Ads isn’t the one the business counts: an add-to-cart imported as the conversion, or the purchase never marked as a key event. In GA4, open Admin, Key events, and compare the list with what you call a conversion. In Google Ads, open each conversion action and check which GA4 event it imports.
F-104 · GA4 below Google Ads on repeat buyers: Once per session
Shape: GA4 runs under Google Ads, most on actions people repeat in one visit, often in a property migrated from Universal Analytics.
A key event left on Once per session (Legacy) counts a second purchase in the same visit once. A Google Ads action set to Every counts both. In GA4, open Admin, Key events, and check the counting method on each one. For purchases, Once per event is right.
F-403 · Google Ads shows nothing from GA4: the link or import is missing
Shape: GA4 has purchases credited to Google Ads. Google Ads has no GA4 conversion actions, or they sit at zero.
The GA4 and Google Ads link was never made, or was made without importing the key events. In GA4, open Admin, Product links, Google Ads links, and check the link exists. Then confirm the conversion actions in Google Ads show Google Analytics as the source and a recent status.
F-101 · Both run ahead of the store: the purchase fires twice
Shape: GA4 and Google Ads purchases are both higher than store orders for the same closed week.
The purchase tag fires more than once for one order, and every platform it feeds inflates together. On web streams GA4 removes repeats of the same transaction_id, the order number sent with the purchase; a missing or changing ID gets through. Google Ads drops a second conversion with the same transaction ID on the same action. Google doesn’t document the same for GA4 imports, so a double fire that gets past GA4 can reach Google Ads through the import.
The quickest test: take ten order numbers from the store for that week and look each one up in GA4 (an exploration on transaction ID) and in Google Ads. An order that appears twice is the fault in plain sight. Full write-up: F-101 ; the store-side view is in GA4 revenue runs ahead of Shopify.
F-204 · GA4 credits a payment site: the journey breaks at checkout
Shape: Google Ads counts the sale, but GA4 credits it to a payment provider such as paypal.com / referral, or to another domain in the checkout.
The buyer lands from the ad, leaves for a payment page or a checkout on another domain, and comes back. GA4 credits the return to wherever they came back from. Google Ads stored the click on landing, so it still counts the conversion. Add payment domains to GA4’s unwanted referrals list, and set up cross-domain measurement for any second domain.
A different shape with the same code: a redirect drops the gclid, the click ID Google adds to the ad’s URL, before the landing page loads, and both platforms lose the click. Check auto-tagging is on in Google Ads and follow one ad click through every redirect.
F-302 · Counts agree but revenue doesn’t: the value is built differently
Shape: conversion counts line up; conversion value or ROAS doesn’t, often by about the tax or shipping amount.
Each tag builds its own value. One includes tax and shipping, one doesn’t, one defaults the currency. Read the value of the same order in each platform. A wrong value is not a wrong count; fix them separately. Google Ads value against the shop’s revenue, including value rules and refunds, is in Google Ads conversion value doesn’t match actual revenue.
F-201 · Both drop after a banner change: consent wired wrong
Shape: GA4 and Google Ads fall together from the day the cookie banner or its settings changed, and Chrome and Safari fall alike.
Wired correctly, Consent Mode is what lets Google Ads model conversions back for visitors who decline. Wired wrong, tags fire before the banner is answered or never update after it, and both platforms lose conversions from visitors who said yes. Full write-up: F-201 , and the drop itself in Consent Mode v2 conversion drop.
Which number should I trust?
Each, for its own job. Google Ads is the number Smart Bidding sees, so it decides spend. GA4 is the view of how the whole site sells. The store’s order count is the ground truth both are read against. When all three agree within the normal gaps above, the tracking is doing its job.
If the checks point at more than one fault, or none, that’s a reconciliation: order by order, every remaining gap named. A wider check of GTM, GA4, Google Ads, Meta and consent is a tracking audit. Email [email protected] with one closed week of GA4 and Google Ads purchase figures and which way the gap runs. I’ll say whether it’s a reconciliation, an audit, or nothing to fix.
Common questions
Why do GA4 and Google Ads conversion counts differ?
Mostly because GA4 counts conversions from every channel and Google Ads counts only those it credits to its own ads. GA4 also counts every repeat of a key event on Once per event, where a Google Ads action set to One counts one per ad click, and Google Ads counts only primary actions in its Conversions column. If GA4 is still well above Google Ads once you compare Google Ads traffic only, one purchase action, on the same date basis, check which GA4 event the Google Ads action imports.
Why does Google Ads show more conversions than GA4?
Google Ads can add modelled, cross-device and view-through conversions that GA4 never sees. A GA4 key event left on Once per session (Legacy) also counts below a Google Ads action set to Every. Roughly double is not normal: it usually means the Google Ads tag and a GA4 import are both primary for the same purchase.
How big a gap between GA4 and Google Ads is normal?
Google’s help says: “Discrepancies, often up to 20%, are expected due to different attribution models.” Treat that as a rough guide, not a pass mark, and apply it only after comparing like with like. What points to a fault is the shape: roughly double, a zero, or a jump on a date you can name.
Which Google Ads column should I compare with GA4?
All conv. (by conv. time), segmented by conversion action, with only the purchase action read. It dates conversions to when they happened, as GA4 does. On display and video campaigns, check for view-through conversions, which GA4 does not see.
How long should I wait before comparing GA4 and Google Ads?
Leave out the last two days, then look again about two weeks later before filing a fault. GA4 processing takes 24 to 48 hours, some data arrives up to 7 days late, and GA4 can change attribution credit for key events for up to 12 days. GA4 imports reach Google Ads up to 24 hours after the conversion.
Sources
Read on 31 October 2026:
- Google Ads Help, understand your conversion tracking data (click-date reporting, Conversions vs All conv., by conv. time columns, modelled and view-through conversions, “often up to 20%”), create conversions from Google Analytics events (click date, Every vs One, 1 to 90 day window, invalid clicks, import up to 24 hours, actions created in GA4 secondary) and use a transaction ID to minimise duplicate conversions
- Google Analytics Help, conversions vs key events, attribution settings (reporting attribution model, lookback windows, channels that can receive credit and their defaults), key event counting method, data freshness (24 to 48 hours, up to 7 days late, attribution credit can change for up to 12 days) and minimise duplicate key events with transaction IDs