Clicks
Clicks
The decision payload never sends the advertiser landing URL to the client. click_url is a signed GET on serve. Adserver records the click, then 302s to the landing.
Click URL
No HMAC Filled decisions include creative.click_url in the form below. Wire that URL as the href or equivalent. Do not HMAC this GET. The token is the credential. Browsers and WebViews follow the 302.
https://serve.meridianads.tech/v1/click/{token}Local http://localhost:8090/v1/click/{token}
Impression first
Fire POST /v1/events with {"token": "<impression_token>", "event": "impression"} when the creative is rendered. That is not IAB viewability in v1. Clicks without a valid prior impression token are dropped (HTTP 400). A second fire of the same impression token is idempotent.
Token lifetime
| Token | TTL | Bound to |
|---|---|---|
| Impression | 1 hour | Campaign, creative, placement, app |
| Click | 24 hours | The impression token id plus campaign, creative, placement, app |
Landing macros
After a valid click, adserver expands these placeholders on the stored destination, then 302s:
{click_id}{campaign_id}{placement_id}
{user_key} is never expanded. If the landing still contains that token, it is left as literal text. Moderation rejects destinations that try to pass user_key as a query parameter.