All posts

GCLID, GBRAID, WBRAID: Three Click IDs, and Your Form Probably Keeps One

By Rajesh Kumar, Founder, Attribi ·

Three Google Ads click IDs. The gclid is read by the form's hidden field and saved to the CRM.
The wbraid and gbraid have no field reading them and are dropped. Illustrative: 100 leads, 82 with
a click ID in the CRM, 18 with an empty field.

Open your CRM and filter Google Ads leads by the click ID field. Some are blank. The campaign is right, the lead is real, and the one value Google needs to recognise the click is missing. If you record the device, check it on those rows. Expect iPhones.

The form did not break. It did what it was built to do, which is look for one parameter called gclid. Google has been sending two others since 2021.

GCLID vs GBRAID vs WBRAID, in short: all three are click identifiers that Google Ads adds to your landing page URL. GCLID identifies one ad click. WBRAID and GBRAID stand in for it on some iPhone and iPad traffic, WBRAID for conversions on your website and GBRAID for conversions in your app. Each one is uploaded in its own field.

Every Google fact below was read on Google's own pages on 5 October 2026 and links to its source. This area has changed more than once.

What are GCLID, GBRAID and WBRAID?

GCLID (Google Click Identifier) is a URL parameter that Google Ads appends to the landing page address when someone clicks an ad, and it identifies that single click and the campaign behind it. Google's own wording is that it "identifies the campaign along with other attributes of the click".

WBRAID is the URL parameter Google Ads uses instead of a GCLID when someone on iOS 14 or later clicks an ad inside an iOS app and lands on your website, and it is used to attribute web conversions. The Google Ads API reference calls it "the URL parameter for clicks associated with web conversions".

GBRAID is the URL parameter Google Ads adds on iOS clicks to attribute app conversions, such as a click on a web ad that opens your iOS app. The same reference calls it "the URL parameter for clicks associated with app conversions".

Google does not word the pair identically everywhere. The offline conversions guide says a wbraid is present when a user "clicks on an ad in an iOS app and is directed to your webpage" and a gbraid when a user "clicks on an ad on the web and is directed to your iOS app". The Data Manager API reference sorts them by event, web or app. Both agree on what matters to a lead form: if the conversion happens on a website, the one you will meet is WBRAID.

Which clicks get a GCLID, and which get a GBRAID or WBRAID?

Three rows. Most Google Ads clicks carry a gclid that identifies one ad click. On iOS 14 and
later, an ad inside some Google iOS apps that lands on your website carries a wbraid. On iOS 14.5
and later, clicks from Search, Shopping, Display and Performance Max campaigns can carry a gbraid,
sometimes beside a gclid.

All three depend on one setting. Auto-tagging is what appends the parameter to your URL, and Google says it is on by default for new accounts. If it is off, you get none of them.

With auto-tagging on, the GCLID is the default.

The exception began on 26 April 2021, when Apple's App Tracking Transparency policy took effect. Google's help page on iOS 14 campaign measurement says that from that date it no longer sends the GCLID "for iOS 14 traffic coming from ads on a handful of Google apps". On that traffic the gclid is not appended and the {gclid} ValueTrack parameter comes through as empty text. The same page warns of fewer reported offline conversions imported from clicks.

In its place Google introduced wbraid in March 2021, to "attribute conversions back to your ad campaigns and work with conversion modeling". Then gbraid in May 2021, for app conversions, added to landing page URLs "for all iOS14.5+ clicks" when auto-tagging is on, and "currently applicable to Search, Shopping, Display, and Performance Max campaigns only".

What that page does not do is name the apps. "A handful of Google apps" is as specific as Google gets. I could not find a list on a Google page, so there is none here, and you cannot work out in advance what share of your clicks will arrive without a GCLID. You can only store what arrives and count afterwards. Nor is there a setting for it: nothing in your Google Ads account turns WBRAID on or off separately from auto-tagging.

Can they appear together?

Sometimes. Google's offline conversions guide says "in some cases you may be able to associate both a gclid and a gbraid with a conversion", and recommends sending both when that happens.

GBRAID and WBRAID are the pair that cannot travel together on an upload. The Google Ads API has a dedicated error for it, GBRAID_WBRAID_BOTH_SET: "Can't use both gbraid and wbraid parameters."

GCLID vs GBRAID vs WBRAID: the comparison

GCLIDWBRAIDGBRAID
URL parametergclidwbraidgbraid
IntroducedThe originalMarch 2021May 2021
Which clicksAny click with auto-tagging on, except the affected iOS trafficiOS 14 and later, ad in an iOS app, landing on your websiteiOS 14.5 and later; Search, Shopping, Display and Performance Max only
What it is forOne ad click, for website conversions and offline importsWeb conversions on iOS, with conversion modelingApp conversions on iOS
Upload field, Google Ads APIgclidwbraidgbraid
Upload field, Data Manager APIadIdentifiers.gclidadIdentifiers.wbraidadIdentifiers.gbraid
With hashed email or phone on the same eventYesNot stated by Google either wayYes, since October 3, 2025
With another click IDWith a gbraidNever with a gbraidWith a gclid, never with a wbraid
Conversion action count settingOne or EveryEveryEvery
Custom conversion variablesSupportedNot supportedNot supported
Earliest upload after the click6 hours6 hours6 hours
Time to appear in reportsTypically under 12 hoursUp to 72 hoursUp to 72 hours

Sources for the lower half are in the upload section below.

Why does a GCLID-only form lose the lead?

Three landing page URLs pass through a form whose only hidden field is named gclid. The URL with
a gclid is saved to the CRM. The URL with only a wbraid leaves the CRM field empty. The URL with a
gclid and a gbraid keeps the gclid and drops the
gbraid.

The usual capture setup is a hidden form field and a few lines of script that read gclid from the URL and put it in that field. Google's own setup instructions for offline imports are written around the GCLID.

So when the URL arrives as ?wbraid=..., the script looks for gclid, finds nothing, and submits an empty field. No error anywhere. The lead is created, the salesperson calls, the deal may close. Weeks later the upload job has no click identifier for that record.

Here is an illustrative month, with invented numbers: one hundred leads from Google Ads. On 82 the URL carried a gclid and the CRM has it. On 18, all iPhone, the URL carried a wbraid and the CRM field is empty. Those 18 are not worse leads. They are the ones Google cannot be told about by click ID.

Capturing all three is the same job as capturing one, with two more parameter names. The step-by-step, including where the value falls out on multi-page and embedded forms, is in How to Get the GCLID into Your CRM.

The design decision is how you store them. Either three fields, or one value field plus a second field holding the parameter name. Do not pour all three into a single field called "GCLID". At upload time the job has to know which field to put the value in.

There is a second net under this one. Upload the lead's hashed email or phone with the conversion and Google can match some of those 18 without any click ID. That is enhanced conversions for leads, and it has a shorter deadline, covered below.

What changes when you upload a GBRAID or WBRAID?

The upload paths are covered in the guide to Google Ads offline conversion import. These rules apply only to the two iOS parameters.

  1. Put it in its own field. The Google Ads API has separate gclid, gbraid and wbraid fields on a conversion, and the Data Manager API has the same three under adIdentifiers. A value Google cannot decode is rejected with UNPARSEABLE_GCLID, UNPARSEABLE_GBRAID or UNPARSEABLE_WBRAID. The wording on the last two is "Check if your wbraid parameter was not modified", so do not trim, lowercase or re-encode the value. Google also notes that the GCLID is case sensitive.
  2. Never send GBRAID and WBRAID on the same conversion. That is GBRAID_WBRAID_BOTH_SET.
  3. Set the conversion action to count Every. The error is ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID: "Conversion actions that use one-per-click counting can't be used with gbraid or wbraid parameters." Google's upgrade guide for offline imports says the same. This one catches lead gen accounts, because counting One is the sensible setting for leads.
  4. Leave custom variables off. Per the offline conversions guide, "Google Ads does not support custom conversion variables in combination with wbraid or gbraid."
  5. Give it three days before you call it missing. A click less than six hours old is refused with TOO_RECENT_EVENT whichever identifier you send. After upload, Google's troubleshooting page says processing "typically takes less than 12 hours, but can take up to 72 hours if you use GBRAID and WBRAID-keyed conversions."

One rule has loosened, and many pages still carry the old version. The older Google Ads API guide required exactly one of the three identifiers per conversion, and its sample code still checks for that. Google's upgrade guide now states that "gBraids and GCLIDs, along with other user-provided data, can be in a single row for each conversion upload without triggering an error starting from October 3, 2025." So a GBRAID next to a GCLID, with a hashed email on the same event, is allowed today. A GBRAID next to a WBRAID still is not.

The full list of upload errors and what each one means is in Google Ads Offline Conversion Errors, Decoded.

How long is each click ID usable for upload?

Google's guidelines for importing offline conversions give two numbers. Conversions uploaded more than 90 days after the associated last click are not imported. For enhanced conversions for leads, the limit is 63 days.

The 90-day figure is stated most directly for the GCLID: "We only keep the GCLID for 90 days." Google's troubleshooting page files that under the heading "Identifiers or iOS URL parameters are too old", which puts GBRAID and WBRAID under the same error. I did not find a separate retention figure for them on a Google page, so treat 90 days as the ceiling for all three.

Two things shorten it. A conversion outside the conversion action's own click-through window is rejected with EXPIRED_EVENT. And a lead that lost its WBRAID at the form and is matched on hashed email alone has 63 days. If your deals take longer to close, the fix is a different conversion, not a later upload: what to do when your sales cycle outlasts the window.

How Attribi handles the three click IDs

Attribi is the product I build. Everything in this section was checked against the code.

Capture does not depend on a hidden field. The tracker sends the page URL to our server, and the server reads gclid, wbraid and gbraid from it and stores the value against the visit together with which of the three it was. When the lead later reaches a stage you have mapped, the upload puts that value in the matching field (adIdentifiers.wbraid on the Data Manager API, for example) with the hashed email and phone on the same event. A WBRAID is never sent in the GCLID field. The Google Ads integration page has the rest of what is sent.

If you run without the tracker and let your own form write to the CRM, Attribi reads two fields back from the CRM record: the click ID value and the name of the parameter it came from. That is the two-field design recommended above.

Now the limits.

  • One click ID per visit. When a URL carries a gclid and a gbraid together, we keep the gclid and do not store the gbraid. Google recommends sending both. We send one.
  • The conversion actions Attribi creates count One per click. That is the right default for lead gen and the wrong one for the two iOS parameters, per the error in rule 3. We have not yet tested a WBRAID upload against those conversion actions on the Data Manager API, and we send the hashed email with it, a pairing Google's pages confirm for GBRAID and do not mention for WBRAID. So I will not claim the iOS share works end to end. If iPhone traffic matters to you, change the count setting to Every on the mapped conversion actions in Google Ads and check the upload result on those leads.
  • Nothing recovers a parameter that never reached the page. If a redirect strips the query string before the page loads, there is nothing for any tracker to read.

Conversion uploads are a paid feature. Every new workspace starts with 30 days on the Pro plan, no card required, which is long enough to run uploads on a real campaign and check the iPhone leads yourself.

Frequently asked questions

Is a WBRAID the same thing as a GCLID? No. A GCLID identifies one ad click. A WBRAID is the parameter Google Ads sends in its place on some iOS 14 and later traffic, and Google describes it as working with conversion modeling. Each is uploaded in a separate field.

Can I upload a GBRAID and a WBRAID on the same conversion? No. The Google Ads API rejects that with the error GBRAID_WBRAID_BOTH_SET. A GBRAID can be sent together with a GCLID, and Google's upgrade guide says that combination, with user-provided data on the same row, has been accepted without an error since October 3, 2025.

Why is the GCLID missing on some iPhone clicks from Google Ads? Since April 26, 2021, Google no longer sends the GCLID for iOS 14 traffic coming from ads on what it calls a handful of Google apps, because of Apple's App Tracking Transparency policy. Those clicks carry a WBRAID or GBRAID instead. Google does not publish which apps are affected.

Do I have to turn on GBRAID and WBRAID in Google Ads? There is no separate switch. Both are added by auto-tagging, the same account setting that adds the GCLID, and Google says auto-tagging is on by default for new accounts. Your website has to accept the extra URL parameters and your form or tracker has to store them.

Which conversion count setting works with GBRAID and WBRAID uploads? Every. Google documents that conversion actions using one-per-click counting cannot be used with gbraid or wbraid, and the upload returns ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID. A conversion action set to count One still accepts GCLID uploads.

Can I store a GBRAID or WBRAID in my existing GCLID field? You can store it there, and you will regret it at upload time. Google has a separate field for each of the three, and a value it cannot decode in the field you chose is rejected. Keep either three fields or one value field plus a field naming the parameter.

The takeaway

Go and look at one thing this week: the script behind your form's hidden field. If it reads gclid and nothing else, every iPhone lead that arrived with a wbraid has been saved with a blank, and no upload tool downstream can put it back. Read two more parameters, store which one you got, then check the count setting on the conversion action. If you would rather not own that script, start with 30 days on the Pro plan and let the tracker read the URL.


Attribi tracks every marketing touchpoint and pushes revenue back to your ad platforms, so campaigns optimize on closed deals — not raw form fills. See how it works or start free.