Home / Tracking parameter reference
What each parameter in a Google Ads conversion request means — the conversion, the click it is attributed to, enhanced conversions and the parameters nobody sets — including the ones Google does not document.
A Google Ads conversion goes to googleadservices.com/pagead/conversion/<conversion ID>/,
with a view-through copy to googleads.g.doubleclick.net/pagead/viewthroughconversion/. With the
Google tag and first-party mode it can also appear as /ccm/conversion/ or /pagead/1p-conversion/
on a Google host, or on your own domain through Google tag gateway. The conversion ID is in the path; the label
identifies the conversion action.
Which conversion action, and what it was worth.
| Parameter | What it means |
|---|---|
labelConversion Label | Conversion label — which conversion action in Google Ads this hit reports. |
valueConversion Value | The monetary value reported for this conversion. |
currency_codeCurrency | Currency of the conversion value, ISO-4217. |
oid | Order id, used to drop the same conversion if it is reported twice. A missing or changing oid is how one sale becomes two. |
oidsrc | Where that order id came from — whether you supplied it or the tag made one up. |
bttype | What kind of conversion this is — purchase, lead, signup. It comes from the conversion action in your Ads account. |
What ties the conversion to the ad click that brought the visitor.
| Parameter | What it means |
|---|---|
gclidGoogle Click ID | Google click id. Without it, a conversion cannot be attributed to the ad that produced it. |
gclawGCLID (aw) | The Google click id as stored in the _gcl_aw cookie. |
auid | The Google Ads linker id from the _gcl_au cookie, tying this conversion to the click that brought the visitor. |
gcl_ctr | Counters for the click ids the linker is holding. |
fst | When this browser was first seen for this conversion, in milliseconds. Google uses it against the conversion window. |
Hashed customer data sent with the conversion to improve matching.
| Parameter | What it means |
|---|---|
emEmail (Hashed) | Enhanced conversions email envelope. tv.1~em.<sha256> is correct; a plain address here would be a policy problem. |
phPhone (Hashed) | Customer phone for enhanced conversions, hashed the same way, in E.164 form before hashing. |
ec_mode | Enhanced conversions mode. "a" is automatic, where the tag scrapes the page for an email itself rather than being handed one. |
capi | Enhanced conversions are travelling with this hit. |
emd | Part of the same enhanced-conversions envelope as em. Google does not document its layout, so this panel does not pretend to read it. |
ept | Also part of the enhanced-conversions envelope, and also undocumented. |
Where the conversion happened.
| Parameter | What it means |
|---|---|
url | The page the conversion happened on. Anything personal in this URL is now in the hit as well. |
ref | The page the visitor came from. |
tiba | The page title at the moment the conversion fired. |
hn | The host that received the hit. googleadservices.com is the click-measurement path; a first-party host here means server-side. |
The consent state the tag knew when it sent the conversion.
| Parameter | What it means |
|---|---|
gcsConsent State (gcs) | Consent state at the moment of the hit, read as G1<ad_storage><analytics_storage>: G111 means both granted, G100 means both denied. |
gcdConsent Default (gcd) | The consent defaults the page declared, including ad_user_data and ad_personalization. It tells you what the site asked for before the visitor answered. |
npa | Non-personalised ads. 1 means this hit may not be used for remarketing. |
Set by the tag, not by you. Worth knowing so they can be ignored.
| Parameter | What it means |
|---|---|
random | Cache buster. A fresh number each time so no proxy or browser serves a stored copy of the conversion. |
cv | Version of the conversion tag itself. Nothing you set. |
fmt | Format of the legacy conversion pixel. Left over from the image-tag era. |
bg | Background colour of that legacy conversion image. Cosmetic, and invisible. |
guid | A legacy flag, always ON. It does not carry an id despite the name. |
async | The tag was loaded asynchronously, which is how every modern install works. |
gtm | A version string for the container and tag that fired this. Useful only when Google support asks for it. |
u_w | Screen width in pixels. |
u_h | Screen height in pixels. |
gap.last_random | The cache buster of the previous conversion ping from this page. |
gap.last_label | The conversion label of that previous ping. Two labels in a row from one page is worth a look. |
_tu | An internal Google flag. Not documented. |
category | An internal Google category tag on the request. Not documented, and not the product category. |
ecsid2 | An internal Google session identifier for enhanced conversions. Not documented, and nothing you configure. |
What the browser reports about itself, in place of the old user agent string.
| Parameter | What it means |
|---|---|
uaa | Client hint: processor architecture. |
uab | Client hint: 32 or 64 bit. |
uafvl | Client hint: the full browser version list, which is what replaced the user agent string. |
uamb | Client hint: 1 if this is a mobile browser. |
uam | Client hint: device model, on mobile. |
uap | Client hint: operating system. |
uapv | Client hint: operating system version. |
uaw | Client hint: 1 if this is 32-bit Windows running on 64-bit. |
The checks the Tag Master extension runs on every Google Ads conversion hit it captures. Each is something the platform drops, cuts or misreports without saying so in its own interface.
Dropped or wrongA currency that is not a three-letter code
Platforms cannot convert an unknown currency, so the value is dropped or read as the account default — silently changing what the sale was worth.
Fix: Send the three-letter code: TRY, EUR, USD. Not the symbol, not lowercase.
Dropped or wrongA value that is not a plain number
A value carrying a currency sign, a thousands separator or a comma decimal reads as zero on the platform side.
Fix: Send 1649.25 — no symbols, no spaces, dot as the decimal separator.
Worth a lookA negative value
Unless this is a refund event, a negative value subtracts from reported revenue.
Fix: Send the absolute order value, and use the platform's refund event for returns.
Have a request in front of you? Paste it into the tracking request decoder and every parameter above is named on the hit itself, with these checks run on it. The Tag Master extension does the same for every request on the page, live.
In oid. Google Ads uses it to drop a conversion reported twice for the same order, so a missing or changing oid is how one sale becomes two.
The em parameter should carry a hashed value, written by the Google tag as tv.1~em.
Because the click ID was not kept. The Google tag stores it in the _gcl_aw cookie through the conversion linker; if the linker is missing, consent blocked it, or the visitor crossed domains without the linker, the conversion arrives with no click to attribute to.
Other references: GA4 · Meta Pixel · TikTok Pixel
Tag Master is free, needs no account, and collects no data.
Add to Chrome — Free