SceneContext Labs / clearTagPublisher Provided Signals, activated
● proxy online

Your tag says Krimi. The bid request needs a number.

A DSP can't target a string it has never seen. clearTag cleans what your players actually send — macros, mixed spellings, German genre names, junk values — and classifies the result into IAB Content Taxonomy 2.2, the vocabulary every buyer already speaks.

Paste a real tag below and watch it happen.

TODAY Channel A Channel B Channel C hand-mapped, one channel at a time Ad server key-values stops here DSP no content signal Key-values never leave your ad server — the bid prices it blind. WITH CLEARTAG Channel A Channel B Channel C one URL swap clearTag cleans + resolves Ad server key-values ppsj · ct_* DSP genre · channel IAB category Your targeting still works, and the buyer finally sees what the content is.
Where the content signal stops today, and where it reaches with clearTag in front.
1

Swap one URL

Point the player or SSAI stitcher at clearTag. Nothing else changes — consent, sizes and macros ride along untouched, and no dashboard setup is required.
/tag?tag=<your tag>

2

The tag gets cleaned

Unexpanded macros, n/a and null, Krimi and Krimiserie and crime as three different values. Normalised into one vocabulary — and on a live channel, resolved against the schedule to what is actually airing.

3

Buyers get a category

The cleaned result is classified into IAB Content 2.2 and sent as ppsj — ids Google passes into eligible bid requests. That is a category a DSP can target, not a programme name it has to recognise.

01Paste your ad tag paste it raw — encoding is handled for you
See it work in ten seconds. Load a deliberately messy tag — German key names, double encoding, macros and a n/a value — and watch it come out clean.

Everything below is optional. clearTag reads these from the tag itself. Fill one in only if your player can pass it — an explicit value always wins.

What leaves your ad server

Try withholding a signal and watch what buyers lose. These are ops decisions, not technical ones — set them permanently in data/policy.json. The ppsj taxonomy is never affected: it is the standardised buyer path and no switch here can turn it off.

02What gets sent on your ad server on the left, the buyer on the right

Run a tag above and the result lands here.

and buyers get context

ppsj → the bid request

IAB Content Taxonomy 2.2 — the part a buyer can actually target.

ct_* → the programme, as free text
ct_ch
ct_se
ct_ti
03Verify the live response opens Google's VAST inspector — works with any VAST tag

Open the cleaned tag in Google's inspector: it requests the ad from your ad server and plays back the VAST it returns, so you can confirm delivery yourself. Then register the six keys in your ad server to start targeting on them.

Open in VAST inspector ↗

The detail, if you want it

What gets sent, and who reads it
ppsjIAB Content Taxonomy 2.2 ids The buyer-facing path. Google passes these into eligible bid requests to Google demand and eligible Authorized Buyers, Open Bidding and SDK Bidding partners.
ct_ch / ct_se / ct_tichannel, series, title, as free text Google's CTV programming params. Google describes them as exposing transparency to buyers — but a DSP cannot target a programme name it has never seen, which is why the taxonomy above is the one that changes bidding.
cust_paramsthe cleaned keys Your own ad server: line items, PMP targeting, reporting. Never reaches a buyer — there is no field for publisher key-values in the bid request. Optional, and no dashboard registration is needed for anything above.
Where the signals come from
Cleaning Unexpanded macros, n/a, null, empty strings and placeholder values are recognised and dropped rather than classified.Every request
Normalisation Krimi, Krimiserie and crime collapse to one value; German and English genre names map to the same vocabulary.Every request
Schedule On a live channel the tag names the channel, not the programme. The channel and timestamp resolve against the EPG to what is airing now.FAST, linear
Classification The cleaned, resolved result maps to IAB Content 2.2 ids — the only content taxonomy Ad Manager's PPS accepts.Every request

Every id emitted is checked against the published IAB Content 2.2 list by a test that fails the build otherwise. An id that is not in the taxonomy is dropped silently by Ad Manager, which looks identical to sending nothing at all.

Three ways to plug in
Tag proxySwap one URL. Live on this page.
Lookup APIPOST /v1/enrich returns taxonomy ids and a ready ppsj string to append yourself. Live.
Pre-computedWe keep your catalogue enriched and push signals to your metadata service or an edge cache.
What we don't touch

iu, sizes, correlator, cmsid/vid, macros and every unmanaged parameter arrive byte-for-byte. TCF strings, gdpr, us_privacy and npa pass through — we read no device id, IP or consent string, and store none. We redirect rather than fetch, so your ad server still sees the real device. Enrichment is in-process, well under a millisecond. If anything fails, the request falls through to your original tag.

How to verify it, honestly

This bench proves your tags are cleaned and the signals are well-formed. It cannot prove a DSP received them — and neither can a VAST inspector, which shows the ad response, not the bid request.

1. Run real tags here. 2. Decode ppsj and check the ids mean what you'd expect. 3. Point a test placement at the proxy and read your Ad Manager PPS report — the only step that closes the loop.

PPS must be enabled on your network, and channels already running CMS ingestion are the wrong place to test: they have a content object already.

For the monetisation side

Inventory that bid as anonymous CTV becomes describable — news, sports, kids, by channel and title, in the taxonomy buyers already target. That is what makes a contextual PMP or a suitability guarantee sellable.

Signals arriving is not revenue. It makes inventory addressable; whether buyers pay more is the next experiment, and it needs a holdback.

Want this on your channels?

Send us five real tags — ideally your messiest partner — and we'll come back with what resolves, what doesn't, and the ppsj each one would carry. Then we point a test placement at it together and read your PPS report.

Already integrating? See your channels · API reference · Live traffic

copied