All networks
Criteo logo
Tracking reference · Banner / Display

Criteo tracking tokens & macros

Criteo isn't a generic display buy — it's a dynamic retargeting network, serving personalized banner ads to people who've already visited your site rather than cold prospecting new ones. That changes what 'quality' even means for the traffic it sends back: a click here is, by design, someone who's already interacted with your brand once. Appending Criteo's macros lets ValidVisit attribute each of those return visits to the campaign, publisher domain, and placement that produced it, and score it 0-100 so a quiet drop in traffic quality on retargeted clicks doesn't hide inside an otherwise-healthy number.

Cross-check any macro against the network’s official documentation. Criteo official docs →

5
Criteo macros mapped to attribution
1
required for attribution
no-hop
one script, no link rewriting
0–100
quality score on every visit

{{criteo_campaign_id}} is the required token and anchors every visit to its retargeting campaign. {{domain}} is the one worth building your reporting around — it's the publisher domain where the banner actually rendered, and because Criteo buys across a wide programmatic footprint of publisher inventory, that domain can vary enormously from one impression to the next even within a single campaign. {{width}} identifies the slot size the ad ran in, which doubles as a rough placement descriptor. {{adid}} and {{creative_type}} identify the specific dynamic ad and which creative template (single-product, carousel, and so on) generated it, useful given how much of Criteo's creative is auto-assembled per user rather than fixed. All five populate automatically once they're appended as parameters on your landing page URL, with no additional tagging required beyond that.

A spike in low-quality traffic on retargeted clicks is its own kind of signal worth watching separately from prospecting traffic, since these are supposed to be warm visits from people who already showed interest — a domain that's suddenly sending a lot of return-visit clicks that don't look like real return visitors is a specific and useful thing to catch. ValidVisit's part is limited to that detection, scoring, and reporting; it doesn't have a way to stop Criteo from serving on a given domain or adjust bids on your behalf. If {{domain}} keeps surfacing the same low-scoring publisher, the follow-through happens inside your Criteo account — excluding that publisher domain from the campaign's supply, adjusting the campaign's site or category settings, or tightening the retargeting audience itself.

MACRO MAP

Criteo macro → ValidVisit param

Campaign ID *campaign
Criteo macro
{{criteo_campaign_id}}
ValidVisit param
vv_campaign_id
Example
123456
Publisher Domainpublisher
Criteo macro
{{domain}}
ValidVisit param
vv_publisher_id
Example
pub_42
Slot Widthplacement
Criteo macro
{{width}}
ValidVisit param
vv_placement_id
Example
plc_7
Ad IDad
Criteo macro
{{adid}}
ValidVisit param
vv_ad_id
Example
456789
Creative Typecreative
Criteo macro
{{creative_type}}
ValidVisit param
vv_creative_id
Example
987

* required for Criteo attribution.

TRACKING URL

Ready-to-use Criteo tracking URL

criteo tracking URL
https://yoursite.com/landing
?utm_source=criteo
&utm_medium=banner
&vv_campaign_id={{criteo_campaign_id}}
&vv_publisher_id={{domain}}
&vv_placement_id={{width}}
&vv_ad_id={{adid}}
&vv_creative_id={{creative_type}}

Append these params to your landing-page URL — Criteo fills the macros at click time, so every visit arrives attributed and ready to score. No funnel hop.

Found a bad publisher domain? Exclude it in Criteo

The buyer pastes the bad domains/app-bundle IDs (one per line, no http/https) or uploads a .txt/.csv blocklist (up to 100,000 domains per upload, 255 chars/entry) and applies it to the ad set/line item; it takes effect within ~1 hour.

Commerce Growth: ad set > Refine your targeting > Placement Targeting (allow/deny websites & apps, plus a Supply Vendors toggle). Commerce Max: Shared Library > Domain/App Lists to build the list, then line item > Targeting step > Domain Lists / App Bundle Lists section to apply it
FAQ

Criteo tracking token FAQs

Why does traffic quality matter differently for a retargeting network like Criteo?+

Retargeted clicks are supposed to come from people who already visited your site, so they should generally score cleaner than cold prospecting traffic. A publisher domain sending a lot of low-quality 'return visits' is a distinct signal worth catching separately, which is what {{domain}}-level scoring is for.

Which token identifies the publisher where the ad rendered?+

{{domain}}. Because Criteo buys across a broad programmatic footprint, the publisher domain can vary widely between impressions even inside one campaign, so it's the key dimension for spotting a specific low-quality source.

Can I exclude a bad publisher domain directly through ValidVisit?+

No — ValidVisit only detects, scores, and reports. If a domain keeps scoring poorly, you exclude it yourself inside your Criteo account, either through the campaign's site settings or by adjusting its supply and audience configuration.

Is Criteo traffic real? See how ValidVisit scores every Criteo click for bots and invalid traffic.
auto-surf.example25
zone 787072
market-daily.example91

Score every Criteo click — and find the fake ones.

See which Criteo publishers and placements send real buyers vs. bots.

Just your email · no card · unsubscribe anytime · privacy policy

Free trial at launch · just your email

One script · no cookies · no fingerprinting · raw IP never stored