Skip to content
 

Tracking Macros

Use a tracking macro only when your landing URL template needs AON to place a value at a specific location. The available Partner-facing macros are {CLICK_ID} for click attribution and {PSEUDO_USER_ID} for a best-effort pseudonymous identifier.

Templates opt in explicitly

AON expands {PSEUDO_USER_ID} only when your landing URL template contains that exact macro. It is not automatically appended to a destination URL.

Configure the template

Add a macro where your landing page expects a URL-component value:

https://partner.example/landing?click_id={CLICK_ID}&visitor={PSEUDO_USER_ID}

You can use either macro more than once. Each occurrence receives the same value for that click. If your template has no {PSEUDO_USER_ID}, AON does not derive, persist, or deliver a Pseudo User ID for that redirect.

MacroUse it forHow it is delivered
{CLICK_ID}Per-click attribution and later conversion/postback matchingAON creates an aci_... public click ID after accepting the click. If this macro is absent, existing AON aon_click_id fallback behavior still applies.
{PSEUDO_USER_ID}A best-effort, click-time pseudonymous identifier for a Partner landing pageAON uses a valid inbound pseudo_user_id first, otherwise follows the fallback rules below. It is not an account ID, authentication credential, or cross-device identity claim.

Pseudo User ID selection

An inbound pseudo_user_id is AON-owned input: AON selects the first valid, non-empty value and consumes all matching inbound parameters. “Consumed” means the value is not forwarded as a normal query parameter to your destination. It does not mean that AON erases existing click diagnostics.

When there is no valid explicit value and your template contains {PSEUDO_USER_ID}, AON derives a 32-character lowercase hexadecimal MD5 value:

MD5(UA bytes + canonical IP text bytes)

The normal path uses the original User-Agent byte sequence immediately followed by the canonical client IP text byte sequence: no separator, no salt, and no extra normalization of the User-Agent. This makes the value reproducible for the same normal inputs, but it is still only a best-effort pseudonymous value.

Weak-input behavior

For a normal aon.link redirect, a valid User-Agent or trusted client IP can be missing. To avoid merging many unrelated visitors under weak inputs, AON uses the available User-Agent bytes and/or canonical IP text bytes plus the current {CLICK_ID} bytes before calculating MD5. The result is click-scoped: it intentionally degrades to a value unique to that click, not a stable identifier across clicks.

Static Offerwall redirects use the trusted edge input contract and require both User-Agent and client IP. Their normal fallback therefore uses the regular MD5 formula above rather than the weak-input, click-scoped branch.

URL safety and redirect behavior

Macro values are URL-component encoded before insertion. An explicit Pseudo User ID containing &, #, %, spaces, or non-ASCII UTF-8 text remains one value; it cannot add query parameters or change a fragment boundary.

For Static Offerwall, the existing three-second deduplication window treats the effective Pseudo User ID as part of the click identity only when this macro is present. The same effective value can reuse the existing click chain during the window. A different valid explicit value creates an independent click chain so the redirect cannot return the first visitor's value. This does not change the normal redirect-template or campaign-query contract.

Persistence and privacy

When AON actually expands {PSEUDO_USER_ID}, the delivered value can be kept in click diagnostics such as macro_values and the final redirect URL. Normal redirect request URLs or parameters may also retain their existing diagnostic record. The value is delivered to the Partner whose template contains the macro.

Do not put direct identifiers or sensitive personal data in pseudo_user_id. The fallback is not a user account, a credential, a fraud decision, or a guarantee of anonymity. Use {CLICK_ID} for click attribution and retain the Partner-side consent, retention, and privacy controls appropriate for your integration.