---
title: 'GBRAID vs WBRAID vs GCLID: differences and URL checks'
description: Learn what GBRAID and WBRAID mean in Google Ads, how they differ from GCLID, and how to check that redirects and lead forms preserve them.
published_at: 2026-09-19
last_updated: 2026-09-19
format: Guide
---

# GBRAID vs WBRAID vs GCLID: differences and URL checks

**GBRAID and WBRAID are Google Ads measurement parameters that can appear in URLs.** Google's iOS guidance introduces GBRAID for web-to-app measurement and WBRAID for app-to-web measurement. They are distinct from GCLID: keep the original parameter names when handling them. [Google's iOS measurement guidance](https://support.google.com/analytics/answer/11367152).

GBRAID is not limited to app journeys. Google's current offline-conversion guidance also covers website campaigns where GCLID might be lost. A missing `gclid` is therefore a reason to inspect the actual landing URL, not immediately declare tracking broken. [Google's GBRAID setup guide](https://support.google.com/google-ads/answer/17371255).

## What is the difference between GBRAID, WBRAID, and GCLID?

| Parameter | Measurement context | Implementation consequence |
| --- | --- | --- |
| `gclid` | Google's click identifier for ad measurement | Keep it in its own field; see the [GCLID reference](/library/gclid) for click-ID and redirect examples. |
| `gbraid` | Web-to-app measurement in Google's iOS explanation; also website campaign measurement in its current GBRAID setup guide | Preserve it even when `gclid` is present. Do not make it a unique user or event key. |
| `wbraid` | App-to-web measurement in Google's iOS explanation | Preserve the `wbraid` field instead of putting its value into `gclid`. |
| `utm_campaign` and other UTMs | Campaign labels chosen by the advertiser | Keep labels separately; they do not replace Google's measurement parameters. |

The web-to-app/app-to-web distinction explains the original iOS flows; it is not an exhaustive rule for every URL you will encounter. Google's [conversion-import reference](https://developers.google.com/google-ads/api/docs/conversions/upload-offline) also describes cases where both GCLID and GBRAID belong to a conversion.

## Is GBRAID unique to each click or user?

**No. Google describes GBRAID as non-unique, without a link to an individual user or event. It is also case-sensitive.** Do not use it as a database primary key, a customer identifier, or the sole key for deduplicating purchases. [Google's GBRAID definition](https://support.google.com/google-ads/answer/16297842).

For example, a table with a unique constraint on `gbraid` could reject a later legitimate lead carrying the same value. Give your business records their own IDs and keep measurement fields as context. This is an application-design consequence of the documented non-unique behavior, not a Google-prescribed database schema.

Do not assume that WBRAID is a unique business-event identifier either. Use your own order or lead identity to distinguish actions, and the destination's documented rules to handle conversion retries.

## What do GBRAID and WBRAID look like in a URL?

These values are fictional and only demonstrate query handling:

```text
https://shop.example/start?plan=team&gbraid=Demo-Braid_123#plans
https://shop.example/start?plan=team&wbraid=Demo-Web_456#plans
```

The query starts at `?`; `&` separates parameters; `#plans` is a fragment. The parameter name tells you which field you received. The value should be handled as opaque data, rather than decoded into a campaign name or customer identity.

Keep the original value, including case. A fictional value can test your redirects and forms, but cannot establish a real Google Ads conversion. Do not paste these samples into live campaign settings or replace real values with them.

## How do you check whether redirects preserve the parameters?

Use a staging page or another test destination you control. You do not need to click a paid ad.

1. Open browser developer tools, select **Network**, and enable **Preserve log**.
2. Load the first synthetic URL above, adapted to your test domain.
3. Inspect each document redirect's `Location` header and the following request URL.
4. Compare the final decoded parameter value with the original. Also check that `plan=team` still arrives.
5. Repeat with the WBRAID example. Then test a URL containing both a fictional `gclid` and `gbraid` to catch code that keeps only the first recognized field.
6. Check any client-side navigation after the page loads. A router can remove the query even when the HTTP redirects preserve it.

A broken redirect might produce:

```text
Before: /start?plan=team&wbraid=Demo-Web_456
After:  /pricing?plan=team
```

The expected destination retains the field:

```text
/pricing?plan=team&wbraid=Demo-Web_456
```

Find the first hop that drops it. Inspect hostname, HTTPS, locale, short-link, and login-return rules there. Google's [missing Ads data guidance](https://support.google.com/analytics/answer/13367418) recommends testing whether a fictional GCLID survives with its symbols and capitalization intact. Apply the same transport check to these synthetic parameters.

## What should your form or CRM preserve?

Check the whole path from landing URL to the record your integration uses:

- **Separate fields:** retain `gclid`, `gbraid`, and `wbraid` under their actual names. A single fallback field such as “first available click ID” loses which kind it was.
- **Original values:** do not lowercase, uppercase, truncate, or double-decode identifiers. Use a URL parser rather than splitting the query manually.
- **Ambiguous input:** flag repeated values for the same parameter name during testing; do not silently choose a different one at each layer.
- **Business identity:** keep the lead/order ID separate from the measurement parameters.
- **Collection controls:** apply your existing consent and retention rules before persisting or forwarding advertising context. A parameter in a URL is not a consent signal.

Google's [GBRAID setup instructions](https://support.google.com/google-ads/answer/17371255) cover passing it through forms and retaining it alongside other available signals. Follow the contract of the import method you actually use. Google currently recommends Data Manager for GBRAID imports; this guide is about inspecting the context, not a complete upload implementation.

## Why is the parameter present but a conversion missing?

| Observation | Next check |
| --- | --- |
| Parameter disappears before the landing page | First redirect or URL-rewrite rule that removes it |
| URL contains it but the submitted form does not | Form field mapping and whether navigation removed the context |
| Backend receives it under `gclid` | Field mapping: restore the original identifier type |
| Two leads have the same GBRAID | Do not discard one solely on that basis; check their business IDs |
| Synthetic value survives every hop | URL transport works; this does not test real attribution |
| Real context arrives but a conversion is absent | Conversion-action configuration, permitted collection, import diagnostics, and the selected method's supported fields |

For conversion-delivery troubleshooting, continue with the [Google Ads server-side tracking guide](/library/google-ads-server-side-tracking). These Google measurement guides do not describe a Plainrouter Google Ads delivery integration.

## Should you add GBRAID or WBRAID manually to ads?

Do not invent values. Preserve the identifiers Google supplies. For campaign labels, configure UTMs and supported placeholders using the [Google Ads tracking-template guide](/library/google-ads-tracking-template). For a landing URL containing GCLID instead, use the [GCLID redirect checks](/library/gclid).

## Sources

Official references checked September 19, 2026:

- [Google Analytics: iOS campaign measurement](https://support.google.com/analytics/answer/11367152)
- [Google Ads: GBRAID URL parameter](https://support.google.com/google-ads/answer/16297842)
- [Google Ads: set up offline conversions using GBRAID](https://support.google.com/google-ads/answer/17371255)
- [Google Ads API: manage offline conversions](https://developers.google.com/google-ads/api/docs/conversions/upload-offline)
- [Google Analytics: missing Ads data and redirect checks](https://support.google.com/analytics/answer/13367418)
