The tokens, by position
| Position in the tag | Token | Encoding |
|---|---|---|
| URL prefix (directly before the landing URL) or standalone click value | ${CLICK_URL} |
None |
| Inside a URL query-param value | ${CLICK_URL_ENC} |
Single-encoded |
| Nested two redirects deep (inside an already-encoded URL) | ${CLICK_URL_ENC_ENC} |
Double-encoded |
| Cachebuster (anywhere a random value is needed) | ${CACHEBUSTER} |
— |
Same counting rule as every ad server: zero URLs deep — macro first,
landing URL after — is ${CLICK_URL}. One deep — the click
URL rides as a query-param value inside another URL — is ${CLICK_URL_ENC}.
Two deep is ${CLICK_URL_ENC_ENC}. Get the level wrong in
either direction and the redirect chain mangles or drops the landing URL.
A correct DV360 tag
<!-- Image creative trafficked to Display & Video 360:
${CLICK_URL} as the URL prefix, right before the landing URL -->
<a href="${CLICK_URL}https://example.com/summer-lineup" target="_blank">
<img src="https://cdn.example.com/creatives/summer-300x250.jpg"
width="300" height="250" border="0" alt="Summer Lineup" />
</a>
<!-- Click URL handed to a vendor script as a query-param value:
the single-encoded ENC form, plus the DV360 cachebuster -->
<script src="https://ad.example.net/serve.js?click=${CLICK_URL_ENC}&cb=${CACHEBUSTER}"></script>
The wrong-platform trap
DV360 expands only its own documented ${...} tokens. Paste GAM's
%%CLICK_URL_UNESC%%, Equativ's [countgo], or The Trade Desk's
%%TTD_CLK%% into a tag destined for DV360 and the platform serves the token
as literal text — the landing page usually still loads, so nothing looks
broken, but every click goes unreported. That silence is the expensive part.
CreativeValidator classifies any foreign click token as
WRONG PLATFORM MACRO before the tag ships.
Source and verification
Primary source: Display & Video 360 macro documentation. These tokens are docs-derived: correct to Google's published DV360 documentation, but not behaviorally verified the way CreativeValidator's Google Ad Manager tokens are (those ran through a live GAM test network). Confirm in DV360 before launch.
Paste your tag — the validator renders it and tells you if clicks will actually track: native macro, unfilled placeholder, wrong-platform token, or hardcoded URL.
Test a DV360 tag now →Every rule cites its primary source — see the Policy Studio.
FAQ
What is the difference between ${CLICK_URL} and ${CLICK_URL_ENC}?
${CLICK_URL} is unencoded — a URL prefix directly before the landing URL, or
standalone as the click value. ${CLICK_URL_ENC} is single-encoded, for a
click URL that sits inside another URL's query-parameter value.
When do I need ${CLICK_URL_ENC_ENC}?
When the click URL is nested two redirects deep — inside a URL that is itself already percent-encoded. That is the double-encoded case.
Does DV360 have a cachebuster macro?
Yes — ${CACHEBUSTER}, wherever the tag needs a random value.
Are these DV360 macros behaviorally verified?
No — they are derived from Google's DV360 documentation. Only the GAM tokens are behaviorally verified against a GAM test network. Confirm in DV360 before launch.