The four reasons the numbers differ
They book conversions on different days. This is the largest and least known of the four. Google Ads records a conversion against the date of the click, so an order placed today from a click three weeks ago appears in last month's figures. GA4 records it today. Compare any fixed date range and the two disagree before anything else is even considered.
They credit different things. Google Ads is asking which of its ads deserves the sale. GA4 is asking which session did. A visitor who clicks an ad, leaves, and returns a week later from an organic search is an ad conversion in one and an organic conversion in the other. Both are right about their own question.
They use different windows. The click-through and engaged-view windows in Google Ads are set per conversion action and are frequently left at defaults nobody chose. GA4 has its own lookback, set separately. Two windows, two answers.
Google Ads counts modelled conversions. Where consent or cookie loss means a conversion cannot be observed, Google estimates it from users it could see. Those estimates are in your Google Ads reporting and are not in GA4, because GA4 is not making them for that surface.
Which one to trust
| Question | Use |
|---|---|
| Which campaign should get more budget? | Google Ads |
| How many orders did we take on Tuesday? | GA4, or better, the shop |
| What did paid contribute overall? | Neither on its own |
| Did the site convert better this month? | GA4 |
Google Ads is the right tool for deciding between ads, because it is the only one that knows what it charged and which click it charged for. It is the wrong tool for counting the business, because it is scoped to itself and reports on its own effectiveness. The shop or the CRM is where the real order count lives.
When the gap is a bug rather than a definition
A discrepancy in the region of 10% or less is usually just the four reasons above. It is worth investigating when:
- The gap is above roughly 20% and has not always been there. Something changed, usually a tag.
- GA4 is higher than Google Ads. The definitions above mostly push the other way, so this inverts the expected direction and suggests double counting.
- The gap appears on one conversion action and not the others. That is configuration, not attribution.
- One source went to zero. That is a broken tag, and no amount of attribution theory explains it.
What to check, in order
- Are you comparing the same date basis? Nothing else matters until this is settled, and it explains more gaps than every other cause combined.
- Timezone. The Google Ads account and the GA4 property can be set to different ones. A busy evening lands on a different day in each.
- Which conversion actions are in "Conversions". Google Ads only counts actions marked primary. GA4 counts what you told it to. These drift apart quietly.
- Deduplication. A conversion sent by both the tag and the API, without a shared transaction ID, is counted twice.
- Consent. If a consent tool blocks GA4 but Google Ads is modelling around it, the difference is exactly the modelled portion.
The thing worth doing instead
Reconciling two ad platform reports to each other is work with no output. Both are scoped to themselves, and neither can see your margins, so neither knows that the campaign with the best reported ROAS is selling the product you make the least on.
The comparison that pays is ad data against order data, held in one place. That is a different exercise from making two dashboards agree, and it is the one that changes what you do next. Which is also the ceiling on how much a system can usefully run on its own: every autonomous decision downstream inherits whatever the tracking got wrong.