How to read this
Each ad server expands its own click token at serve time, substituting the real click-through URL. The token you need depends on where the macro sits in your tag:
- URL prefix / standalone — the macro comes right before the landing URL, or stands alone as the click value. This is the common case.
- Nested in a query parameter — the click URL is itself a value inside another URL's query string, so it must be URL-encoded (the "ESC" / "ENC" variant).
- Double-nested — encoded twice, for a click URL nested two redirects deep.
A note on trust, stated the way our scanner states it: the Google Ad Manager tokens below are verified against GAM behavior. The DV360, Xandr, Adform, and Equativ tokens are derived from each platform's public documentation and are not independently GAM-verified — correct to the docs, but confirm in the destination platform before launch.
Google Ad Manager ✓ verified
| Position | Token |
|---|---|
| URL prefix / standalone | %%CLICK_URL_UNESC%% |
| Nested in query param | %%CLICK_URL_ESC%% |
| Double-nested | %%CLICK_URL_ESC_ESC%% |
| Cachebuster | %%CACHEBUSTER%% |
DCM/CM360 INS tags use a data-dcm-click-tracker attribute instead — when it
is filled, clicks are tracked through the Campaign Manager chain rather than a GAM macro.
Display & Video 360 (DV360) docs-derived
| Position | Token |
|---|---|
| URL prefix / standalone | ${CLICK_URL} |
| Nested in query param | ${CLICK_URL_ENC} |
| Double-nested | ${CLICK_URL_ENC_ENC} |
| Cachebuster | ${CACHEBUSTER} |
Xandr / Microsoft Monetize docs-derived
| Position | Token |
|---|---|
| URL prefix / standalone | ${CLICK_URL} |
| Nested in query param | ${CLICK_URL_ENC} |
| Double-nested | ${URL_ENC(${CLICK_URL},2)} |
| Cachebuster | ${CACHEBUSTER} (or ${AUCTION_ID}) |
Monetize has no _ENC_ENC token — double encoding uses the
URL_ENC function macro with an explicit encode count, as shown above.
Adform docs-derived
| Position | Token |
|---|---|
| URL prefix / standalone | %%c1;cpdir= |
| Nested in query param | %%ec1%3Bcpdir= |
| Double-nested | no documented token — encode manually |
| Cachebuster | __ADFRND__ (also __ADFTIMESTAMP__) |
Adform's nested form manually percent-encodes the ;cpdir= separator
(%3B) — the shape Adform's own nested-redirect examples use. Note the
case-sensitive clickTAG variable name in the creative itself.
Equativ (Smart AdServer) docs-derived
| Position | Token |
|---|---|
| URL prefix / standalone | [countgo] |
| Nested in query param | [countgoEncoded] |
| Double-nested | no documented token — encode manually |
| Cachebuster | [timestamp] |
[timestamp] is a real Equativ macro, so a tag already carrying it is
cachebusted for this server — no separate cachebuster needed.
Paste a tag and pick the destination ad server. CreativeValidator tells you whether its click macro is native, a wrong-platform macro, an unfilled placeholder, or hardcoded — before it costs you a campaign's click data.
Check a tag's click truth →The failure this prevents
The most expensive click mistake in ad ops is invisible: a tag that looks macro'd, passes a glance, and gets trafficked to the wrong platform — where the macro is never expanded and every click goes untracked. There is no error, just a hole in reporting. Matching the token to the destination server, every time, is the fix.