single php

What are GCLID, GBRAID and WBRAID parameters? The Complete 2026 Guide to Google Click Identifiers

·

·

If you run Google Ads, you have probably seen GCLID disappear on iOS clicks, GBRAID and WBRAID show up in URLs you donโ€™t recognise, and conversion data quietly stop matching what your CRM sees. This guide explains every Google click identifier, when each one fires, why iOS strips them before they reach your site, and how to capture them reliably enough to keep Smart Bidding fed.

In one line: GCLID is Googleโ€™s deterministic click identifier – one click, one ID, full attribution. GBRAID is the privacy-preserving identifier for iOS users clicking a Google web ad heading to your iOS app. WBRAID is the privacy-preserving identifier for iOS users clicking an in-app ad that lands on your website.

The rest of this guide covers what those one-line definitions leave out: when each parameter is used, the 2025โ€“2026 changes most teams missed, and what to do when iOS 17 strips the parameter before your page even loads.

At a glance: GCLID, GBRAID, and WBRAID compared

 GCLIDGBRAIDWBRAID
Stands forGoogle Click IdentifierGoogle Browser Ad IdentifierWeb Browser Ad Identifier
When Google sets itEvery Google Ads click on a non-iOS device, or iOS with ATT consentiOS click on a Google web property heading to your iOS appiOS click inside an app heading to your website
Tracking precisionUser-level, deterministicCohort-level, aggregatedCohort-level, aggregated
Eligible for offline conversion importYes, full supportYes, conversion count must be “Every”Yes, conversion count must be “Every”
Simultaneous import with another IDYes (paired with GBRAID since Oct 2025)Yes (paired with GCLID since Oct 2025)No, import WBRAID alone
Stripped by iOS 17 Link Tracking ProtectionYes, Mail, Messages, Safari Private BrowsingYes, same surfacesLess affected (click originates inside an app)
Case sensitiveNoYesYes

The last two rows matter most. The case-sensitivity rule trips up almost every team that builds custom capture logic. The iOS 17 row is what no 2023-vintage guide on this topic covers.

What is GCLID?

GCLID, short for Google Click Identifier, is the unique tracking parameter Google Ads automatically appends to your landing page URL whenever someone clicks one of your ads.

A real GCLID URL looks like this:

https://example.com/?gclid=Cj0KCQiA2KitBhCIARIsAPP...EALw_wcB

Each GCLID is unique to a single click – no two clicks ever share one. That is what makes it deterministic, and why it is the gold standard when you need to tie one specific click to one specific conversion, whether that happens five minutes later in a checkout flow or three weeks later in a sales call. For a deeper look at how GCLID feeds into attribution, see our guide to GCLID conversion tracking.

When the user lands on your site, GCLID carries:

  • Source and medium – so GA4 reports the click as google / cpc rather than direct traffic
  • Campaign, ad group, and ad ID for performance at every level of the account
  • Keyword and match type so you can see which search terms drove revenue
  • Network – separating Search, Display, YouTube, and Performance Max performance
  • Landing page and device for downstream segmentation

For GCLID to appear, two things must be true. First, auto-tagging must be enabled in your Google Ads account (on by default in new accounts). Second, your destination URL must accept arbitrary URL parameters, some WordPress security plugins, Cloudflare workers, and custom router middleware strip unknown parameters before the page renders.

GCLID is set on: desktop browsers (all OS), Android (all browsers), iOS with ATT consent, and iOS on Google web properties when the user is signed in with consent.

GCLID is not set when the user is on iOS without ATT consent, when the click passes through a surface affected by iOS 17 Link Tracking Protection (covered below), or when auto-tagging is disabled.

What is GBRAID?

GBRAID is the parameter Google Ads sends instead of GCLID when an iOS user clicks your ad on a Google web property and is heading to your iOS app. It stands for Google Browser Ad Identifier. Unlike GCLID, GBRAID is not user-level, it is a cohort-level signal designed to feed Googleโ€™s modeling systems without identifying any individual. That is what makes it ATT-compliant.

See the official GBRAID URL parameter documentation for Googleโ€™s full definition.

A real GBRAID URL looks like this:

https://example.com/?gbraid=0AAAAAoUYs8dnyFUYKmISDSbU3aPMF3dAh

What GBRAID supports:

  • Web-to-app and web-to-web attribution on iOS where GCLID cannot be used
  • Conversion modeling, which fills in gaps when direct click-to-conversion mapping is not possible
  • Offline conversion import with the constraint that the conversion action must count “Every” rather than “One” (the most common cause of upload errors)
  • Smart Bidding signals for both Target CPA and Target ROAS

What GBRAID does not support: custom conversion variables in the Google Ads API. If your conversion import logic relies on custom_variables, that path only works for GCLID-attributed conversions.

One critical detail: GBRAID is case-sensitive. Do not lowercase it, uppercase it, or strip characters in your CRM. Store it exactly as Google sent it.

For setup guidance, see our overview of GBRAID and WBRAID offline conversion tracking.

What is WBRAID?

WBRAID stands for Web Browser Ad Identifier. It is what Google appends when an iOS user clicks your ad inside an app and lands on your website. This is the direction several published guides get backwards:

  • GBRAID = web โ†’ app (click on a Google web property, destination is your iOS app)
  • WBRAID = app โ†’ web (click inside an app, destination is your website)

A real WBRAID URL looks like this:

https://example.com/?wbraid=Cj0KCQiA-_VuBhDqARIsAEd2HcYx...

Both GBRAID and WBRAID behave similarly downstream: both are aggregated rather than user-level, both are case-sensitive, both feed Googleโ€™s conversion modeling. The reason there are two parameters is that the modeling logic differs by journey direction. If you canโ€™t remember which is which: WBRAID lands on the Web.

For implementation specifics, see WBRAID offline conversion tracking.

The same offline conversion import rules apply as GBRAID: conversion count must be set to “Every”, custom conversion variables are not supported, and WBRAID is case-sensitive. As of October 2025, WBRAID does not support simultaneous import with another identifier โ€” import WBRAID alone. See the official iOS 14+ campaign measurement guide for Googleโ€™s full technical detail.

When Does Google Use GCLID, GBRAID, or WBRAID? The Decision Logic

The decision Google makes is mechanical:

  1. Non-iOS device (desktop, Android)? Google sends GCLID. End of decision tree.
  2. iOS user with ATT consent? Google sends GCLID even on iOS.
  3. iOS click on a Google web property heading to your iOS app? Google sends GBRAID.
  4. iOS click inside an app heading to a website? Google sends WBRAID.
  5. Click through Mail, Messages, or Safari Private Browsing? iOS 17 Link Tracking Protection may strip the parameter before the page loads.
This image explains on which google click identifier does the click get assigned.

A note on Android: Android always uses GCLID. There is no Android equivalent of GBRAID or WBRAID. A note on auto-tagging: none of this works without auto-tagging enabled. If you inherited an account with it turned off, that is the first place to look when click IDs are missing across the board.

Our Google Ads conversion tracking setup guide walks through this.

Why GCLID Disappears on iOS, and How iOS 17 Makes it Worse?

The 2021 story is the one most articles still tell: Appleโ€™s App Tracking Transparency (ATT) required apps to ask users for permission to track them across apps and websites. Most users said no. Because GCLID can in theory link a click to a specific user, Google stopped sending it on iOS without ATT consent. GBRAID and WBRAID were the privacy-preserving alternatives Google introduced to keep signal flowing to the bidding models.

The 2026 reality has two more layers on top of that.

The iOS 17 layer (September 2023)

Apple introduced Link Tracking Protection. When a user opens a link in Apple Mail, Apple Messages, or Private Browsing in Safari 17, iOS now actively strips known tracking parameters from the URL before the page loads. GCLID is on the strip list. So is fbclid, msclkid, and others. UTM parameters generally survive, so aggregate channel reporting still works, but the deterministic click identifier does not arrive at your server. A non-trivial slice of your iOS traffic now lands with no click identifier at all, even when GCLID would otherwise have been valid. GBRAID is also affected in those same surfaces.

The iOS 26 layer (September 2025 onwards)

The industry concern is that Apple will extend LTP-style stripping to all Safari sessions rather than just Mail, Messages, and Private Browsing. Apple has not confirmed this, and we have not seen confirmed evidence of a full rollout in the current iOS 26 build. What is confirmed: every major measurement vendor is designing for the case where it does happen. That means designing your architecture for it too.

The implication most guides skip: even when you do everything right with GBRAID and WBRAID, Apple can strip the parameter before the page loads. Server-side and first-party domain tracking become the only reliable recovery path. URL-parameter capture alone will not be enough going forward.

How to Capture GCLID, GBRAID, and WBRAID? The Implementation Guide

There are three layers to capturing these well. Most teams stop at the first and wonder why their conversion match rate is below 70%.

Client-side capture – the basics

The minimum viable setup: a small script that reads click ID parameters off the URL on page load, stores them in localStorage, and writes them into a hidden field on every form so they ride to your CRM with each lead.

const params = new URLSearchParams(window.location.search);

['gclid', 'gbraid', 'wbraid'].forEach(key => {

ย  const value = params.get(key);

ย  if (value) {

ย ย ย  localStorage.setItem(key, value);

ย ย ย  document.cookie = `${key}=${value}; path=/; max-age=7776000; SameSite=Lax`;

ย  }

});

Where this breaks:

  • Single-page apps that mount routes client-side may strip query parameters during hydration. The script must fire before the router takes over.
  • Cookie consent banners that block scripts until accept. If the user navigates away first, the original landing URL is lost.
  • iOS 17 Link Tracking Protection removes the parameter before the page loads. There is nothing for the script to read.
  • Safari ITP caps JS-set first-party cookies at 7 days. If your sales cycle is longer than a week, client-side alone will under-attribute.

Server-side capture – What to do When Client-side Breaks?

Server-side tagging means the click ID is read on the server when the page is requested, not in the browser after the page loads. In practice this looks like one of three setups:

  • Server-side Google Tag Manager (sGTM), where a container on your own subdomain receives the page request, captures the click ID, and writes a first-party cookie that survives ITP longer than the JS-set version.
  • A custom first-party endpoint that your site posts to on every page load, storing click IDs server-side against a session.
  • A purpose-built 1PD Ops or signal layer that does both, plus identity resolution, so the same click ID gets stitched to a customer profile when a lead later submits a form, signs up, or buys. This is where CustomerLabs sits in the stack more on that below.

Server-side does not fully solve iOS 17 LTP. If Apple stripped the parameter, your server never sees it either. What server-side does is preserve the parameter through every step after it arrives. In practice, a well-built server-side setup takes iOS click ID recovery from roughly 60% on a client-side-only setup back to the 90%-plus range.

Offline Conversion Import: The 2025โ€“2026 Changes Most Teams Missed

If your sales cycle exceeds the conversion attribution window, or your conversions happen in a CRM rather than on the website, you need to import those conversions back to Google Ads using the click ID. See the full offline conversions in Google Ads documentation for the complete API reference. Two material changes from the past year that most teams have not absorbed:

Change 1: Simultaneous GCLID + GBRAID import (October 2025)

The original rule was that a single conversion import had to specify exactly one of GCLID, GBRAID, or WBRAID. As of early October 2025, GCLID and GBRAID can be imported together on the same conversion event. This matters for web-to-app journeys where you have captured both identifiers from the same user. WBRAID is not part of this change โ€” import WBRAID alone.

Change 2: Data Manager API as the ingestion standard (early 2026)

Google has been migrating first-party data ingestion to the unified Data Manager API. New features like session attributes are gated to Data Manager API users. If your offline conversion pipeline still uses the old endpoints it will continue to work, but you will be locked out of recent improvements.

The detail nobody tells you upfront: when you create a conversion action that will receive GBRAID or WBRAID imports, the conversion count must be set to “Every” rather than “One”. If set to “One”, the API rejects your upload with an error that does not clearly explain why.

Session attributes are an aggregated identifier you can capture browser-side and import alongside (or instead of) GCLID, GBRAID, or WBRAID. The use case is the conversion where everything else is missing. They are not a replacement for click IDs โ€” they are the safety net under everything else.

When GCLID, GBRAID, or WBRAID Stops Appearing, How to Troubleshoot?

When click IDs stop showing up, the cause is almost always one of these seven things, in roughly the order you should check them.

  • Auto-tagging is disabled. Google Ads > Admin > Tracking and templates. If auto-tagging is off, no GCLID, no GBRAID, no WBRAID.
  • The landing page strips unknown URL parameters. Verify by manually appending ?gclid=test123 to a clean version of the landing URL and watching what reaches analytics. Common culprits: WordPress security plugins, Cloudflare workers, and SPA router middleware.
  • iOS 17 Link Tracking Protection. If the click came through Mail, Messages, or Safari Private Browsing on iOS 17+, the parameter was stripped by the browser. There is no fix on your side. The mitigation is server-side capture and first-party context.
  • Single-page app routing. Your server response includes the parameter, but the client-side router rewrites the URL during hydration and the parameter is gone before analytics fires. Capture as early in the page lifecycle as possible.
  • Cookie consent banner blocking the script. If your CMP delays GTM until after the user acts, and the user navigates away first, the click ID never gets stored. Server-side capture sidesteps this entirely.
  • Conversion match rate below 80%. Open Google Ads, click into the conversion action, and check Diagnostics. Match rate is the percentage of imported conversions Google was able to match to a click. Below 80% is a sign something earlier in the chain is broken.
  • Wrong identifier in the API call. You can only adjust a conversion by the identifier it was originally created with. GCLID can be adjusted by GCLID; WBRAID and GBRAID conversions can be adjusted by order ID if you set one at conversion creation time.

If you have checked all seven and click IDs are still missing reliably, the issue is almost certainly architectural, your capture layer needs to move server-side.

How CustomerLabs Captures GCLID, GBRAID, and WBRAID End to End

CustomerLabs bridges the gap between โ€œcapture the click ID on landingโ€ and โ€œsend the right identifier to Google for offline conversion importโ€ without the GTM hacks. The CustomerLabs Google Ads integration uses external user IDs to stitch click IDs to customer profiles across every touchpoint.

What that looks like in practice:

  • Auto-captures GCLID, GBRAID, and WBRAID server-side from web and app clicks, including the iOS surfaces where client-side capture is fragile
  • Stores each click ID against a unified user profile via identity resolution, so the right identifier is forwarded downstream regardless of whether the conversion happens online, offline, by phone, or in your CRM
  • Sends conversions to Google Ads via the Data Manager API with support for the simultaneous GCLID + GBRAID import available since October 2025
  • Handles the “Every” conversion count requirement, case-sensitivity of GBRAID and WBRAID, and identifier-mismatch errors automatically

Most teams move the capture layer to CustomerLabs in days, not quarters, and see improved match rates inside the first week.

Book a demo to see the click ID capture flow on your own data.

Frequently Asked Questions (FAQs)

When you have Google Click ID (GCLID), a unique ID that is automatically assigned to the user who clicks on a specific ad. Now, you can track the entire journey of that user on the website. For example, you can know how much time that specific user has spent on your website, what all pages did they visit and what actions did they take. This helps you understand the user behavior and craft detailed personalized strategies that help you deliver personalized ads.
GCLID tracks only the traffic that comes through Google Ads Network. When you receive traffic from Facebook or other social media or some other ad platform, you cannot track them with GCLID as it is not assigned to those users. There are different parameters to track such traffic.
For every single click, Google generates an automatic unique code that is assigned and that is why it is called GCLID or the Google Click ID. There is no chance that two different clicks have a single GCLID. Therefore, you can be rest assured that it is a unique ID for a specific click and helps you see the customer journey for every single click differently. And when you use advanced parameters, you can bring all those various touchpoints at one place and then understand the user behavior in detail.
GCLID stands for Google Click Identifier. It is a unique tracking parameter Google Ads automatically appends to the destination URL of an ad whenever a user clicks it.
UTM parameters are manual, set by the marketer, and the same UTM string is shared by every click on a given ad. GCLID is automatic, set by Google, and unique to every individual click. UTMs answer "which campaign did this click come from?" GCLID answers "which exact click was this?" Most accounts use both: UTMs for campaign reporting, GCLID for conversion attribution.
You will not normally see both in the URL at the same time. Google sends one or the other depending on the click context. You can, as of October 2025, import both identifiers on the same conversion event in Google Ads when you have captured both for the same user across the journey.
Google does not publish a fixed maximum length. In practice, GCLID values run to roughly 70 to 100 characters, and GBRAID and WBRAID values fall in a similar range. Your storage layer should treat all three as variable-length strings up to 200 characters to be safe. Do not truncate them.
No. Android always uses GCLID, regardless of browser or app surface. If you see GBRAID or WBRAID values in your Android traffic, something else is wrong, usually a referrer issue or a hardcoded tracking template.
You lose attribution for that click. The fix is either to whitelist gbraid (and wbraid, and gclid) in whatever middleware is stripping it, or to move click ID capture server-side so the parameter is read before the rewrite happens.
Yes. The Google Ads API and Data Manager API both accept GBRAID and WBRAID for offline conversion import. The conversion action must be set to count "Every" rather than "One". Custom conversion variables are not supported on GBRAID or WBRAID conversions, only on GCLID conversions.
No. Google has been explicit that GCLID will continue to be used on every surface where it is allowed. GBRAID and WBRAID exist for the iOS contexts where GCLID cannot be sent compliantly. They are alternatives where GCLID cannot be used, not replacements for GCLID where it can.
GCLID is Google's click identifier. FCLID, more commonly written as fbclid, is Meta's. They are conceptually similar but technically separate, governed by different ad platforms and used by different attribution flows. If you run both Google and Meta ads, you need to capture both, and you handle the iOS 17 stripping problem on each independently.
Three places to look. First, in Google Ads, open the conversion action and check the Diagnostics tab; aim for a match rate above 80%. Second, in GA4, run a report on the Session source / medium dimension and confirm Google CPC traffic has GCLID-attributed sessions. Third, in your CRM or backend, sample recent leads from paid search and verify the GCLID field is populated. If any of these three is below expectation, work back through the seven troubleshooting items above.

Seasoned content marketer, creating impactful content in a wide range of topics relating to Digital marketing, SEO, Food and Cosmetics industry and lately into SaaS technology. Optimizing brands amplify their online presence through strategic storytelling and technical precision. Additionally, has interest into drawing and occasionally poses as a motivational speaker.

The latest news, perspectives, and insights from CustomerLabs

More Blogs

View all
What is First-Party Data? Comparisons, Benefits, Use cases and Strategies Explained
What is First-Party Data? Comparisons, Benefits, Use cases and Strategie...

Explore what is first-party data, comparison with other types, its importance & how to collect, unify, segment and activate for businesses.

Read more
Google Ads Retargeting with First-Party Data (Step-by-Step for E-commerce)
Google Ads Retargeting with First-Party Data (E-commerce)

Google Retargeting with first-party data helps increase the Google retargeting Ad Campaign performance & adds 20% Revenue despite iOS14 updates

Read more
This is a banner image with the text "What is Google Customer Match_ And how to improve them_"
What is Google Customer Match Rate? How to Improve them Using First-part...

We improved the Google customer match upto 80% using first-party data for both known and anonymous website visitors despite iOS'14+ update.

Read more

Get started with
CustomerLabs 1PD Ops

Schedule a 1-1 Demo