schain Builder & Validator

Build and validate the IAB SupplyChain object (schain) for OpenRTB, and export both the source.ext.schain JSON and the serialized string — all in your browser.

The schain Builder & Validator runs entirely in your browser. The seller ids, domains, and supply chain nodes you build or paste stay on your device and are never uploaded to ArrayKit.

Open the OpenRTB Enum Reference

About SupplyChain (schain) Builder

The schain Builder & Validator assembles the IAB Tech Lab SupplyChain object that rides in OpenRTB bid requests at source.ext.schain. Add each intermediary as an ordered node with its asi, sid, and hp (payment) flag, set the complete and ver values, then copy both the JSON object and the URL-encoded serialized string exchanges expect. Switch to Validate mode to paste an existing schain — as JSON or as a serialized string — and instantly see missing required fields, a bad complete flag, or an unexpected version, with the hop chain drawn out node by node. Ad-ops, SSP, and header-bidding engineers can audit and repair supply paths right here; the nodes and seller ids you paste are parsed on your device and never uploaded.

Features

How to use the SupplyChain (schain) Builder

  1. Keep the Build tab selected and fill in asi, sid, and the hp flag for each node
  2. Add more nodes and use the arrows to put them in publisher-to-exchange order
  3. Set the complete flag (1 when the whole path is declared) and copy the JSON or serialized string
  4. Switch to Validate and paste an existing schain to check required fields and node order

Example

Input

asi: exchange1.com
sid: 1234
hp: 1
complete: 1

Output

1.0,1!exchange1.com,1234,1

One node serializes to ver,complete!asi,sid,hp; the JSON goes in source.ext.schain.

Common errors & troubleshooting

Frequently asked questions

What is the schain (SupplyChain) object?
It is an IAB Tech Lab object carried in OpenRTB at source.ext.schain that lists, in order, every advertising system that touched the bid request between the publisher and the exchange, so buyers can verify the supply path.
What do asi, sid, and hp mean on each node?
asi is the canonical domain of the advertising system, sid is the seller or reseller account id within that system (matching its sellers.json), and hp is 1 when that node is involved in the payment flow. All three are required per node.
What is the difference between the JSON object and the serialized string?
The JSON object is the full source.ext.schain structure used in a bid request body. The serialized string is a compact URL-encoded form — ver,complete!node!node — where each node is asi,sid,hp,rid,name,domain, used where a header or query parameter is needed.
When should complete be 0 versus 1?
Set complete=1 only when every intermediary from the publisher onward is declared in the nodes array. If any upstream hop is unknown or omitted, set complete=0 so bidders know the chain is incomplete.
Does this tool fetch my ad tag or bid request from a server?
No. You paste or build the schain and everything — serialization, parsing, and validation — happens locally in your browser. The seller ids, domains, and node data you enter are never sent to ArrayKit.
Can it validate a schain I copied from a live bid request?
Yes. Paste it into Validate mode as either the JSON object (including a wrapping source.ext.schain) or the serialized string, and the tool checks the required node fields, the complete flag, the ver, and draws the hop chain.

Related tools

All ArrayKit tools