Get your GA4 vs Google Ads tracking to 95%+ accuracy guaranteed in writing.
Someone on your team pulled both reports and the numbers don't agree, so now nobody trusts either one. Part of that gap is real technical loss you can fix. Part of it is two products defining and dating a conversion differently, and no amount of tagging will ever make those two numbers identical. My job is to tell you which part is which.
Free30 minutesNo obligation
GA4 vs Google Ads · what breaks
Sound familiar?
- 01
Ads dates the conversion to the click, GA4 to the sale
Google Ads back-dates a conversion to the day the ad was clicked. GA4 records it the day it happened. Compare the two day by day and the rows can't line up, even when both tools are working perfectly.
- 02
You're importing GA4 conversions and running the Ads tag
Two counting paths feeding one action. Either both land in the Conversions column and inflate it, or one is set to Secondary and half your volume disappears from the exact report someone is using to judge the channel.
- 03
Modeled and cross-device conversions exist in Ads only
Consent Mode modeling and signed-in cross-device matching are estimates Google produces inside Ads. GA4 explorations won't show them. That portion of the gap is structural, not a tagging bug.
- 04
Time zones and counting rules quietly shift every total
A GA4 property set to one time zone and an Ads account set to another will disagree on every daily figure. Add "Count: every" versus "one" on the Ads action and one identical event produces two legitimate answers.
GA4 vs Google Ads · the fix
What changes when the two reports get reconciled — GA4 vs Google Ads
You know which number to run the account on
One system is named the decision-making source and the others are read as supporting context. Meetings stop being about whose export is right.
The unexplainable gap gets an explanation
Every variance bucket is named: click-date shift, modeled conversions, cross-device, counting rule, or genuine signal loss. Named variance stops being an argument.
The fixable share of the gap actually shrinks
The part caused by blocked browser tags, lost gclid or a missing purchase event is a real problem with a real fix — and that's the only part I touch.
One weekly reconciliation replaces a monthly argument
A repeatable comparison you can run yourself, so a new variance shows up as a signal that something broke instead of background noise.
GA4 vs Google Ads · normal or broken
A gap is normal. A gap that moves is a bug.
GA4 and Google Ads will never report the same number, and that's by design — they define, date and model a conversion differently. What matters is whether your gap is stable and explainable, or whether it swings.
Normal, not a fault
A steady gap that sits in the same range every week
Different attribution models, different lookback windows, and GA4 counting events in sessions while Ads counts conversions against clicks. A gap that holds its shape week after week is definitional. No tagging work removes it.
Ads dates to the click, GA4 dates to the event
A purchase on Thursday from Monday's click sits in Monday in Google Ads and in Thursday in GA4. Compare the same calendar week in both tools and they cannot agree, even with perfect tracking on both sides.
Google Ads reports conversions GA4 has never seen
Modeled conversions and cross-device matching exist in Ads and not in GA4 explorations. When consent is denied or a signed-in user converts on another device, Ads estimates. GA4 was never built to show you that.
GA4 gives Google Ads less credit than Google Ads does
GA4's channel reporting shares credit across the path — email, organic, paid — while the Ads conversion action claims the click it paid for. Two accounting systems, both internally consistent, permanently different.
Actually broken
The gap swings week to week: 8% then 40% then 12%
Attribution differences are boring and stable. A gap that moves is something dropping intermittently — a consent banner behaving differently by region, a deploy, or a queued server event landing late.
GA4 is short of the purchases your store actually recorded
This is the check almost nobody runs. Compare GA4 purchases to Shopify or Stripe for a closed week. If GA4 itself is under the backend, that's technical loss, and every imported conversion inherits it.
Purchases in GA4 with a missing or repeated transaction_id
Blank IDs and repeats from confirmation-page refreshes mean GA4's own number is unreliable before you compare it to anything. Fix GA4's internal hygiene before arguing about which tool to trust.
Ads conversions jumped on a date with no spend change
Almost always someone enabled a GA4 conversion import for an action the native tag already handles. Two counting paths into one column, and the day it started is visible in the chart.
GA4 vs Google Ads · diagnose
Split the gap yourself before you pay to have it split — GA4 vs Google Ads
This sequence separates the part of the gap that's real data loss from the part that's just two products disagreeing on purpose.
- 01
Match the two time zones before anything else
GA4 property time zone under Admin, Google Ads account time zone under Account settings. If they differ, every daily comparison you've made so far is shifted, and part of your gap is arithmetic.
- 02
List what feeds each conversion action
In Goals, then Conversions, then Summary, look at the source column for each action. Anything showing both a website tag and a Google Analytics 4 import for the same event is being counted through two paths.
- 03
Re-pull both reports on the same date basis
Google Ads offers conversion columns by conversion time as well as by click time. Use the by-conversion-time version against GA4's event dates. In most accounts this alone shrinks the apparent gap substantially.
- 04
Check GA4 against your store, not against Ads
Take a closed week: GA4 purchase count versus paid orders in your backend. Establish whether GA4 is accurate on its own before you spend a day debating which of two estimates is right.
- 05
Read the counting rule and click window
On each conversion action, check whether it counts every conversion or one per click, and what the click-through window is set to. A lead action counting "every" against a 90-day window explains a lot of gaps.
- 06
Look at session source on converting sessions
In GA4, break purchases down by session source and medium. A large direct or (not set) share among buyers means session identity is dying at checkout — a cross-domain problem wearing an attribution costume.
GA4 vs Google Ads · prove
Three numbers, one window, and a written explanation — GA4 vs Google Ads
I don't try to make GA4 and Google Ads match, because they can't. I make GA4 match your backend, and then document exactly what causes the delta that remains.
Source of truth
Your backend orders or CRM closed-won — GA4 and Google Ads are both estimates
- Choose a 14-day window that closed more than 30 days ago so every conversion window on it has expired.
- Pull three totals for that window: backend orders, GA4 purchases, and Ads conversions by conversion date.
- Reconcile GA4 to the backend first. A shortfall at this step is technical loss and gets fixed, not explained.
- Assign the remaining Ads-versus-GA4 delta to named causes: modeling, cross-device, window length, date basis.
- Re-run the same three-way pull after the fixes and confirm the residual gap is stable rather than swinging.
- Sign-off is 95%+ of backend orders present in GA4, verified against your export, with the delta documented.
GA4 vs Google Ads · free audit
What we check in the free audit
- Match the two time zones before anything else
- List what feeds each conversion action
- Re-pull both reports on the same date basis
- Check GA4 against your store, not against Ads
- Read the counting rule and click window
- Look at session source on converting sessions
Checked against
Your backend orders or CRM closed-won — GA4 and Google Ads are both estimates
Free30 minutesNo obligation
GA4 vs Google Ads · when not to buy
When the gap isn't worth paying to close — GA4 vs Google Ads
Most mismatch panic resolves for free, and I'd rather you find that out on this page than on an invoice.
- The gap is under roughly ten percent and steady, and your team already makes decisions from one system consistently.
- You've been comparing Ads by click date to GA4 by event date. Re-pull both on the same basis first — the gap often halves.
- Your spend is small enough that no version of this number changes a bid, a budget, or which campaign lives.
- GA4 already ties to your backend within a few percent. What's left is definitional, and nobody can bill their way out of it.
GA4 vs Google Ads · what we deliver
What a GA4 to Google Ads reconciliation includes
A three-way variance table: GA4, Google Ads, your backend
The same date range in all three systems, with each difference assigned to a named cause rather than left as an unexplained delta.
Every attribution setting in both tools documented
Attribution model, conversion window, engaged-view settings, counting rule, time zone and reporting identity — written down in one place, for both products.
A single counting path per conversion action
Either the native Ads tag owns it or the GA4 import does. Never both. Duplicated import paths get switched off and the reason is documented.
Server-side purchase and lead events keyed to order IDs
The money event fired from your backend using the order or record ID, so both GA4 and Google Ads are counting the same underlying object.
Enhanced Conversions so Ads can match more of the clicks
Hashed identifiers sent from the server container, which raises the share of conversions Google can tie to a real click instead of estimating.
A written explanation of the gap that will remain
Because one will. You'll get a plain-English note you can forward to your CFO explaining why an eight-to-fifteen point definitional difference is normal and not a failure.
Written guarantee
95%+ tracking accuracy
Measured against Your backend orders or CRM closed-won — GA4 and Google Ads are both estimates. Miss it and we keep working at no cost.
FAQ
GA4 vs Google Ads questions, answered
A good chunk of it, honestly. Check that both properties use the same time zone, confirm you're not running the native Ads tag and a GA4 conversion import for the same action, and look at whether the Ads action counts "every" or "one" conversion. Then compare Ads by click date against GA4 by event date rather than lining up calendar days. Those four checks explain a large share of mismatches and cost you nothing. What you can't do from the UI is measure how much of the remainder is genuine signal loss — that requires comparing both tools to your backend.
If the gap is under roughly ten percent and you're already making decisions from one system consistently, you don't have a problem worth paying to solve. Two analytics products will never agree exactly, and chasing the last few points is a waste. Call me when the gap is large enough that it changes a budget decision, or when it's moving month to month — a moving gap usually means something is genuinely broken.
Neither, as the final word. Your backend is the source of truth — the orders in your database or the closed deals in your CRM. GA4 tells you about behavior, Google Ads tells you what to bid on. That's the whole idea behind the Source-of-Truth Reconciliation Method: define the real business conversion first, then judge every reporting tool by how close it gets to it.
Pick one per action and be deliberate. The native Ads tag reports faster and handles Enhanced Conversions cleanly. The GA4 import is convenient when you want one event definition across everything. Running both for the same action is the single most common cause of a Conversions column that nobody believes.
Modeled conversions and cross-device matching. When consent is denied or a user converts on a different device while signed in to Google, Ads can estimate or match it. GA4 doesn't surface those in explorations. It looks like Ads is inventing numbers; it's actually doing something GA4 was never designed to do.
No, and anyone promising that is selling you something. Different attribution windows, different date assignment and different modeling mean a permanent gap. What I can do is shrink the part caused by broken tracking, and hand you a documented explanation of the part that stays. Predictable and explained beats identical and impossible.
Yes, at least a read-only export of orders or CRM records for the comparison window. Without it, I'd only be comparing two estimates against each other, which is how you get a confident answer that's wrong. A CSV is fine — I don't need production database access.
More on GA4 vs Google Ads
- GuideGA4's 2026 Changes Broke Your Google Ads Conversions? Here's the Fix
- GuideWhy Google Ads and GA4 Conversions Never Match (And How to Fix It)
- GuideGA4 and Google Ads Not Linking? Conversions Not Importing? Fix the Bridge
- GA4 and Google Ads mismatchWhy don't GA4 and Google Ads conversions match?
- importing GA4 conversionsShould I import GA4 conversions into Google Ads?
- GA4 vs Google AdsGA4 conversions vs Google Ads conversions
Free · 30 min
Let's find out which half of the gap is real
Free30 minutesNo obligation
