Guide
Why ads numbers and GA4 numbers do not match
A director will paste two screenshots and ask which one is wrong. Often neither is. Ads counts platform clicks. GA4 counts tagged sessions on your site. This page is how to tell a real tracking hole from a definition gap.
They are not the same event
A click is “the platform registered a tap.” A session is “the Google tag ran on a page.” People abandon between those two. Browsers block things. Consent banners wait. Apps open in-app browsers that never load your tag. Expect a gap. A healthy paid search program often shows fewer GA4 sessions than Google Ads clicks. That is not automatically a broken UTM.
What a real hole looks like
- Meta or email spend with almost no Paid Social or Email in GA4 — usually no campaign URL, or a medium GA4 cannot group.
- Google Ads linked, auto-tagging on, and still no Google / cpc — often a redirect that drops
gclid. Inspect a live click with the click ID inspector. - Traffic in Unassigned with a medium like
adorPaid Social— fix the value. Walkthrough: Unassigned traffic.
Last click is not a conspiracy
GA4 default reports use last non-direct click for session source. A person who clicked a Meta ad yesterday and an email today may show as Email. Ads Manager still claims the Meta click. Both can be true. Do not “fix” that with a new UTM on the thank-you page. That is internal tagging, which we refuse in when not to use UTMs.
A cause table you can take into the meeting
| Symptom | Likely cause | Fix or accept |
|---|---|---|
| Ads clicks > GA4 sessions, tags look fine | Abandoned clicks, consent, ITP, in-app browsers | Accept a directional gap. Do not “correct” GA4 to match Ads. |
| Meta spend, almost no Paid Social | No UTMs, or medium not paid_social | Tag the ads. See Meta UTMs. |
| Google Ads linked, no google / cpc | Redirect dropped gclid, or link missing | Inspect the live URL. Relink if needed. |
| Email clicks in ESP, Direct on site | Buttons untagged or query stripped | Tag CTAs. Test one footer link. |
| Same person, Ads claims Meta, GA4 shows Email | Last non-direct click | Accept. Different questions. |
| Conversions much higher in Ads | View-through, different windows, modeled conversions | Accept. Do not add UTMs on the thank-you page. |
How to reconcile without lying
Use the same date range, the same campaign name, and say out loud which number answers which question. Spend and platform CPA live in the ad UI. On-site conversion paths and channel mix live in GA4. Shared utm_campaign values are what make those two screens talk. Build them in the campaign URL builder. See the fields in how to see UTMs in GA4.
If you need one sentence for the slide: “Ads counts clicks and its own conversions. GA4 counts tagged sessions and on-site events. We compare programs with a shared campaign name, not by forcing the two totals to match.”