Why wbraid exists
Apple's App Tracking Transparency (ATT), introduced with iOS 14.5 in 2021, forced apps to ask permission before tracking users elsewhere — and most users declined. That cut off the identifiers Google's standard gclid relies on for iOS measurement.
To keep campaigns measurable without identifying individuals, Google introduced two privacy-preserving click IDs, wbraid and gbraid. Both are appended automatically by auto-tagging and both work with conversion modeling — Google's method for estimating conversions it can no longer observe one-to-one.
wbraid vs gbraid — the direction that trips everyone up
This pair is constantly stated backwards online. Google's Ads API documentation is the source of truth:
| Parameter | Click direction | Meaning |
|---|---|---|
wbraid | App → Web | User clicks an ad in an iOS app, lands on your webpage |
gbraid | Web → App | User clicks an ad on the web, lands in your iOS app |
For affiliates, wbraid is the one you'll usually see — because your money lands on a webpage (a bridge page or offer), and the click that sent it often came from an ad inside an iOS app. See gbraid for the web-to-app case.
How wbraid behaves
- Where it lands: on your webpage's URL as a query parameter, e.g.
?wbraid=...— read it the same way you readgclid. - Privacy model: aggregated and privacy-preserving; conversions are modeled, not individually attributed.
- Processing time: wbraid- and gbraid-keyed conversions can take up to 72 hours to process, versus under 12 hours for a standard
gclid. - Don't mix them up in uploads: report a wbraid conversion with the wbraid value — the API expects the matching identifier for the click.
What affiliates should do with wbraid
Since wbraid arrives on your webpage, treat it like any landing-page click ID: capture it from the query string on arrival, preserve it through your bridge page and flow, and include it when the conversion is reported to Google. Interpret iOS results as modeled — don't expect the click-for-click reconciliation you'd get from gclid. The tracking-setup playbook shows where this fits in the full stack.