Why Don't My Google Ads and Google Analytics Conversions Match?

Google Ads reports more conversions than GA4, your CRM has a third figure, and someone in the room wants to know which one is wrong. Reconciling them line by line eats the hours meant for the campaigns. Chasing a match that cannot happen only produces a new argument next month.
Google Ads and GA4 conversions are not built to match. Google Ads credits its own ads and dates each sale to the click. GA4 credits every channel and dates the sale when it happened. Align the definitions, learn your account's normal gap, then give each number one job: Ads for bidding, GA4 for channel comparison, and your CRM or order system for the figure you report.
Why do Google Ads and GA4 count differently?
When Google Ads and Google Analytics conversions don't match, start with scope. It explains more of the gap than anything else.
Google Ads only knows about Google Ads. Say a buyer clicks a search ad on Monday and comes back through organic search on Thursday to buy. That is a paid conversion in Google Ads, as long as the purchase lands inside the conversion window. GA4 saw the organic visit too, and its Traffic acquisition report gives the sale to organic on last non-direct click.
Google Ads also counts conversions nobody directly observed:
- Modeled conversions fill in journeys broken by consent choices or browser restrictions.
- Cross-device conversions join a phone click to a laptop purchase.
- View-through and engaged-view conversions credit YouTube and Display impressions that never produced a click.
GA4 needs a session on your site before it can record anything. None of these conversions has an equivalent in its event data.
Then there is genuine loss on the GA4 side, because a click is not a session. Three things leave a click in Google Ads and nothing, or the wrong source, in GA4:
- visitors who leave before the tag loads
- redirects that strip the gclid
- ad blockers that allow the click but stop the analytics script
That loss grows as your audience becomes more privacy-conscious, and you cannot fully close it. You can measure it, by tracking clicks against sessions for Google Ads traffic and investigating when the ratio moves.
Even "the GA4 number" is not one number. Session-scoped reports use last non-direct click. User-scoped reports use first touch. Event-scoped key event reports use the property's reporting model, which is data-driven by default. If you compare Google Ads against a different GA4 report each month, the gap moves while your tracking stays still.
Finally, check that both sides are counting the same thing:
- The lists are separate. GA4 key events and Google Ads conversion actions are two different lists.
- The columns differ. The headline Conversions column holds primary actions only, while All conversions adds secondary ones. Either can quietly mix purchases, leads and calls.
- The counting rules differ. A lead form set to count once per click is one conversion in Ads. If someone submits it twice, it is two key events in GA4.
- The triggers can differ. A thank-you page load on one side and a payment event on the other will disagree in ways no attribution setting explains.
Work through it in order. Match the conversion action, the date basis and the time zone. Narrow GA4 to Google Ads traffic. Then check both against your backend. Whatever survives that is mostly attribution and tracking loss, not error. The full working, including how the modeled and view-through columns behave, is in why Google Ads and GA4 report different conversion numbers.
Why do conversions land on days you had none?
Of all the structural differences, dating produces the most alarming symptoms. Google Ads files each conversion under the date of the ad click that earned it. GA4 and your CRM file it on the day it happened.
Take a demo request on 10 March from a click on 3 March. It appears on the 3rd in Ads and on the 10th everywhere else, so one day looks invented and the other looks lost. The conversion window sets how far back that credit can reach. It is the attribution window, and it is measured from the click. Google's documentation says conversions can be reported up to 90 days after the click, depending on the window you choose. Data-driven attribution can also split one sale across several click days, none of which is the day the customer bought.
The corollary catches people out more often: past days are never finished. Tuesday's spend is fully reported on Tuesday, but the conversions Tuesday's clicks earn keep arriving for weeks. Last week's CPA almost always looks worse than last month's, because last month has had time to fill in. Google recommends using report ranges that end at least 30 days ago, or longer if your window is longer, before treating the data as complete.
A day with no clicks that still carries conversions usually has one of four explanations:
- view-through credit on Display or YouTube impressions
- a Conversions (by conv. time) column mixed into a click-dated view
- a time zone mismatch between the Ads account and your store or CRM
- duplicate counting from a refreshed thank-you page
Advice on reconciling dates pulls two ways, and the difference matters. One reading holds that date effects largely wash out over a full month. The other warns that businesses with long consideration cycles see month-end gaps that look alarming and mean nothing.
Both are right, for different accounts. A calendar month only washes out dating when most conversions arrive within a few days of the click. With a 60-day B2B cycle, a month is not long enough to settle. The Days to conversion segment in Google Ads tells you which kind of business you are. If you need calendar months to line up in a report, switch to the conversion-time columns rather than waiting for the data to settle.
The settled-period test is what separates dating from counting. If Google's total for a fully settled month still exceeds your real orders or leads, timing is not the explanation. You are looking at duplicate tags or a trigger that fires too often. The step-by-step diagnosis is in why Google Ads shows conversions on days you had none.
How big a gap is normal, and when is it broken?
People usually want a percentage here, and there isn't one. The figures that circulate for an "acceptable" gap come from individual agency accounts with no stated sample, period or method, and none of them carries over to yours. The size of your gap depends on four things:
- how long buyers take to purchase
- how often they return through other channels
- how many of your visitors block tags or refuse consent
- how your conversion actions are configured
What is mostly fixed is the direction. For paid search, Google Ads conversions higher than Analytics is the expected state. Click-dated credit, own-ads attribution, modeling and GA4's browser losses all push the same way. The reverse needs explaining. If GA4 reports more paid search conversions than Google Ads for the same action, look for duplicate GA4 events or a broken Ads tag before you call it noise.
A healthy conversion tracking discrepancy is boring. It sits in roughly the same band each week and moves with seasonality, not with deployments. These patterns are not normal:
- A step change on a specific date. Look for a tag release, a checkout update or a new consent banner that went live that day.
- A flip in direction. Google Ads normally leads, then suddenly trails.
- Either platform exceeding your backend. More conversions than the orders or leads in your store or CRM means something is counted twice.
- Paid traffic arriving as referral. A plugin's UTM parameters can override the gclid.
- Conversions firing at checkout start. The tag should fire when payment clears.
So the job is not to close the gap but to know its shape. Compare like for like:
- the same conversion action on both sides
- an event-scoped key events report in GA4, filtered to Google Ads traffic
- conversion-time columns in Google Ads
- matching time zones
Record each platform as a ratio against backend orders, not just against each other. If Ads drifts away from GA4 while staying steady against the backend, the fault is on the GA4 side. Track the ratio weekly for a couple of months and write the band down. Some teams prefer three months, recorded monthly against CRM leads. The exact period matters less than having enough clean weeks that one bad week stands out.
Two deliberate changes shift the baseline without anything breaking:
- Switching GA4's reporting attribution model. This recalculates past key event reports the moment you save.
- Widening a conversion window. This raises reported conversions without adding a single customer.
Log the date of either change. Otherwise you will later read the shift as a fault. The full set of failure signatures, and how to build your band, is in how big a gap between Google Ads and Analytics is normal.
Should you import GA4 key events into Ads?
Importing GA4 key events into Google Ads looks like the obvious way to make the numbers agree. It doesn't make them agree, and as a bidding signal it usually makes things worse.
GA4 sends Google Ads a last-click view. Only key events where Google Ads was the last non-direct click become conversions in Ads. That holds even when a non-last-click model is selected on the Ads side, according to Google's Analytics documentation.
Picture a buyer who clicks a search ad, then returns through your newsletter to buy. That sale is a conversion on the native tag and nothing on the import. Bid on the import, and Smart Bidding learns that the keyword which started the journey produced nothing. View-through and engaged-view conversions don't exist on the import path at all. That hurts exactly the video and Display campaigns that rarely win the last click.
The larger risk is double counting. A native purchase action and an imported GA4 purchase are separate conversion actions, and transaction-ID deduplication only works within a single action. If both are primary in a campaign's goal, Smart Bidding optimizes toward their sum. In an illustration with complete overlap, a true 4x ROAS reads as 8x. Target ROAS then bids hard for returns that aren't there.
Setting the import to secondary reduces the risk without removing it. Secondary actions still sit in All conversions, where dashboards often sum them. A custom goal can also pull a secondary action back into bidding.
The sound default looks like this:
- Keep the native tag primary for every goal Smart Bidding optimizes toward.
- Bring key events in as secondary. Use them as a comparison segmented by campaign, and as a backup that keeps recording when a site release breaks the tag.
- Make an import primary only when the Ads tag cannot be installed, such as on a hosted checkout or a locked platform. Confirm first that no native action measures the same event.
A softer view also circulates: that imported events suit setups wanting a single site-wide conversion definition. We take the narrower line. A shared definition is worth having, but you get it more safely by aligning settings than by feeding bidding a signal filtered through last click:
- Match the Ads click-through window to GA4's lookback window.
- Count leads once per user on both sides.
- Choose GA4's channel-credit setting deliberately instead of inheriting it.
Whichever source you choose, keep it consistent over time so the algorithm learns from a stable signal. The configuration checklist is in whether to import GA4 conversions into Google Ads.
Which number should you actually report?
Bidding is one job. The report is another, and it gets a different answer. The figure of record should come from your CRM or order system, because it is the only one of the three that counts people rather than events.
Google Ads counts conversion events it credits to its own ads. That includes modeled and view-through conversions and spam form fills. Depending on the count setting, a form, a call and a chat from one prospect can register as three. GA4 counts the sessions it was allowed to see and misses phone calls and offline enquiries entirely.
A CRM records a named contact, merges duplicates, lets sales mark junk and logs calls next to form fills. It also passes the simplest audit. When someone asks for the names behind the number, it can produce them.
Every ad platform grades its own homework, so Google and Meta will both claim a lead that touched both. Never add platform totals together. Report each platform's figure as that platform's claim, and the CRM figure as the total. Where you can, report qualified leads rather than raw form fills. Once CRM stages are joined to campaigns, the cheapest cost per lead often turns out to belong to the weakest leads.
This is the second place the advice needs reconciling. One line of thinking treats the backend as a referee neither platform can overrule. That only holds if the backend is complete:
- every form, chat and booking tool writes to it
- duplicate rules exist
- sales logs inbound calls
- source data is captured when the lead is created
If any of those fail, the CRM undercounts. In that case, a clean platform figure that is clearly caveated beats a CRM count silently missing enquiries. Fix the plumbing before you change what you report. A CRM lead also needs a click ID (GCLID, GBRAID or WBRAID) stored when it is created. Without one, the lead exists but nothing ties it to the campaign that produced it.
Then the two jobs meet:
- Send CRM stages back. Import qualified leads and won deals into Google Ads as offline conversions, with values per stage.
- Keep a near-click conversion in the bidding mix. CRM outcomes arrive days or weeks after the click, so keep something like the form fill on the native tag.
Bidding then starts optimizing toward the definition you report on. The numbers converge in meaning even when they never match in volume. The full reporting setup is in Google Ads, Analytics or your CRM: which lead count to report.
Conclusion
The gap between Google Ads and GA4 conversions is mostly the two systems doing what they were built to do. Google Ads measures its own contribution, dated to the click and filled in with modeling. GA4 measures what its tag observed, shared across channels and dated to the event.
Align the definitions and learn your account's band, then investigate only when the pattern breaks. Bid on the native Ads tag, with GA4 key events as a secondary check. Report from a CRM you have made complete, with its stages fed back to bidding.
See how Companion answers conversion questions from your Google Ads, Analytics, HubSpot and Shopify data in one place, with a daily brief on what changed.
Frequently Asked Questions
It can, for a mechanical reason. Performance Max serves on YouTube and Display inventory as well as Search, so more of its credit comes from impressions and cross-device journeys that never create a GA4 session. Moving branded search into Performance Max can also remove the clean last-click credit GA4 would otherwise give those quick-converting searches. The gap widens without any tracking fault.
It narrows the part caused by browser blocking, because fewer conversions are lost when the tag cannot fire in the visitor's browser. It leaves the structural causes alone. Google Ads still dates conversions by click and credits only its own ads, and GA4 still attributes across every channel. Expect a narrower, steadier gap rather than matching numbers, and reset your baseline afterwards.
No. Google's Analytics documentation states that the first click, linear, time decay and position-based models stopped being available in November 2023. To compare a Google Ads model against GA4 fairly, Google advises selecting paid and organic channels with last click in GA4's attribution reports. That gives both platforms the closest shared basis, although dating and scope differences will remain.
Get a complimentary audit to uncover AI opportunities hidden in your data.
Put these strategies to work


