SceneContext Labs / clearTag
bench · API · live traffic

Ad platform coverage

Which ad stacks clearTag understands, where the enrichment lands in each, and what it is guaranteed never to touch. This list is generated from the adapters running in this build and their live host allowlists — it cannot describe support that is not there.

How it works

player real device clearTag adds signals to the tag ad server GAM / SSP 1. your tag 2. 302 enriched 3. player calls the ad server directly — real IP, real user agent never fetched
clearTag rewrites the tag and hands it back as a 302. It never fetches the ad itself, so the ad server still sees the viewer's device rather than a datacentre — geo, frequency capping and fraud signals are unchanged.
If a tag is not recognised, nothing breaks. An unknown host is redirected unchanged, and so is any tag whose enrichment fails or times out. Every failure path ends in a 302 to the tag you sent. An ad request is never lost, never held, never refused.

Supported ad servers

Google Ad Manager gam run a sample tag →
Tag hosts
pubads.g.doubleclick.net, securepubads.g.doubleclick.net
Written to
cust_params
Buyers see
ppsj — Publisher Provided Signals, IAB Content 2.2 ids
Never touched
iu, sz, correlator, and every cust_params key you already send

Enrichment is merged into cust_params, which is itself a query string URL-encoded inside the tag URL. Your existing keys survive; only the keys clearTag manages are written. ppsj is the documented path to buyers — Google passes it in eligible bid requests to Google demand and to eligible Authorized Buyers, Open Bidding and SDK Bidding partners. The ct_* video parameters are also written, but those are read inside Ad Manager for reporting and demand facilitation, not by external bidders.

Magnite Streaming (SpotX) magnite run a sample tag →
Tag hosts
search.spotxchange.com, sync.search.spotxchange.com
Written to
custom[…], with content id in videoId and categories in c4
Buyers see
carried in the SSP's own content object
Never touched
your existing custom[] keys and top-level tag params

Follows the documented Magnite Streaming integration used by contextual providers. Which c-value a partner's context lands in is assigned by Magnite, so confirm the exact keys with your Magnite rep during onboarding — that is a data edit here, not a code change.

FreeWheel (Comcast) freewheel run a sample tag →
Tag hosts
*.fwmrm.net, *.v.fwmrm.net
Written to
the key-value section of the semicolon-delimited request
Buyers see
carried in the FreeWheel request
Never touched
caid and csid — never rewritten, only read

A FreeWheel request is divided into semicolon-delimited sections: global params, key-values, then one per ad slot. Enrichment goes into the key-value section only. caid and csid are keyed identifiers that must match your asset and site-section configuration inside FreeWheel — overwriting them would break ad selection, so clearTag reads them as input signals and leaves them exactly as they arrived.

Your endpoint is not listed? Host matching is a data edit, not a release: an operator adds it to data/adservers.json and reloads. That covers ad servers that speak one of the transports above under a different hostname. A genuinely different transport is a new adapter — roughly a day, and the pipeline around it does not change.

Exchanges and SSPs

If you do not run tags — if the traffic is already OpenRTB inside your own stack — the tag path is the wrong shape. Call the enrichment API instead: post the bid request's content object and get back the segments, taxonomy and content fields to merge into it. Same resolution, same data, no redirect involved.

POST /v1/enrich
{"content":{"channel":{"name":"Sport1"},"livestream":true},
 "device":{"geo":{"country":"DE"}}}

That path runs inside your infrastructure and adds no hop to the auction. It is documented in the API reference, and it is the route for a Prebid Server deployment: a module calls it once per request and every downstream bidder sees the enriched content object.

What gets added

Identical across every ad server above — only the transport differs. This deployment currently emits:

content title series keywords SceneContext segments IAB taxonomy channel identity

Each of these is an ad ops decision rather than a technical one, so each is a switch an operator sets per deployment. The IAB taxonomy is the standardised buyer path and is always carried. Try the switches on the bench to see what withholding a signal costs before committing it.