UTM URL Generator Free UTM builder

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 ad or Paid 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

SymptomLikely causeFix or accept
Ads clicks > GA4 sessions, tags look fineAbandoned clicks, consent, ITP, in-app browsersAccept a directional gap. Do not “correct” GA4 to match Ads.
Meta spend, almost no Paid SocialNo UTMs, or medium not paid_socialTag the ads. See Meta UTMs.
Google Ads linked, no google / cpcRedirect dropped gclid, or link missingInspect the live URL. Relink if needed.
Email clicks in ESP, Direct on siteButtons untagged or query strippedTag CTAs. Test one footer link.
Same person, Ads claims Meta, GA4 shows EmailLast non-direct clickAccept. Different questions.
Conversions much higher in AdsView-through, different windows, modeled conversionsAccept. 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.”

FAQ

UTM builder questions

Why do Google Ads clicks not match GA4 sessions?

They count different things. Ads counts clicks. GA4 counts sessions that loaded the tag. Bounces before the tag, iOS limits, consent, redirects that drop gclid, and last-click rules all open a gap. That gap is normal. A missing UTM on Meta or email is a different problem.

Should I force the numbers to match?

No. Reconcile directionally: same campaign name, same date range, same conversion window. Use ads for spend and platform conversions. Use GA4 for on-site behavior and cross-channel mix.