GCLID: What It Is, How to Capture It, and Why It Keeps Vanishing
Quick Answer
Every time somebody clicks one of your Google Ads, Google quietly tacks an identifier onto the landing page URL. That identifier is the GCLID (Google Click ID), and it looks something like ?gclid=Cj0KCQ.... Buried inside that string is a record of the campaign, ad group, keyword, and ad that brought the visitor to your site. Save it to a cookie or sessionStorage the moment the page loads, carry it through to your form submission, and you'll have what you need to send real conversion data back to Google later. Lose it, and you're flying blind.
Every time somebody clicks one of your Google Ads, Google quietly tacks an identifier onto the landing page URL. That identifier is the GCLID (Google Click ID), and it looks something like `?gclid=Cj0KCQ....` Buried inside that string is a record of the campaign, ad group, keyword, and ad that brought the visitor to your site. Save it to a cookie or sessionStorage the moment the page loads, carry it through to your form submission, and you'll have what you need to send real conversion data back to Google later.
Lose it, and you're flying blind.
What a GCLID Actually Is
Think of the GCLID as a receipt number. When a visitor clicks your ad, Google prints a receipt on their end that documents everything about that click: the campaign, ad group, specific ad, keyword, match type, device, and network. The GCLID in the URL is just the receipt number. You never see the full receipt yourself.
What you do is hand that number back to Google when a conversion happens downstream. Google pulls up the original receipt, matches it to the conversion, and your campaign data gets updated accordingly. That's the entire mechanism.
It's also the data source Smart Bidding draws on when it decides which keywords and audience segments actually drive revenue. Without it, the algorithm is working with a fundamentally incomplete picture.
How the GCLID Gets Into Your URL
Nothing needs to be configured on your end. Google's auto-tagging feature (switched on by default in every Google Ads account) handles it at the moment of the click. Wherever your ad sends traffic, the GCLID parameter arrives in the address bar when that page loads.
One thing worth confirming: auto-tagging can be turned off. If someone disabled it under Account Settings > Auto-tagging, GCLIDs will never appear in your URLs regardless of what else you set up. Before spending time troubleshooting a missing GCLID problem, verify that auto-tagging is actually on.
The Real Reason GCLIDs Go Missing
Here's the thing most guides skip over: the GCLID is only in the URL for a single page view. It lives in the address bar of the landing page and nowhere else. The second a visitor clicks to another page on your site, it's gone. No error, no warning. Just gone.
This creates an obvious problem. A visitor clicks your ad, reads a few pages, watches a demo video, and then fills out your contact form three pages later. By the time they hit submit, the GCLID has been out of the URL for several minutes. If your form is only reading from the current URL, it finds nothing.
Beyond that core issue, a few other things commonly cause GCLIDs to go missing:
Redirects between the ad and the landing page. If the URL in your ad redirects to a different URL before the page loads, that redirect may strip the GCLID entirely. Test this by clicking your ads in preview mode and checking what's in the final URL.
Safari on Apple devices. Apple's Intelligent Tracking Prevention treats some URL parameters as tracking identifiers and strips them before the page can read them. This hits harder on iOS and affects a meaningful slice of most audiences. A first-party cookie set server-side is the cleanest workaround, though storing it client-side in a first-party context still helps.
Tag manager triggers set up in the wrong place. A common mistake is firing the GCLID capture script only on thank-you pages or form submission events. By then the original URL is long gone. The script needs to run on every page load, from the very first visit.
Form tools that rewrite the URL. Multi-step forms, pop-up forms, and some third-party form builders replace or modify the page URL as the form progresses. Any GCLID in the original URL gets wiped out in the process.
How to Capture and Store It Properly
The fix is straightforward: read the GCLID out of the URL the instant a page loads and stash it somewhere that survives navigation. Here's how that looks in practice.
Step 1 — Grab it on every page load
```js const params = new URLSearchParams(window.location.search); const gclid = params.get('gclid'); if (gclid) { sessionStorage.setItem('gclid', gclid); const expires = new Date(Date.now() + 90 * 24 * 60 * 60 * 1000).toUTCString(); document.cookie = `gclid=${gclid}; expires=${expires}; path=/; SameSite=Lax`; } ```
This runs on every page, not just landing pages. If a visitor comes back through a different URL days later with a fresh GCLID, it overwrites the old one.
Step 2 — Put a hidden field in your form
```html <input type="hidden" name="gclid" id="gclid_field" /> ```
Step 3 — Fill it in before the form goes out
```js function getStoredGclid() { const fromSession = sessionStorage.getItem('gclid'); if (fromSession) return fromSession; const match = document.cookie.match(/(?:^|;\s*)gclid=([^;]+)/); return match ? match[1] : ''; }
document.getElementById('gclid_field').value = getStoredGclid(); ```
Now the GCLID travels with the lead record into your CRM or database. Keep it attached to that contact for as long as the deal is open.
The 90-Day Upload Window
GCLIDs have an expiration date for upload purposes. Google gives you 90 days from the original click to upload a matching offline conversion. Attempt it after that and the upload will be rejected without any obvious error message.
For most businesses, 90 days is generous. Lead gen funnels in B2C or SMB markets typically close in days or weeks, so the window almost never becomes a constraint.
Enterprise B2B is a different story. If your average deal takes five or six months from first click to signed contract, you simply cannot rely on GCLID-based attribution for closed-won conversions. The practical workaround is uploading earlier-stage signals instead. A "Qualified Lead" or "Demo Booked" conversion at day 20 feeds real data into Smart Bidding and stays well inside the upload window, even if the final close happens months later.
What You're Actually Losing Without GCLID Capture
Google Ads will keep running whether you capture GCLIDs or not. The platform will report clicks, show impressions, and fire any conversion tags you've set up on your site. None of that requires GCLIDs.
What you lose is the connection between ad activity and actual business results. Your Google Ads account has no way to know that the person who clicked a brand keyword on a Tuesday became a paying customer six weeks later. From the platform's perspective, that click led nowhere.
Smart Bidding takes this harder than it sounds. The algorithm adjusts bids constantly based on the conversion signals it receives. Feed it only top-of-funnel signals like page views and button clicks, and it optimizes for those. It starts chasing volume. Lead counts climb, lead quality drops, and the account looks healthy in the dashboard while the sales team works through a pile of unqualified contacts.
Uploading offline conversions tied to GCLIDs fixes the signal. Now Smart Bidding can see which campaigns produce closed deals, not just form fills, and it adjusts accordingly.
The Easiest Way to Handle This Without Building It Yourself
Getting GCLID capture right across an entire site is more involved than it looks. You need the capture script running everywhere, cookie logic that handles edge cases, hidden fields across every form regardless of which builder created them, and a backend process that formats and uploads conversion data to Google Ads on a schedule. When landing pages change or a new form gets added, someone has to make sure the whole chain still works.
FormTrackr removes that maintenance burden with a single script tag. Drop it on your site and it handles GCLID and UTM capture automatically on every page, injects hidden fields into any form it finds, and logs each submission with full attribution data. When you mark a lead as converted in the dashboard, it formats and uploads the conversion to Google Ads without any manual steps. No spreadsheet exports, no scheduled jobs, no custom backend code.
Frequently Asked Questions
What does GCLID stand for and what information does it contain?
GCLID stands for Google Click ID. Google generates a unique one for every ad click and appends it to the destination URL. It functions as a lookup key: on Google's servers, it points to a detailed record of the click that includes the campaign, ad group, ad creative, keyword, match type, device, and network. The string itself is opaque to you, but when you return it to Google alongside a conversion event, Google resolves it and credits the conversion to the right place in your account.
Why is my GCLID missing from form submissions?
Nine times out of ten, it was never saved anywhere before the URL changed. A visitor lands with a GCLID in the address bar, clicks to another page, and the GCLID is gone. If the capture script reads from the URL at form submission time rather than at initial page load, it will always come up empty on multi-page journeys. Store the GCLID in a cookie and sessionStorage as soon as any page loads. Other things that can cause this: Safari stripping URL parameters, redirects between the ad destination and the final landing page, and tag manager triggers that fire too late in the session.
How long is a GCLID valid for conversion uploads?
You have 90 days from the click date to upload a conversion against a given GCLID. Google will quietly reject anything older than that. Most lead gen funnels operate well inside this window. If yours routinely runs longer, shift your conversion upload strategy toward earlier funnel signals rather than final-stage outcomes.
Can you track Google Ads conversions without a GCLID?
Standard conversion tracking through the Google tag or GA4 works without GCLIDs and covers on-site events like thank-you page loads and button clicks. What it cannot do is track anything that happens after the session ends. A phone consultation two days later, a contract signed next month, a referral that converts six weeks out. Offline conversion uploads handle those scenarios, and they depend entirely on having a GCLID to match against. If GCLIDs are truly unavailable (long sales cycles, phone-only leads), Enhanced Conversions for Leads offers an alternative path using hashed contact data, though it comes with its own setup requirements.