Reference · Xandr / Microsoft Monetize · Click macros

Xandr / Microsoft Monetize Click Macros

Monetize looks like DV360 at first glance — ${CLICK_URL} and ${CLICK_URL_ENC} are spelled identically — but the double-encoding path is completely different: there is no _ENC_ENC token. Here is the position map, derived from Microsoft's Monetize documentation.

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 (double encoding) ${URL_ENC(${CLICK_URL},2)} Function macro, encode count 2
Cachebuster ${CACHEBUSTER} (or ${AUCTION_ID})

The one that trips people up is row three. Where DV360 has ${CLICK_URL_ENC_ENC}, Monetize instead exposes a URL_ENC function macro that takes the value to encode and an explicit encode count — so double encoding is written ${URL_ENC(${CLICK_URL},2)}, not a dedicated token. Monetize also accepts ${AUCTION_ID} as cachebusting entropy alongside ${CACHEBUSTER}.

A correct Monetize tag

<!-- Image creative trafficked to Xandr / Microsoft Monetize:
     ${CLICK_URL} as the URL prefix, right before the landing URL -->
<a href="${CLICK_URL}https://example.com/new-arrivals" target="_blank">
  <img src="https://cdn.example.com/creatives/arrivals-300x250.jpg"
       width="300" height="250" border="0" alt="New Arrivals" />
</a>

<!-- Click URL handed to a vendor script as a query-param value:
     single-encoded ENC form; two redirects deep would use ${URL_ENC(${CLICK_URL},2)} -->
<script src="https://ad.example.net/serve.js?click=${CLICK_URL_ENC}&amp;cb=${CACHEBUSTER}"></script>

The wrong-platform trap

Monetize expands only its own documented tokens. Paste GAM's %%CLICK_URL_ESC%% or Adform's %%ec1%3Bcpdir= into a tag destined for Xandr and the platform serves the token as literal text — the creative renders, the landing page loads, and every click vanishes from reporting without a single error. And because the base tokens happen to match DV360's spelling, the reverse mistake is just as quiet: a Monetize-style ${URL_ENC(${CLICK_URL},2)} means nothing to DV360. CreativeValidator classifies any foreign click token as WRONG PLATFORM MACRO so the gap is caught pre-flight.

Source and verification

Primary source: Xandr / Microsoft Monetize supported creative macros documentation. These tokens are docs-derived: correct to Microsoft's published documentation, but not behaviorally verified the way CreativeValidator's Google Ad Manager tokens are (those ran through a live GAM test network). Confirm in Monetize 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 Xandr tag now →

Every rule cites its primary source — see the Policy Studio.

FAQ

Does Monetize have a CLICK_URL_ENC_ENC macro?

No. Monetize documents no _ENC_ENC token — double encoding uses the URL_ENC function macro with an explicit encode count: ${URL_ENC(${CLICK_URL},2)}.

Which macro goes directly before the landing URL?

${CLICK_URL}, as a URL prefix or standalone click value. ${CLICK_URL_ENC} is the single-encoded form for query-param placement.

Can ${AUCTION_ID} be used for cachebusting?

Yes — ${CACHEBUSTER} is the standard cachebuster, and ${AUCTION_ID} is also accepted as cachebusting entropy.

Are Xandr and DV360 click macros interchangeable?

The base tokens share spelling, but the platforms diverge on double encoding, and each expands only what its own docs define. Validate against the destination platform every time.