Attribution · Sprites diagnoses this

gclid missing from your URLs

A missing gclid almost always means something between the ad and your page dropped the query string: a redirect, a URL rewrite or an app router. Google still counts the click, but GA4 files the visit as organic or direct and conversions lose their ad credit. Find the hop that drops it by loading your final URL with a test gclid and watching where it disappears.

$1 today. Cancel anytime before day 7.

What Sprites checks

  • ✓Clicks in Google Ads4,820 last 7 days
  • !GA4 sessions from google / cpc3,110, gap of 35%
  • !Final URLs that redirect/promo redirects to /
  • ?Final URLs off your domain1 booking tool
Illustration of a typical broken account. Your own readout comes from your account.

Why it happens

A server redirect drops the query string

  1. A server redirect drops the query string

    A 301 from a vanity path, a trailing slash rule or an http to https rule written to forward only the path.

  2. A client-side route change rewrites the URL

    Single-page apps that replace the URL on load, or a locale redirect done in JavaScript, can remove gclid before the Google tag reads it.

  3. Auto-tagging is off in one account

    In a manager account, one child account with auto-tagging off sends clicks with no gclid at all.

  4. Tracking templates or third-party trackers

    A tracking template that routes through another domain can drop the parameter if the final redirect does not pass it on.

  5. Privacy browsing

    Safari Private Browsing, Mail and Messages strip known click IDs. Expect a small, steady share of clicks without gclid even when everything works.

How to line them up, step by step

  1. Load each final URL with a test gclid

    Append ?gclid=test to every final URL and open it. If the parameter is gone on the page you land on, that URL has the problem.

  2. Trace the redirects

    Open your browser developer tools, go to Network, turn on Preserve log and reload. Every 301 or 302 in the chain must keep the full query string.

  3. Check auto-tagging in every account

    In Google Ads go to Admin, then Account settings, then Auto-tagging, in each account under the manager.

  4. Point final URLs at the real page

    Use the final destination as the ad final URL, not a vanity path that redirects. Keep redirects only where they pass the query string through.

Steps checked against Google Ads Help: About auto-tagging; Google Ads Help: Test your tracking template and final URL; Google Analytics Help: Troubleshoot Google Ads and Analytics linking.

Sprites diagnoses this

Sprites diagnoses it

Sprites puts Google Ads clicks next to GA4 and PostHog visits so you see how many lost their click ID, and on which URLs.

What Sprites does

  • Lists every final URL your clicks went to and flags the ones off your domain.
  • Puts Google Ads clicks next to GA4 google / cpc sessions for the same days, by campaign.
  • Counts PostHog visits that arrived with a gclid property, by landing page.

What it doesn't do

  • It does not change redirects, routers or final URLs on your site.
  • It does not read the auto-tagging setting or tracking templates.

Questions

Why is gclid not showing in my URL?

Either auto-tagging is off or something between the ad and the page dropped the query string. Test the final URL with a fake gclid to tell which.

Does a missing gclid mean Google Ads did not count the click?

No. Google counts and bills the click either way. What you lose is the link between that click and the conversion in GA4 and in offline imports.

How many clicks without gclid is normal?

A few percent, from privacy browsing and app-to-web clicks that carry gbraid instead. A gap of more than 10 percent between clicks and tagged sessions points at a redirect.

Can I add gclid back after a redirect?

Only by passing the query string through the redirect. Once it is dropped, the page has no way to recover it.

See where it breaks

Connect your accounts. Sprites reads them side by side and shows you exactly where the numbers split.