BidRequest.source
Source
Who is selling this impression and through which chain of intermediaries.
Fields
| Field | Type | Level | Description |
|---|---|---|---|
| fd | integer | recommended | Entity responsible for the final sale: 0 exchange, 1 upstream source. |
| tid | string | recommended | Transaction ID, common across all participants in this impression. |
| pchain | string | recommended | Payment ID chain. |
| schain | object | recommended | The supply chain object, listing every intermediary. |
Example
{
"fd": 1,
"tid": "d1c2a3b4-…",
"schain": {
"complete": 1,
"ver": "1.0",
"nodes": [
{ "asi": "exchange.com", "sid": "1234", "hp": 1 }
]
}
}What matters in practice
schain is the field that turns ads.txt and sellers.json from published files into something enforceable. It lists every intermediary that handled the impression, in order, with the seller ID each one used — which is exactly what you need to walk the chain back to a named publisher. Its complete flag says whether the chain is fully declared; an incomplete chain means someone in the path did not pass it on, and buyers with strict supply-path rules commonly reject on that alone. The tid is also worth knowing about: it is shared across every participant, which makes it the only reliable key for reconciling one impression across several systems.
Related objects
Field names, types and requirement levels from the IAB Tech Lab OpenRTB 2.6 specification (2.6-202211), verified 30 July 2026. The practice notes are not spec text.