> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thrads.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Targeting Signals

> Targeting signals available in the Thrad SSP BidRequest.

Everything Thrad supplies and where to find it in the BidRequest:

| Signal                | oRTB field(s)                                                       | Notes                                                                                                                                               |
| --------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| 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`                                                                                          |
| Conversational query  | `site.search`                                                       | LLM-rephrased — keys off like a search query                                                                                                        |
| Keywords              | `site.keywords`, `user.keywords`                                    | Comma-separated; LLM-extracted                                                                                                                      |
| IAB category          | `site.cat[]` + `site.cattax: 7`                                     | Tax 3.0 Tier 1 Unique IDs only. Mostly numeric (e.g. `"483"`); six are short alphanumeric extension IDs (e.g. `"JLBCU7"`). Sub-tiers not signalled. |
| Geo                   | `device.geo.{country,region,city}`, `device.geo.type=2`             | ISO-3 country. `type=2` declares IP-based provenance — Thrad does not collect GPS.                                                                  |
| Conversation language | `device.language`                                                   | Auto-detected from the conversation, falls back to Accept-Language. Omitted when undetermined.                                                      |
| Device                | `device.{ua,ip,ipv6,devicetype,os,js}`                              | `js=1` always (chatbot widget is JS-rendered). IPv6 sent as `device.ipv6` when applicable.                                                          |
| Mobile ad id          | `device.ifa`                                                        | In-app traffic only                                                                                                                                 |
| GDPR                  | `regs.gdpr`                                                         | Currently always `0` (stub). Full consent block + `user.ext.consent` ships in Wave 4.                                                               |
| CCPA / GPP / COPPA    | `regs.us_privacy` / `regs.gpp` / `regs.coppa`                       | Not yet wired — Wave 4.                                                                                                                             |
| Supply chain          | `source.ext.schain`                                                 | Not yet wired — Wave 4 (depends on the publisher `public_id` work).                                                                                 |
| Publisher blocks      | `bcat`, `badv`                                                      | Only when publisher has set them. Today not stored per-publisher — effectively never present.                                                       |
