Programmatic advertising

SupplyChain object

What is SupplyChain object

The SupplyChain object (often abbreviated as the schain object) is an open technical specification and programmatic advertising data structure developed by the IAB Tech Lab (as part of OpenRTB 2.5 and OpenRTB 3.0) that enables buyers to see all parties who are selling or reselling a given ad impression.

Functioning as a cryptographic, digital transit passport embedded within programmatic OpenRTB bid requests, the SupplyChain object records an ordered array of nodes (the 'nodes' array), where each node represents a specific advertising technology entity—such as a publisher, supply-side platform (SSP), ad exchange, or reseller intermediary—that participated in the handling and transmission of the impression opportunity. By pairing the SupplyChain object with public Sellers.json files, media buyers can trace an ad impression backward through every technical intermediary all the way to the original content creator, establishing complete end-to-end supply chain transparency.

Strategic importance and core mechanics

The strategic necessity of the SupplyChain object arose from widespread ad fraud, domain spoofing, and hidden margin arbitrage that plagued the programmatic advertising industry for years. In opaque programmatic supply chains, unscrupulous resellers routinely took bid requests, passed them through multiple dummy exchanges, took hidden margin markups at each hop, or spoofed low-quality pirated websites to look like premium news domains.

The SupplyChain object, in combination with Ads.txt and Sellers.json, permanently dismantled this opacity. By mandating that every intermediary add its authorized account ID and relationship status to the serialized 'schain' string before passing the bid request downstream, media buyers gained real-time cryptographic verification of inventory provenance. Strategically, demand-side platforms (DSPs) can programmatically inspect the SupplyChain object during live auctions, automatically rejecting any bid requests that contain unauthorized reseller hops, broken chains, or unverified intermediaries, ensuring advertiser dollars fund authentic publishers.

From an organizational standpoint, embedding supplychain object into daily operational workflows ensures sustained market visibility, strengthens customer relationships, and builds compounding enterprise value over long-term strategic horizons.

Key components and foundational elements

A complete technical SupplyChain object architecture incorporates four foundational data elements:

  • Complete chain flag (complete): A binary integer (1 or 0) indicating whether the serialized chain represents the complete, unbroken record of all entities involved in the transaction from the initial publisher (1) or an incomplete fragment (0).
  • Serialized nodes array: An ordered sequence of JSON nodes representing each participant in the transaction, from the first entity that generated the request to the final SSP submitting the bid request to the DSP.
  • Node identifier properties: Mandatory properties within each node—including Advertising System domain (asi), Seller Account ID (sid), and Request ID (rid)—matching the corresponding public Sellers.json record.
  • Handling relationship indicator (hp): A binary flag indicating whether the specific node was involved in the physical handling of payment cash flows (1) or served purely as a technical routing conduit (0).

Implementation framework and best practices

Implementing, validating, and monitoring the SupplyChain object across programmatic operations involves adhering to a structured five-stage methodology:

  • Step 1: OpenRTB protocol and SSP version compliance. Ensure all participating SSPs and publisher ad servers support OpenRTB 2.5 with SupplyChain extension or OpenRTB 3.0 frameworks.
  • Step 2: Node serialization and Sellers.json synchronization. Configure publisher ad wrappers (such as Prebid.js) to generate the initial node with complete=1, ensuring the 'sid' matches the publisher's authorized ID in the SSP's public Sellers.json file.
  • Step 3: Intermediary node appending and pass-through verification. Verify that every downstream exchange or reseller appends its own node without overwriting or truncating earlier upstream nodes.
  • Step 4: DSP algorithmic verification and filtering. Configure demand-side platform buying algorithms to automatically validate the schain against public Ads.txt and Sellers.json records in real time during the auction.
  • Step 5: Discrepancy auditing and supply path pruning. Conduct weekly log-level reviews of schain records, systematically eliminating supply paths that exhibit broken chains, incomplete flags, or excessive intermediary hops.

Common pitfalls and operational challenges

Ad tech platforms and publishers frequently commit critical technical errors when implementing the SupplyChain object that cause ad spend to be blocked. The most common mistake is creating broken or mismatched chains. If an SSP passes a bid request with a seller ID ('sid') that does not match an entry in its published Sellers.json file, or if the publisher's domain does not list that SSP in its Ads.txt file, buying algorithms will classify the impression as unauthorized and immediately drop the bid.

Another widespread blunder is setting the 'complete' flag to 0. Many enterprise media buyers maintain strict DSP buying rules that automatically disqualify any bid request marked with complete=0, as incomplete chains indicate untrusted or obscured routing. Furthermore, reseller loops—where an ad request is passed back and forth between competing exchanges before reaching the DSP—inflate the node count, triggering automatic SPO disqualification rules.

To overcome these hurdles, marketing leaders must establish rigorous operational governance, invest in comprehensive team training, and foster continuous cross-functional alignment between creative, analytical, and executive stakeholders.

Performance measurement and success metrics

Evaluating the integrity, compliance, and transparency impact of the SupplyChain object involves tracking validation rates and path lengths:

  • SupplyChain validation pass rate: The percentage of incoming programmatic bid requests where the complete schain successfully validates against public Ads.txt and Sellers.json records.
  • Complete chain ratio: The proportion of bid requests marked with complete=1 versus complete=0, targeting 100% complete chain verification.
  • Average node path length: The mean number of intermediary nodes present in the schain, where direct single-hop paths (length 1 to 2) represent optimal supply efficiency.
  • Disqualified bid request rate: The volume of bid requests rejected by DSP bidding engines due to invalid, broken, or mismatched SupplyChain objects.
  • Working media efficiency lift: The percentage increase in media dollars reaching verified content creators resulting from the elimination of multi-hop unauthorized reseller paths.

Ultimately, systematic measurement and continuous performance benchmarking transform supplychain object from an isolated tactical activity into an agile, revenue-generating growth engine that consistently outperforms competitor baselines.

Frequently asked questions

What is the relationship between Ads.txt, Sellers.json, and the SupplyChain object?

Ads.txt lists who is authorized to sell a publisher's inventory. Sellers.json lists who an SSP represents. The SupplyChain object is the live cryptographic record passed in the bid request proving the exact path an ad took between them. Continuous operational governance, cross-functional testing, and regular framework optimization ensure ongoing performance and maximum channel efficiency across the customer lifecycle.

What does 'complete=1' mean in a SupplyChain object?

'complete=1' indicates that the SupplyChain object contains an unbroken, complete record of every single entity that handled the impression from the original publisher to the DSP. 'complete=0' means the chain is partial or truncated. Continuous operational governance, cross-functional testing, and regular framework optimization ensure ongoing performance and maximum channel efficiency across the customer lifecycle.

Why do DSPs reject bid requests with long SupplyChain node arrays?

Long node arrays indicate multiple reseller hops, which introduce latency, hidden fee markups, and higher fraud risk. Many buyers configure their DSPs to reject any bid request with more than two or three nodes. Continuous operational governance, cross-functional testing, and regular framework optimization ensure ongoing performance and maximum channel efficiency across the customer lifecycle.

Can a publisher initiate the SupplyChain object in Prebid.js?

Yes, publishers using Prebid.js can use the SupplyChain module to generate the first node of the schain directly in the browser, explicitly identifying themselves as the origin of the inventory. Continuous operational governance, cross-functional testing, and regular framework optimization ensure ongoing performance and maximum channel efficiency across the customer lifecycle.

Related terms