The short answer

Do not begin by asking, “Why do the totals differ?” Begin by asking, “Am I comparing the same business action, for the same traffic, on the same date basis, with the same counting rules?”

Google Ads is built to measure and optimize advertising outcomes. GA4 is built to measure behavior across channels. Even when a GA4 key event is used to create a Google Ads conversion, the two reporting views can diverge because of date attribution, counting, conversion windows, time zones, reporting delays, invalid-click filtering, and modeling.

The practical goal is not to force every number to match. It is to explain the difference well enough that you know which number should guide bidding, which should guide on-site analysis, and whether anything is actually broken.

Why Google Ads and GA4 conversions differ

Google now uses key event for an important action measured in Analytics, while conversion refers to an action used to measure and optimize advertising. Google Ads conversions created from GA4 events appear in the Advertising area of GA4, not in GA4’s standard behavioral reports.

That distinction matters. A GA4 report of all generate_lead key events can include credit from paid search, organic search, direct, referral, and other channels. A Google Ads conversion report answers a narrower advertising question.

Before diagnosing tracking, align these seven comparison dimensions.

Comparison dimension

Google Ads side

GA4 side

What to align

Business action

A specific conversion action

The equivalent event or key event

Confirm both represent the same completed outcome, not adjacent funnel steps

Traffic scope

Google Ads-attributed conversions

All channels or a Google Ads-attributed slice

Do not compare paid-only conversions with property-wide key events

Reporting column

Conversions or All conversions

Key events or an Ads conversion view

Include the same primary and secondary actions

Date basis

Ad interaction date by default; conversion-time columns are also available

Event or conversion occurrence date in many reports

Use conversion time when comparing daily totals

Counting

One or Every for the action

Every recorded event unless your design deduplicates it

Check repeated leads, purchases, reloads, and transaction IDs

Attribution and window

Action-level attribution and conversion windows

Analytics attribution settings and key-event lookback

Compare eligible channels and lookback periods

Processing and modeling

Ads reporting, invalid-click filtering, modeled conversions

Analytics processing, thresholding, and modeling

Exclude immature dates and document residual differences

A reliable reconciliation workflow

Use a complete date range that is old enough to be stable. For an initial diagnosis, 28 complete days ending yesterday is usually more useful than “this month,” because today is partial and recent conversions can still arrive or receive updated attribution credit.

1. Define one business outcome

Choose one outcome at a time: purchase, qualified lead, booked demo, signup, or another event that matters to the business.

Record the exact Google Ads conversion-action name and the exact GA4 event name. Similar names do not prove equivalence. “Lead,” “form_submit,” and “qualified_lead” may represent three different points in the funnel.

Also record how each signal is produced:

  • a native Google Ads website conversion

  • a Google Ads conversion created from a GA4 key event

  • an offline conversion upload

  • a GA4 event measured separately from the Google Ads tag

If the two platforms are not using the same underlying signal, an exact match is unlikely. That does not make either dataset useless, but it changes the question from reconciliation to measurement design.

2. Confirm the account, property, and link

Verify that you are comparing the intended Google Ads customer and GA4 property. Then confirm the property is linked to the Ads account and that auto-tagging is enabled.

Google says newly linked Ads data can take up to 48 hours to appear in Analytics. Imported GA4 conversion data can take up to 24 hours to appear in Google Ads, and historical data before the import is not added retroactively. A missing recent row can therefore be a synchronization issue rather than a tracking failure.

For manager accounts, confirm who owns conversion tracking. A client account can inherit cross-account conversion tracking, so the action visible in the client may be owned elsewhere.

3. Inventory the conversion configuration

On the Google Ads side, capture:

  • action name, ID, source, owner, status, and category

  • primary or secondary status

  • counting method

  • attribution model

  • click-through and view-through windows

  • default-value behavior

  • recent conversion count and value

On the GA4 side, capture:

  • the key-event name and whether it is currently marked as a key event

  • data streams that can send the event

  • linked Google Ads accounts

  • relevant custom definitions

  • property time zone

Do not treat a zero in a short period as proof of a broken action. First check whether the action is new, secondary, seasonal, low volume, or simply absent from the chosen reporting column.

4. Pull three comparable cuts

For the same complete date range, retrieve:

  1. Google Ads conversion-action performance. Keep the action ID and source visible. Use All conversions when the equivalent action is secondary. When comparing daily timing, prefer the conversion-time version of the metric.

  2. GA4 total event or key-event volume. Filter to the exact event name. This shows what the property recorded across channels.

  3. GA4 Google Ads-attributed volume. Break the same key event down by Google Ads campaign ID or campaign name when compatible. This removes much of the paid-versus-all-channel mismatch.

Keep raw totals and daily rows. A monthly total can hide a date-shift pattern: Ads may assign a conversion to the earlier click date while GA4 shows it on the later completion date.

5. Calculate the gap without hiding the denominator

Show both the absolute and percentage difference:

Absolute gap = Google Ads conversions − GA4 comparison count

Percentage gap = Absolute gap ÷ GA4 comparison count

If the GA4 count is zero, do not calculate a percentage. Label it undefined and investigate the missing denominator.

Compare the total period and each day. Then split the result by conversion action, campaign, device, or landing page only when that cut helps isolate the cause. More segmentation is not automatically more insight.

6. Classify the explanation

Use the pattern in the data to choose the next check.

Pattern

Likely explanation

Next check

Totals are close, but conversions appear on different days

Click-date versus conversion-date reporting

Compare Google Ads using All conversions by conversion time

GA4 is higher across the period

GA4 includes other channels, repeated events, or activity outside the Ads window

Filter to Google Ads-attributed traffic; inspect event duplication and windows

Google Ads is higher across the period

All conversions includes more sources, Ads modeling contributes, or the GA4 signal is incomplete

Match the exact action, isolate observed versus modeled context, and validate GA4 collection

The gap begins on one date

Configuration, tagging, consent, link, or naming change

Review change history and test the journey before and after that date

Only one campaign or landing page diverges

Missing parameters, redirect behavior, cross-domain issue, or campaign-specific goal scope

Check GCLID persistence, landing-page tagging, and campaign goals

The difference is limited to the newest days

Processing delay or conversion lag

Re-run after the data matures before changing anything

Two actions rise together for one outcome

Duplicate measurement or overlapping definitions

Trace both actions to their source and decide which outcome should guide bidding

A percentage alone cannot tell you whether a discrepancy is acceptable. A stable, explainable difference can be operationally safe. A small but sudden difference concentrated on a high-value action can be urgent.

7. Validate tracking only when the evidence points there

If the report comparison cannot explain the gap, move from configuration evidence to runtime evidence.

Use Tag Assistant or your browser tools to test the real conversion journey. Confirm the event fires once, carries the expected parameters and value, preserves the Google click identifier through redirects, respects consent behavior, and reaches the intended destination.

Then compare the platform evidence again after the relevant processing window. Reading configuration can tell you what should happen. It cannot prove what happened in a user’s browser.

For the broader implementation workflow, use How to Audit Conversion Tracking Across Your Marketing Stack with AI.

The exact prompt

Copyable prompt

Connect to my Google Ads and GA4 data. First list the Google Ads accounts and GA4 properties I can access, and wait for me to select the intended account and property.

Then reconcile one business outcome for the last 28 complete days, ending yesterday. Do not make changes.





Ask me for the exact Google Ads conversion-action name or ID and the exact GA4 event name if I have not supplied them.



Inspect the GA4 property configuration. Confirm the key event, Google Ads link, data streams, and property time zone. Report failed or inconclusive sections separately.



Review Google Ads conversion tracking. Show the action’s source, owner, status, primary or secondary state, counting rule, attribution model, lookback windows, and available recent performance. Flag possible duplicates.



Pull Google Ads performance for the exact action. Use All conversions if the action is secondary. For daily comparison, use a conversion-time metric where available; if that is unavailable, state the date-basis limitation rather than hiding it.



In GA4, check compatible fields and pull two reports for the exact event: total key-event volume and the Google Ads-attributed slice. Keep the property, dates, filters, matching rows, collected rows, and truncation status visible.



Produce a table with Google Ads count, GA4 total, GA4 Google Ads-attributed count, absolute gap, percentage gap, and date basis.



Classify each likely cause as confirmed, plausible, ruled out, or still unverified. Separate legitimate reporting differences from possible tracking defects.



End with a prioritized review queue. If a setting change may be needed, show the current value, proposed value, reporting or bidding impact, and the human validation required. Do not apply it.

How HireOtto helps with this workflow

HireOtto can keep the reconciliation inside the AI client where you already work.

On the GA4 side, it can discover properties, inspect data streams, key events, Google Ads links, and custom definitions, search the property’s reporting metadata, check Core-report field compatibility, run filtered reports, and export the resulting rows. The GA4 connection is read-only.

On the Google Ads side, it can review auto-tagging and conversion-tracking setup, identify GA4 events that Ads exposes as imported or available to import, list conversion actions with recent performance, and retrieve campaign-level conversion metrics. Agency accounts can use custom GAQL when an exact conversion-time metric or report cut is needed.

HireOtto can then compare the evidence and produce a review queue. It cannot prove browser firing from configuration reads. It also should not change primary status, counting, attribution, value behavior, or lookback windows merely to make two reports look alike. Those settings can affect reporting and automated bidding. Any supported Google Ads change should be shown as an exact proposal, approved by a practitioner, applied deliberately, and read back afterward.

What a useful reconciliation should produce

The output should not be a verdict such as “tracking is wrong.” It should be an evidence packet:

  • the precise account, property, action, event, date range, and time zones compared

  • aligned totals plus daily rows

  • the reporting column and date basis used on each side

  • confirmed configuration differences

  • plausible runtime issues that still need browser validation

  • a prioritized next action with an owner and review gate

This makes the result reusable. A PPC operator can decide whether bidding inputs need attention. An analytics owner can inspect event design. A developer can test the specific journey instead of receiving a vague “numbers do not match” ticket.

Frequently asked questions

Should Google Ads and GA4 conversions match exactly?

Not always. The totals can differ even when the implementation is healthy because the platforms can use different traffic scope, date attribution, counting, windows, time zones, filtering, and modeling. They should be close enough to explain for the same action and comparable reporting settings.

Why does GA4 show more key events than Google Ads shows conversions?

The GA4 total may include every channel, while Google Ads counts only outcomes attributable to eligible ad interactions. GA4 can also record repeated events that Google Ads counts once, or events that occur outside the Ads conversion window.

Why does Google Ads show more conversions than GA4?

You may be comparing Google Ads All conversions with a narrower GA4 slice, including multiple conversion sources, or seeing modeled conversions in Ads. It can also indicate incomplete GA4 collection. Match the exact action and scope before investigating the tag.

Which platform should be the source of truth?

Use Google Ads for the conversion signal that guides Google Ads bidding and campaign reporting. Use GA4 for on-site behavior and cross-channel analysis. Use your backend or CRM for accepted business outcomes such as paid orders or qualified pipeline. Reconciliation connects those jobs; it does not make the systems interchangeable.

Can AI fix the discrepancy automatically?

AI can gather evidence, compare definitions, calculate gaps, and prepare a prioritized diagnosis. It should not automatically change conversion settings or tags to force agreement. The practitioner still decides which outcome matters, validates the real journey, and approves changes that could affect bidding.

About Me

I’m Suyash – badminton junkie, ex‑GroupM ad‑ops grunt, first marketer at a B2B SaaS startup, and creator of Hiretto: MCP servers for performance marketers.

My mission: less clicking, more thinking.

Let’s build leverage together.

Reply

Avatar

or to participate