| Publisher org | site.publisher.id, site.publisher.name, site.publisher.domain | All lowercased. name / domain omitted on empty. |
| Publisher slot | site.id, imp[].tagid | Always present. site.id resolves: DSP override → chatbot public_id → legacy int id |
| Surface (web) | site.domain, site.page | Per-request URL; lowercased domain. site.privacypolicy=1 always. |
| Surface (in-app) | app.bundle, app.storeurl, app.domain | Only when publisher inventory is ios_app / android_app |
| Keywords | imp[].ext.thrad.keywords | Array; LLM-extracted. Was site.keywords / user.keywords |
| Intent | imp[].ext.thrad.intent | Thrad’s classification, e.g. shopping |
| Task | imp[].ext.thrad.task | What the user is doing, as a Thrad task slug |
| IAB category | imp[].ext.thrad.iab_tier1 | Tax 3.0 Tier 1 category name. Was site.cat[] + cattax |