Why it happens
A server redirect drops the query string
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.
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.
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.
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.
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
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.
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.
Check auto-tagging in every account
In Google Ads go to Admin, then Account settings, then Auto-tagging, in each account under the manager.
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.
- What is gclid?
- UTM parameters being stripped
- GA4 vs Google Ads conversions: why the numbers don't match
- PostHog vs Google Ads: why your signups don't match
- What is fbclid?
- UTM parameters not showing in GA4
- PostHog UTM tracking
- Multi-touch attribution
- PostHog vs Google Analytics for paid ads
- Attribution window
- Cross-channel attribution
- Google Ads attribution model
- Meta ads attribution settings
See where it breaks
Connect your accounts. Sprites reads them side by side and shows you exactly where the numbers split.