Blog / Analytics

Why GA4 and Google Ads Show Different Conversion Numbers (and Which One to Trust)

You open Google Ads and see 71 conversions. You open GA4 and see 40. Same account, same date range, same campaigns. Which number is right, and which one do you use to decide where the budget goes? The gap is not a bug. It is four separate, explainable differences stacked on top of each other, and most businesses never reconcile them. Here is how to line the two reports up and which one to trust for which decision.

Brendan Andrew Chase

Brendan Andrew Chase

June 24, 2026  ·  14 min read  ·  Analytics

The Scenario: Two Numbers, One Account

This is the single most common question we get from new clients, and it usually arrives in a frustrated email. The marketing manager pulls the Google Ads conversion report for last month and sees 71 conversions. They open GA4, look at the same date range, and see 40. They ask the agency which one is real. The agency says something vague about attribution and changes the subject.

The frustration is justified. If you cannot agree on how many conversions a campaign produced, every downstream decision is built on sand. Cost per lead, ROAS, which campaign to scale and which to pause, all of it depends on that one number. And the two platforms you pay for and trust the most cannot agree on it.

Here is the part most agencies will not explain clearly: the gap is not an error in either system. Both numbers are correct, but they are answering different questions. Google Ads and GA4 count conversions using different attribution models, different counting rules, different session definitions, and different time windows. Stack four differences on top of each other and a 71 vs. 40 gap is entirely normal. The job is not to find the "wrong" number. The job is to understand what each one is actually measuring so you can use the right one for the right decision.

The honest starting point

We have been managing Google Ads accounts for over 12 years across more than $50M in ad spend, and we have never seen a single account where GA4 and Google Ads reported the same conversion count out of the box. The gap is structural. Reconciling it is part of the job, not an exception to it.

Recognise this scenario? If your team is arguing about which conversion number is real every month, we can build the reporting layer that settles it. See our analytics and reporting services or get a free reporting audit.

View Analytics Services

Reason 1: Attribution Models That Count Differently

This is the biggest single cause of the gap, and it is the one most people get wrong because the word "attribution" gets thrown around without explanation.

Google Ads credits the conversion to the last Google Ads click that happened before the conversion. If a user clicked your ad on Monday, then came back via organic search on Wednesday and converted, Google Ads still counts that conversion and attributes it to the Monday ad click. From Google Ads' perspective, the ad started the journey that led to the conversion, so it gets the credit.

GA4 uses a different default. GA4's default attribution model is data-driven, which means it distributes credit across multiple touchpoints based on the patterns it sees in your data. More importantly, GA4 counts conversions based on the last non-direct click in the user's journey across all channels, not just Google Ads. So if that same user clicked your ad on Monday, came back via organic on Wednesday, and converted, GA4 attributes the conversion to organic search, not to the paid click.

Same user. Same conversion. Google Ads says "paid search did it." GA4 says "organic search did it." Both are defensible. They are just answering different questions.

The practical consequence

If you run paid ads and organic search together, Google Ads will almost always report more conversions than GA4 attributes to paid search, because Google Ads only looks at its own clicks while GA4 looks at the full multi-channel picture. A campaign that looks like it drove 71 conversions in Google Ads might show only 25 in GA4's paid-search row, with the other 46 spread across organic, direct, and referral in GA4's channel report.

Neither is lying. They are slicing the same pie along different lines.

How to check which model each platform is using

In Google Ads, go to Tools → Measurement → Attribution settings. The default is data-driven, but for conversion actions you can see the model applied per action. In GA4, go to Admin → Data display → Reporting identity (this affects user stitching) and check the attribution model under Reports → Advertising → Model comparison. If you want to see how GA4 would attribute things on a last-click basis, the Model comparison tool lets you switch between data-driven, last click, and first click side by side.

Attribution confusion is the most common reason teams lose trust in their own numbers. If you want a reporting layer that applies one consistent attribution model across every channel, that is what we build.

Get a Free Reporting Audit

Reason 2: Conversion Counting (Every vs. Once per Session)

The second difference is simpler but catches people off guard because it can swing the number dramatically.

Google Ads lets you choose how a conversion action is counted. The two options are "Every" (count every conversion event) and "One" (count one conversion per click or interaction). For a purchase action, most accounts use "Every" because each purchase is a separate transaction. For a lead form, you might use "One" because a user submitting the form three times in a session is still one lead.

GA4 counts conversions differently. By default, GA4 counts one conversion per session per event. If a user triggers your purchase event three times in a single session, GA4 records one conversion. If they trigger it across three separate sessions, GA4 records three.

So if your Google Ads conversion action is set to "Every" and a user makes three purchases in one session (common in e-commerce, where someone buys, comes back, buys again), Google Ads counts three conversions. GA4 counts one. That is a 3:1 ratio from a single user, before any other difference is applied.

Scenario Google Ads ("Every") GA4 (default)
User converts once in one session11
User converts 3 times in one session31
User converts once per session across 3 sessions33
User converts, then converts again 2 days later22

The fix is awareness. Check your Google Ads conversion action settings (Tools → Measurement → Conversions → click the action → "Count"). If it is set to "Every" and you are comparing to GA4's session-level counting, expect Google Ads to run higher, especially for e-commerce.

Reason 3: The GA4 Engaged Session Filter

GA4 introduced a concept that did not exist in Universal Analytics: the engaged session. A session counts as "engaged" if it lasted longer than 10 seconds, had at least one conversion event, or had at least two pageviews. Sessions that do not meet any of those criteria are filtered out of many GA4 reports by default.

This matters for conversion counting because GA4's reporting interface often shows conversions only within engaged sessions, depending on which report you are looking at. If a user clicked your ad, landed, bounced in under 10 seconds, but somehow triggered a conversion event on the way out (a rare but possible edge case with auto-event tracking), GA4 might not count it because the session was not engaged.

Google Ads does not have this filter. If the conversion event fires and is linked to a Google Ads click, it counts, regardless of how long the user spent on the page.

The engaged session filter is not the biggest contributor to the gap, but it explains a portion of it, particularly on accounts with high bounce rates or aggressive auto-event tracking that fires on page load rather than on a meaningful user action.

The signal this sends

If you see a large gap and your account has high bounce rates, the engaged session filter is worth checking. It is also a quiet indicator that your conversion events might be firing on low-intent actions. A "conversion" that happens during a 5-second bounce is probably not a real conversion, and GA4 filtering it out is arguably the more honest number.

Three reasons down, one to go. If you are already thinking this sounds like something you would rather have someone else handle, our analytics services cover exactly this.

View Analytics Services

Reason 4: Click Window vs. Session Timeout

The fourth difference is about when each platform stops looking for a conversion.

Google Ads uses a conversion window that you set per conversion action. The default for most actions is 30 days for web conversions, meaning if a user clicks your ad and converts within 30 days, Google Ads counts it. Some accounts extend this to 60 or 90 days. The click is the anchor; the window is how long Google Ads keeps the door open.

GA4 is anchored to sessions, not clicks. A GA4 session expires after 30 minutes of inactivity by default. If a user clicks your ad, browses, leaves, and comes back two days later via a bookmark, GA4 starts a new session. The conversion is attributed to the channel of that new session (likely "direct" if they typed the URL or used a bookmark), not to the original ad click.

So a user who clicked your ad on day 1, returned on day 14, and converted will be counted by Google Ads (within the 30-day window, attributed to the ad click) but attributed to "direct" in GA4 (new session, no campaign parameters carried over). This is why GA4's "direct" channel is often inflated and why paid search looks smaller in GA4 than it does in Google Ads.

The timeline, side by side

1

Day 1: User clicks Google ad. Google Ads records the click with a GCLID. GA4 records a session sourced from "google / cpc".

2

Day 1 + 30 min: GA4 session expires (no further activity). The session is closed.

3

Day 14: User returns via a bookmarked URL. GA4 starts a new session, sourced as "direct". No GCLID is present.

4

Day 14: User converts. Google Ads counts it (within 30-day window, linked to the day-1 GCLID). GA4 attributes it to "direct", not paid search.

This is the single most common reason a conversion shows up in Google Ads but not in GA4's paid-search row. The user did convert from an ad click. GA4 just lost the thread when the session broke and restarted.

Four reasons, one recurring headache. If you would rather have someone build the reconciliation into a live dashboard than explain it to your team every month, we do exactly that.

Get a Free Reporting Audit

How to Reconcile Them Apples-to-Apples

You will never get the two numbers to match exactly. That is not the goal. The goal is to shrink the gap to something explainable so you are not staring at a 71 vs. 40 mystery every month. Here is the reconciliation process we run through with every new account.

Step 1: Match the date range exactly

This sounds obvious, but it is the most common mistake. Google Ads defaults to including today's partial data. GA4, depending on processing latency, may exclude the last 24 to 48 hours. Pull both reports for a closed, complete date range (for example, the 1st to the last day of last month) and exclude the current day from both.

Step 2: Match the conversion action

Do not compare "all conversions" in Google Ads to "all conversions" in GA4. They include different things. Pick one specific conversion action (for example, "Purchase" or "Lead form submitted") and compare that single action in both platforms. If you have auto-tagging enabled and your GA4 events are imported into Google Ads as conversion actions, make sure you are comparing the same event, not a Google Ads-native conversion next to a GA4-imported one.

Step 3: Match the counting method

If your Google Ads conversion action is set to "Every", switch the GA4 report to count every event, not one per session. In GA4, this means looking at the event count rather than the conversion count for that event. The terminology is confusing: GA4 calls a marked event a "conversion", but the underlying event can fire multiple times per session. The "Conversions" metric in GA4 is session-deduplicated. The "Event count" metric is not. Match the metric to the Google Ads counting setting.

Step 4: Match the attribution model

Use GA4's Model comparison tool to view the data on a "Google Ads last click" basis. This will not perfectly replicate Google Ads' internal attribution, but it gets you closer than the default data-driven model. The goal is to see how many conversions GA4 would attribute to paid search if it used a last-Google-Ads-click model.

Step 5: Accept the residual and explain it

After steps 1 through 4, the gap should shrink significantly. What remains is usually a combination of the session timeout issue (reason 4) and minor processing differences. Document the residual so next month you are not starting from scratch. If the gap suddenly widens, that is the signal something changed: a tag stopped firing, a conversion action was edited, or auto-tagging broke.

The reconciliation is recurring, not one-off

This is the part that catches businesses out. Reconciliation is not a project you finish. It is a monthly discipline, because the gap drifts as your traffic mix changes, as new campaigns launch, and as tags occasionally break. Most teams do it once, get frustrated, and give up. That is exactly why a reporting layer that handles it automatically is worth building.

If running through those five steps every month sounds like a job you would rather hand off, that is what we do. We build the reconciliation logic into a live dashboard so it runs itself. See our analytics services or get a free reporting audit.

View Analytics Services

Which Number to Trust for Which Decision

Once you understand the four differences, the question stops being "which number is right" and becomes "which number is right for this decision." Here is the framework we use.

Decision Trust Why
Bidding optimisation (Target CPA, Target ROAS, Maximize Conversions) Google Ads Smart bidding algorithms optimise against the Google Ads conversion count. Feeding them a different number from GA4 is irrelevant; they only see their own.
"Did this campaign drive the action?" Google Ads Google Ads tracks the click-to-conversion link directly via the GCLID. If you want to know whether a specific ad produced conversions, this is the source.
"What happened after the click?" (landing page behaviour, funnel, engagement) GA4 GA4 tracks the full on-site journey: which pages they visited, how long they stayed, where they dropped off. Google Ads only sees the click and the conversion, nothing in between.
"Which channel produced this conversion?" (multi-channel attribution) GA4 GA4 sees all channels, not just Google Ads. If you want to know whether paid or organic deserves credit, GA4's channel report is the only place that has both.
"What is our real cost per lead / ROAS?" Neither, alone This requires blending Google Ads spend and conversion data with GA4's channel and engagement data, ideally with CRM revenue attached. A single platform cannot answer this on its own.

The last row is the one that matters most for budget decisions, and it is the one neither platform can answer on its own. That is the gap a proper reporting layer fills.

That last row is the one we build for. If your real cost per lead and ROAS live across two platforms neither can combine on its own, we build the dashboard that does. See our cross-channel reporting services.

Get a Free Reporting Audit

Why You Still Need a Single Source of Truth

Even after reconciliation, you are left with a practical problem. Every month, someone has to pull two reports, line them up, explain the gap, and present a number the business can act on. That is hours of manual work that produces a report that is already stale by the time it is finished. And the next month, you do it again.

This is the problem cross-channel reporting exists to solve. Instead of reconciling two platforms by hand every month, you build a single reporting layer that pulls from both, applies a consistent attribution and counting method, and presents one number that everyone agrees on. The reconciliation happens once, in the dashboard's logic, not repeatedly in a spreadsheet.

We build these systems for a living. A Looker Studio dashboard that connects Google Ads, GA4, and your CRM into one live view means the "which number is right" argument stops happening in your Monday meetings. The dashboard shows the number, the methodology is documented, and the team moves on to the actual decision: where to spend next month's budget.

If you are tired of the monthly reconciliation ritual and the "Google Ads says 71, GA4 says 40" conversation, that is the problem we solve on our advanced analytics and reporting page. We build the single source of truth so you stop arguing about the number and start acting on it.

Stop Reconciling Conversions by Hand

We build cross-channel reporting systems that pull Google Ads, GA4, and your CRM into one live dashboard with a single, agreed-upon conversion number. No more monthly spreadsheet reconciliation. No more "which number is right" arguments. One source of truth your whole team can act on.

12+ years managing Google Ads. $50M+ in managed ad spend. We have reconciled this gap for accounts at every budget level.

Frequently Asked Questions

Will the two numbers ever match exactly?

No, and expecting them to is the source of most of the frustration. The two platforms use different attribution models, different counting rules, different session definitions, and different time windows. Even after careful reconciliation, a residual gap of 5 to 15 percent is normal and explainable. The goal is to shrink the gap to something you can document and predict, not to eliminate it entirely. If the gap is stable month over month, you have done the reconciliation correctly. If it suddenly jumps, that is the signal something broke: a tag stopped firing, a conversion action was edited, or auto-tagging dropped off.

Should I use GA4 conversions or Google Ads conversions for smart bidding?

Always use Google Ads conversions for smart bidding. The bidding algorithms (Target CPA, Target ROAS, Maximize Conversions, Maximize Conversion Value) optimise against the conversion data inside Google Ads. They cannot see GA4. If you feed the algorithm a Google Ads conversion action, it optimises toward that. If you import a GA4 conversion into Google Ads and use that for bidding, the algorithm optimises toward the GA4-defined conversion, but the count will still differ from what you see in the GA4 interface because Google Ads applies its own attribution and counting on top of the imported event. For most accounts, the cleanest setup is a Google Ads-native conversion action (tracked via the Google Ads tag or GTM) for bidding, with GA4 used separately for on-site behaviour and multi-channel analysis.

Why does GA4 show so many conversions as "direct"?

Because GA4 attributes conversions to the channel of the session in which the conversion happened, not the channel of the original click. If a user clicked your ad, left, and returned later via a bookmark or by typing your URL, GA4 starts a new session with no campaign parameters and attributes it to "direct". Google Ads, using the GCLID and its conversion window, still attributes the conversion to the original ad click. This is why "direct" traffic in GA4 is often inflated and why paid search looks smaller in GA4 than in Google Ads. It is also why cross-channel reporting that blends both data sources gives a more complete picture than either platform alone.

How do I know if the gap is normal or if something is broken?

Reconcile once, document the residual gap as a percentage, and track it monthly. If the gap is stable (say, Google Ads consistently reports 30 to 40 percent more than GA4 attributes to paid search), that is your normal and it is explainable by the four reasons in this article. If the gap suddenly widens from 35 percent to 70 percent with no change in strategy, something broke. The most common culprits are: auto-tagging stopped working (check that the GCLID is still being appended to ad URLs), the GA4 conversion event stopped firing (check GA4 DebugView), or someone edited the conversion action settings in Google Ads (changed the counting method or window). A sudden change in the gap is one of the most useful early-warning signals in a paid media account, which is why we monitor it as part of ongoing reporting.

Can a Looker Studio dashboard actually solve this?

A Looker Studio dashboard does not make the two platforms agree, but it does solve the practical problem: instead of reconciling by hand every month, the dashboard pulls from both data sources, applies a consistent methodology, and presents one number with the gap documented and explained. The reconciliation logic lives in the dashboard's calculated fields and data blending, so it runs automatically. What you get is a single view where the Google Ads conversion count, the GA4 conversion count, and the reconciled number all sit side by side with the variance explained. That turns a monthly argument into a glance at a dashboard. The building of that dashboard is exactly what we do on our advanced analytics page.

Still have questions about your specific setup? We answer them in a free reporting audit, no commitment required. Get in touch and we will look at your actual numbers.

Get a Free Reporting Audit

If you are spending real money on Google Ads and your team cannot agree on how many conversions a campaign produced, you are making budget decisions on unstable ground. We build the cross-channel reporting layer that turns two conflicting numbers into one source of truth. See our analytics and reporting services, or get in touch for a free reporting audit.

GA4 Google Ads Conversion Tracking Attribution Looker Studio Cross-Channel Reporting Data Reconciliation Marketing Analytics