Two products from the same company, looking at the same website, measuring the same purchases, reporting different numbers. It is one of the most common questions in paid search and it produces a lot of wasted debugging, because most of the gap is by design. Here is what each system is actually counting, which differences are expected, and the point at which a gap stops being normal and starts being a fault.
They are answering different questions
This is the root of almost every discrepancy, and once it clicks the rest follows.
Google Ads asks: did my advertising cause this? It credits conversions back to the ad interaction, on the date of the click, within its attribution window, for people it can connect to an ad.
GA4 asks: what happened on my website? It records events on the date they occurred, for all traffic regardless of source, and attributes them using its own model.
Those are different jobs. A tool built to measure advertising contribution and a tool built to measure site behaviour will not produce the same number, and a setup where they matched exactly would be more suspicious than one where they do not.
The five differences that produce most of the gap
1. Click date versus event date. Someone clicks your ad on the 28th and buys on the 30th. Google Ads books that conversion on the 28th. GA4 books it on the 30th. Compare a single day and the two reports disagree for reasons that have nothing to do with tracking. This alone makes daily comparison close to meaningless, and it is the same backdating mechanic described in attribution lag and fake weekday patterns.
2. Different attribution models. Google Ads and GA4 can each be configured to attribute differently, and they do not have to agree. If one gives full credit to the last ad click and the other distributes credit across the journey including organic and direct, neither is wrong. They are dividing the same pie along different lines, and GA4 will typically show your paid channel receiving less.
3. Counting every conversion versus counting one. Google Ads lets you choose whether to count every conversion from a click or only the first. A customer who orders three times in a week is either three conversions or one, depending on that setting. GA4 counts each purchase event. If your Google Ads conversion action is set to count one per click and you have repeat buyers, Google Ads will be structurally lower.
4. Consent and modelling, applied differently. Where users decline tracking, both systems may model the missing conversions, but they model independently with different inputs. The modelled portion is an estimate, and two estimates of the same unobserved quantity will not agree. This is especially visible in the EU and UK. Background in consent mode and your tracking.
5. Enhanced conversions recovering matches GA4 cannot see. If you send hashed first-party data with your Google Ads conversions, Google can connect purchases to ad clicks that would otherwise have gone unmatched, particularly across devices. GA4 has no equivalent recovery path for the same session. That pushes Google Ads higher than GA4, which surprises people who expect GA4 to always be the bigger number. Setup is in enhanced conversions for Google Ads.
What size of gap is normal
There is no universal figure, and anyone quoting one precisely is guessing. But some useful rules of thumb.
- Compare over 30 days, never a single day. The click date versus event date difference mostly washes out over a month and dominates over a day.
- Filter GA4 to the paid channel. Comparing total GA4 key events against Google Ads conversions is comparing all your traffic against one channel. That is not a discrepancy, it is a category error, and it is the single most common version of this question.
- Within roughly 10-20% over a month is unremarkable once you are comparing like for like. Which direction depends on your settings, consent rates and whether enhanced conversions is on.
- Stable is what matters more than equal. A consistent 15% gap is a well-understood accounting difference. A gap that was 15% and is now 60% is a change, and changes are what you investigate.
The wider framing of which discrepancies to accept and which to chase is in how much tracking discrepancy is normal.
The exact settings that create the gap
Before comparing anything, check these. Most "my numbers don't match" questions are answered by one of them, and it takes about five minutes to go through the list.
In Google Ads, open the conversion action itself. Four settings on that screen change the number directly. The count setting, every versus one, which matters enormously for repeat purchases. The conversion window, commonly 30 days but configurable up to 90, which defines how far back a click can be credited. The attribution model. And the include in Conversions toggle, which decides whether the action appears in your headline Conversions column at all. That last one catches people out constantly: an action can be recording perfectly and still be absent from the number you are looking at.
In GA4, check which events are marked as key events and whether more than one qualifies. If both purchase and some custom event are flagged, your key event total is counting two things per order. Also confirm your reporting identity setting and your channel group definitions, because a comparison filtered to the wrong channel grouping will disagree for reasons that have nothing to do with tracking.
Then confirm both are firing on the same moment. If Google Ads fires its conversion on the thank-you page and GA4 fires purchase from a data layer event, a customer who never reaches the thank-you page, or who refreshes it twice, will be counted differently by each. Checking the tag is genuinely installed where you think it is covered in how to confirm your Google tag is installed.
A worked example
A store runs Google Ads for a month. The backend records 500 orders overall, of which 180 had a Google paid touchpoint somewhere in the journey.
- Google Ads reports 165 conversions. Lower than 180 because some buyers converted outside the click window, some declined tracking and were not fully recovered, and the conversion action counts one per click so a handful of repeat orders collapsed into single conversions.
- GA4 reports 140 purchases from Google paid. Lower again, because GA4 is distributing credit across the journey rather than giving it all to the ad click, so orders where paid search was an early touch get partly assigned to organic or direct.
Nothing here is broken. Google Ads is 15% below the true paid-influenced figure and GA4 is 15% below Google Ads, and both gaps have identifiable causes. The useful output is not the reconciliation, it is the two ratios. Next month, if Google Ads sits at 60 against 180 real orders, the ratio moved from 0.92 to 0.33 and you have a specific thing to investigate on the day it happened.
When the gap does mean something is broken
Some patterns are not accounting differences. These are worth acting on.
- One side goes to zero or near zero. Not a discrepancy, a failure. Something stopped firing or stopped being recorded. Start with why Google Ads conversion tracking stopped working.
- The ratio moves sharply without an explanation. A stable relationship that shifts in a week usually follows a deploy, a tag manager change, a consent banner update or a conversion action being edited. Look at what changed on that date rather than at the numbers.
- Google Ads is dramatically higher than GA4 and you are not running enhanced conversions. Without a recovery mechanism there is no good reason for Google Ads to substantially exceed site activity. Suspect double counting: a conversion action firing twice, or the same purchase recorded through two routes. See fixing duplicate events.
- Neither matches your actual orders. The decisive check, and the one people reach for last. If both Google systems disagree with your payment processor in the same direction, the problem is upstream of both and arguing about which Google product to trust is a distraction.
The 15-minute reconciliation worth doing once a month
Rather than investigating whenever a number looks odd, do this on a schedule and you will spot problems on the day they start.
- Pick a complete month, ending at least a week ago so attribution has settled.
- Pull Google Ads conversions for your purchase action for that month.
- Pull GA4 purchase key events for the same month, filtered to Google paid traffic only.
- Pull actual orders from your backend for the same month, and if you can segment by source, do.
- Write all three numbers down with the date, in the same place you did it last month.
What you are building is not a reconciliation, it is a baseline. After three months you will know your normal ranges, and the value of that is that next time someone asks why the numbers do not match you can answer in thirty seconds instead of spending a morning on it. More importantly, when the relationship genuinely breaks you will notice immediately rather than at quarter end.
Nearly every measurement problem worth catching shows up first as a ratio that moved. Almost nobody is watching the ratio, which is why these things are usually found weeks late, and why the cost of them is so much higher than it needs to be. That argument in full is in the hidden cost of broken tracking.
Stop finding out about broken tracking from your client.
Taglert monitors your pixels and conversion tracking 24/7 and alerts you the moment something breaks. 7-day free trial, no credit card.
Start your free trial