---
title: 'What is GCLID? Google click IDs, examples, and redirect checks'
description: Find a GCLID in a Google Ads landing URL, test whether redirects preserve it, and understand how click IDs differ from UTMs and conversion events.
published_at: 2026-09-17
last_updated: 2026-09-17
format: Guide
---

# What is GCLID? Google click IDs, examples, and redirect checks

**GCLID means Google Click Identifier.** Google Ads auto-tagging adds this identifier to eligible ad landing URLs so Google's measurement systems can associate activity with an ad click. In a URL, the parameter name is `gclid`; the value after `=` is the identifier. [Google's GCLID definition](https://support.google.com/google-ads/answer/9744275).

A GCLID in the address bar does not prove that a conversion was recorded. First verify the URL reached the page intact, then check collection and conversion reporting separately. This guide explains Google Ads measurement; it does not require a Plainrouter account or represent a Plainrouter Google Ads delivery integration.

## What does a GCLID look like in a URL?

Here is a synthetic landing URL:

```text
https://shop.example/pricing?plan=team&gclid=Demo-Click_123#plans
```

| Part | Meaning |
| --- | --- |
| `/pricing` | Landing-page path |
| `plan=team` | An existing application parameter |
| `gclid=Demo-Click_123` | A fictional click ID for checking query handling |
| `#plans` | A page fragment, separate from the query string |

Real values are generated by Google. `Demo-Click_123` is deliberately fictional: it can test whether your site preserves a parameter, but it cannot attribute a conversion to a real Google Ads click. Treat the real value as opaque. Do not lowercase it, trim it into another value, or assume a fixed length or a campaign-name encoding.

Google documents adding auto-tagging parameters before a URL fragment and preserving them through redirects. [Auto-tagging checks](https://support.google.com/analytics/answer/2938246).

## GCLID vs UTM parameters: what is the difference?

| Field | Who supplies it? | What it is for |
| --- | --- | --- |
| `gclid` | Google Ads auto-tagging | Associating a click with Google Ads measurement |
| `utm_source`, `utm_medium`, `utm_campaign` | Your campaign naming or URL configuration | Readable campaign labels for analytics |
| A purchase or lead event ID | Your event-producing application | Identifying one business event, including retries |

UTMs can describe many visits with the same labels. They are not a substitute for Google's click identifier. A GCLID is also not a purchase ID: one person can perform more than one business action after a visit, and your event identity must describe the action.

Leave auto-tagging enabled when using the Google integrations that require it. If your analytics also needs campaign labels, use a consistent naming scheme and test the resulting URL. Google's [auto-tagging guidance](https://support.google.com/google-ads/answer/3095550) explains the reporting relationship. For the actual configuration fields and ValueTrack placeholders, use our [Google Ads tracking-template examples](/library/google-ads-tracking-template).

## How do you check whether a redirect drops GCLID?

Use a test landing page you control and a fictional identifier. There is no need to click your own paid ad to check URL handling.

1. Open browser developer tools, select **Network**, and enable **Preserve log**.
2. Load the landing URL with `gclid=Demo-Click_123` in its query string. Use `&` if other parameters already follow `?`, and put the parameter before `#`.
3. Inspect each document redirect. Read the response's `Location` header, then the next request URL.
4. Confirm that the destination still contains exactly the same decoded value, including letter case. Also check parameters your application needs, such as `plan=team`.
5. Inspect the final document URL and any later client-side navigation. A router can remove the query after the initial HTTP response.
6. Separately verify that your permitted measurement code receives the click context. A passing URL check proves transport, not consent, tag execution, a conversion, or attribution.

For example, this redirect loses the click ID:

```text
From: https://shop.example/start?plan=team&gclid=Demo-Click_123
To:   https://shop.example/pricing?plan=team
```

This one retains it:

```text
From: https://shop.example/start?plan=team&gclid=Demo-Click_123
To:   https://shop.example/pricing?plan=team&gclid=Demo-Click_123
```

Check the first hop where the value changes. Common places to inspect include HTTPS or hostname redirects, locale redirects, login returns, a link shortener, and client-side route changes. Fix the responsible rule rather than adding a second `gclid` parameter to compensate. Google's [redirect troubleshooting procedure](https://support.google.com/analytics/answer/2938246) describes checking each hop; this example uses fictional data.

## How do you read GCLID without breaking the query string?

Use a URL parser instead of splitting a string at `?` or `&`. This example runs locally in a browser console or modern Node.js. It makes no network request and stores nothing:

```js
const landing = new URL('https://shop.example/pricing?plan=team&gclid=Demo-Click_123#plans');
const values = landing.searchParams.getAll('gclid');

if (values.length !== 1 || values[0] === '') {
    throw new Error('Expected one non-empty gclid parameter');
}

const clickId = values[0];
console.log(clickId); // Demo-Click_123
```

`URLSearchParams` decodes query encoding. Do not decode the returned value a second time. A value in `#gclid=...` is a fragment, not a top-level query parameter. If more than one `gclid` appears, investigate how the URL was assembled instead of arbitrarily selecting the first or last.

Reading a URL is not permission to persist or send its identifiers. Apply your consent and data-handling requirements before storage or advertising use. Do not paste real click IDs, customer details, or production URLs containing personal data into public support posts or online decoders.

## Why is GCLID missing or not working?

| Observation | What to check next |
| --- | --- |
| A fictional test value disappears at a redirect | The first `Location` header or browser navigation that removes or changes it |
| A test value remains, but a real visit has no GCLID | Auto-tagging settings and the actual traffic source; an organic or manually typed visit is not an ad-click test |
| The landing page has `gbraid` or `wbraid` instead | Google's platform-specific measurement behavior; do not rename either parameter to `gclid` |
| GCLID is present but no conversion appears | Tag/event firing, permitted collection, conversion-action setup, and reporting diagnostics |
| The URL has two `gclid` values | A template, suffix, redirect, or script may be appending a value more than once |
| A test URL containing a query returns an error | Application or edge rules that reject unknown parameters |

Not every Google Ads measurement flow exposes the same identifier. Google's [iOS measurement guidance](https://support.google.com/analytics/answer/11367152) describes circumstances where GBRAID or WBRAID is used. Absence of GCLID by itself is not proof that measurement is broken.

## Can you generate, decode, or upload a GCLID?

You can invent a string to test URL preservation, but you cannot turn that string into a valid Google ad click. Do not hardcode a sample into a live Final URL or reuse one visitor's real identifier for another visitor.

Treat GCLID as an identifier to pass through the supported measurement flow, not a readable campaign report. Use authorized Google Ads reporting to inspect campaign outcomes. For conversion imports, follow Google's [click-conversion upload guide](https://developers.google.com/google-ads/api/docs/conversions/upload-offline): possessing a click ID alone does not satisfy the rest of the conversion contract.

## What should you do next?

- Configure campaign labels with the [tracking-template and Final URL suffix guide](/library/google-ads-tracking-template).
- Use the [UTM builder](/tools/utm-builder) for static campaign labels; it does not generate Google click IDs.
- Diagnose collection and delivery separately with the [Google Ads server-side tracking guide](/library/google-ads-server-side-tracking).
- For Meta's different identifiers, read [fbclid, fbp, and fbc](/library/fbp-fbc).

## Sources

- [Google Click Identifier definition](https://support.google.com/google-ads/answer/9744275)
- [Google Ads auto-tagging](https://support.google.com/google-ads/answer/3095550)
- [Check auto-tagging and redirect handling](https://support.google.com/analytics/answer/2938246)
- [Google's iOS measurement changes](https://support.google.com/analytics/answer/11367152)
- [Upload click conversions through Google Ads API](https://developers.google.com/google-ads/api/docs/conversions/upload-offline)
- [URLSearchParams.getAll](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams/getAll)
