A gclid (Google Click Identifier) is a unique tracking parameter that Google Ads automatically appends to your landing page URL whenever someone clicks your ad. It looks like ?gclid=Cj0KCQjw... and contains a coded record of that specific click, letting you tie conversions back to the exact ad, keyword, and query that drove them.

Key Takeaways

  • A gclid is a Google-generated click ID auto-appended to URLs when someone clicks a Google Ad. It is the backbone of Google Ads conversion attribution.
  • Auto-tagging is enabled in one click and is far more reliable than manual UTMs for paid search. See UTM tracking best practices for how the two systems differ.
  • gclid is joined to conversions via cookies, hidden form fields, and the Google Ads offline conversion import API for long sales cycles.
  • gbraid and wbraid are the iOS 14.5-era siblings of gclid, used for app and web conversion modeling when device IDs are unavailable.
  • The gclid itself does not expire, but Google only attributes conversions within a 90-day click window.

What Is a Gclid and What Does It Look Like?

The Google Click Identifier, or gclid, is a string Google Ads generates at the moment of a click on one of your ads. When auto-tagging is enabled, Google redirects the user through its ad-click infrastructure and appends a parameter named gclid to the final destination URL. A real URL with a gclid looks like this:

https://yoursite.com/pricing?gclid=Cj0KCQjw4cCEBhCatAFiAJfAvE_pBxEUa8sjq...

The value after gclid= is an opaque, base64-style token. You are not meant to decode it by hand; it is an encrypted reference that Google uses internally to look up the click event. That click event stores the campaign, ad group, keyword (where available), match type, device, and other signals captured at click time. The beauty of the gclid is that you do not have to build any of that naming taxonomy yourself. Google maintains it.

This is the key difference from manual tagging. With UTM parameters you, the advertiser, are responsible for getting every value right and keeping them consistent. With auto-tagging you delegate that bookkeeping to Google, which is why Google strongly recommends leaving auto-tagging on and only using UTMs as a fallback for non-Google channels.

How Does Auto-Tagging Generate the Gclid?

Auto-tagging is a single account-level setting in Google Ads (in the Account Settings > Tracking section). When enabled, the following happens on every ad click:

  1. A user clicks your ad in a Google property (Search, Display, YouTube, Discover, or a Search Partner).
  2. Google's click server generates a unique click record and assigns it a gclid token.
  3. The user is redirected to your landing page with ?gclid=... appended to the URL.
  4. Your Google tag (gtag.js) or Google Ads conversion snippet reads the gclid from the URL on page load.
  5. When a conversion fires, the tag sends the gclid back to Google Ads, and the click is marked converted.

Because the gclid is generated server-side by Google, it is immune to the typos and inconsistent naming that plague manual UTM setups. It also captures query-level data that UTMs simply cannot, because the actual search term is known only to Google at click time.

Where Is the Gclid Stored?

The gclid lives in three places across its lifecycle, and understanding all three is critical for debugging:

1. The URL parameter and tracking template. On the initial landing, the gclid sits in the query string. This is the most fragile location because any redirect, rewrite, or form action that drops query parameters will lose it.

2. The first-party cookie _gcl_aw. The Google tag writes the gclid into a first-party cookie (and historically _gcl_dc for display) so that a conversion firing hours or days later can still be associated with the original click without relying on the URL still being present.

3. The CRM field. For businesses with sales cycles longer than a browser session, you must capture the gclid into your own system. The standard approach is a hidden form field that stores the gclid on first visit and follows the lead into your CRM (HubSpot, Salesforce, Pipedrive, etc.) as a custom property.

If you are building server-side tracking infrastructure, the gclid becomes a first-class event property that you forward server-to-server into Google Ads via the offline conversion import API.

Why Does the Gclid Matter for Attribution?

The gclid is what makes Google Ads reporting trustworthy. Without it, Google would be guessing at which clicks led to which conversions, and you would be stuck with last-click UTM attribution that breaks the moment a user clears cookies or browses across devices.

Three capabilities depend on the gclid:

  • Conversion attribution: Google matches the conversion event to the exact click record, giving you campaign, ad group, and keyword level performance.
  • Offline conversion import: For startups with sales cycles measured in weeks, you can import CRM-stage conversions ( demo booked, closed-won) keyed on the gclid, so Google's bidding optimizes for revenue, not just form fills.
  • Query-level reporting: Only auto-tagging exposes the actual search term behind a converting click, which is essential for negative keyword hygiene.

All of this connects to broader marketing attribution models, where the gclid is one of the highest-fidelity inputs you can feed a multi-touch model.

Gclid vs Gbraid vs Wbraid: What Is the Difference?

Apple's iOS 14.5 App Tracking Transparency changes forced Google to introduce new click identifiers for environments where the device-level identifiers it previously relied on are no longer available. Here is how the three relate:

IdentifierIntroduced forUsed whenAttribution basis
gclidStandard web (pre-iOS 14.5)Desktop and most web clicks, Android webExact click record, deterministic
gbraidApp campaigns (iOS 14.5+)Google App campaigns where device ID is unavailableGoogle modeling, aggregate
wbraidWeb on iOS 14.5+iOS Safari web clicks where IDFA is blockedGoogle modeling, aggregate

The practical takeaway: gclid remains your most precise identifier on the open web, while gbraid and wbraid exist so Google can still attribute conversions on locked-down iOS environments using statistical modeling rather than deterministic click matching. You do not have to generate these yourself; Google appends the correct one based on the click context.

How Do You Capture a Gclid into Your CRM?

If your sales cycle is longer than a single browser session, capturing the gclid into your CRM is non-negotiable for closed-loop reporting. Here is the practitioner playbook:

  1. On first page load, read the gclid from window.location.search using a small JavaScript snippet.
  2. Store it in a first-party cookie and in sessionStorage so it survives redirects within your domain.
  3. Populate a hidden <input type="hidden" name="gclid"> field on every lead form with the captured value.
  4. On form submit, send the gclid along with the lead payload to your backend or directly to your CRM's API as a custom contact property.
  5. Map the property in your CRM and create a workflow that stamps the gclid onto the resulting deal or lifecycle stage.
  6. Use the Google Ads offline conversion import API (or a connector like the CRM native integration) to send gclid + conversion_name + value back to Google when that lead reaches a meaningful stage.
  7. Verify in Google Ads that the conversion shows as "from offline import" and that the gclid matches a known click within the conversion window.

This is the same plumbing that powers enhanced conversions, where Google hashes and matches first-party data against its signed-in user base to recover conversions lost to cookie restrictions.

What Is the Gclid Expiry and the 90-Day Conversion Window?

The gclid token itself does not expire in the sense of becoming invalid on a fixed date, but Google only credits conversions to a gclid if the conversion occurs within 90 days of the original click. This is the standard Google Ads conversion window, configurable per conversion action down to a shorter period but not beyond 90 days. If a deal closes 120 days after the click, the offline import will be rejected as outside the window.

The first-party cookie _gcl_aw that the Google tag sets has its own expiry (commonly 90 days), so a returning visitor beyond that window will be treated as a new session even if they are the same person.

What Are the Common Gclid Failure Modes?

Most "missing gclid" tickets trace back to one of these five issues:

  • Redirects stripping query params: A marketing tool, link shortener, or load balancer that rewrites the URL without preserving ?gclid= destroys the identifier before your tag can read it.
  • Cross-domain forms: If your form lives on a different domain than your landing page, the gclid read on domain A never reaches domain B unless you explicitly pass and re-read it.
  • Ad blockers and browser restrictions: Some privacy extensions strip known tracking parameters, though Google's first-party cookie approach limits the damage.
  • Manual UTM overriding auto-tagging: Teams sometimes add manual UTM parameters to Google Ads final URLs, which can conflict with or mask the value of auto-tagging in reporting.
  • Consent Mode gaps: If your Consent Mode banner blocks the Google tag before consent is granted, the gclid may never be read or stored. Modeled conversions recover some of this, but not all.

How Does Gclid Relate to Server-Side Tracking and Enhanced Conversions?

As browsers tighten cookie policies, the gclid is increasingly paired with two resilience strategies. Server-side tracking moves the collection and forwarding of conversion events off the vulnerable browser and into a controlled server environment, which protects the gclid-to-conversion handoff from client-side breakage. Enhanced conversions layer hashed first-party data (email, phone) on top of the gclid so Google can match conversions even when cookies are gone.

Used together, these give startups durable attribution in a post-third-party-cookie world: the gclid provides the click context, server-side tracking protects the delivery, and enhanced conversions recover matching. For the full server-side approach, see our server-side tracking guide.

What Is the Gclid Debugging Checklist?

When conversions are not attributed, work through this checklist in order:

  1. Confirm auto-tagging is enabled in Google Ads Account Settings.
  2. Click your own ad in incognito and confirm ?gclid= appears in the landing URL.
  3. Confirm the Google tag fires on that page and writes the _gcl_aw cookie (check in DevTools > Application > Cookies).
  4. Confirm your hidden form field is populated before submit, and that the value reaches the CRM.
  5. Check that no redirect between ad click and landing strips the query parameter.
  6. Verify the conversion action's window covers the elapsed time since click (max 90 days).
  7. Confirm Consent Mode is not blocking the tag before the user grants consent.

Frequently Asked Questions

Can I Read or Decode a Gclid Value Myself?

No. The gclid is an opaque token generated and interpreted only by Google. You do not need to decode it; your job is to capture, store, and pass it back unchanged to Google Ads via a conversion or offline import call.

Does a Gclid Work If a User Clicks an Ad Then Converts on a Different Device?

Deterministic gclid attribution is tied to the click and the browser session where the cookie was set. Cross-device conversion credit relies on Google's signed-in user modeling rather than the raw gclid, which is one reason enhanced conversions and server-side tracking matter for longer, multi-device journeys.

Should I Use Gclid or UTM Parameters for Google Ads?

Use auto-tagging (gclid) as the primary mechanism for Google Ads and reserve UTM parameters for channels Google does not auto-tag, such as LinkedIn, Reddit, or email. Mixing manual UTMs into Google Ads final URLs can create conflicting reporting and is generally discouraged.

How Long Is a Gclid Valid for Conversion Import?

Google credits a gclid-based conversion only if it occurs within the conversion window, which defaults to 90 days and can be shortened per conversion action but not extended. Offline imports submitted after that window are rejected.