
5 min read
Shedding light on sellers.json & SupplyChain object, the IAB Tech Lab’s latest supply path optimisation mechanisms
Just when publishers had wrapped their heads around the Interactive Advertising Bureau (IAB) Tech Lab’s anti-fraud initiative, ads.txt, it was announced that tw
Just when publishers had wrapped their heads around the Interactive Advertising Bureau (IAB) Tech Lab’s anti-fraud initiative, ads.txt, it was announced that two new supply path optimisation (SPO) mechanism’s was being released—sellers.json and the related OpenRTB SupplyChain object (SCO).
This pair of specifications are designed to improve trust of the supply chain, allowing buyers to optimise their path to your inventory and ensure they are not being stung by the “tech tax”. Put simply, this pair of specifications could be seen as the ads.txt for the buy side.
Trade House Media is proud to be an early adopter of this fantastic initiative, having worked tirelessly to be a leader in this space and one of the first businesses globally to fully support sellers.json and SupplyChain Object across our entire ecosystem.
The buyer then passes that request on to their integrated DSPs, passing the same details up the bid stream to the advertisers.
Why does the industry need an initiative like sellers.json and SupplyChain Object?
As programmatic buyers became more sophisticated, what became apparent is that not every impression was being offered to them in a financially efficient supply chain. Rather than a publisher offering an impression to a supply-side platform (SSP), who then offered it to the advertiser’s demand-side platform (DSP), they found that impressions were being sold and resold many times before being offered to them. Each hop in this supply chain was subject to various ad tech platform fees. This ultimately means that publishers are losing out on revenue and that advertisers are having their brand spend diluted by this “tech tax”. In a now infamous 2016 experiment, The Guardian secretly bought their own inventory and found that—in some circumstances—only 30% of the advertising spend was actually making it to the publishers. In this sellers.json & SCO guide, we look at what sellers.json is, how it functions with the SupplyChain object, how it impacts publishers and what steps (if any) publishers need to undertake to be compliant with this initiative.What is sellers.json?
Sellers.json is a published and publically accessible JSON (JavaScript Object Notation) file that sits on the root directory of an ad platform’s website. Pubmatic’s sellers.json, for example, can be publicly viewed here. The sellers.json file is designed to be human and machine readable, allowing buyers to quickly ascertain the relationship they have with the inventory source and whether it is being offered to them directly from the publisher or via a reseller. The file always follows the same structure. It opens by declaring some basic information about the business:{ "contact_address": "PHYSICAL_ADDRESS_OF_AD_PLATFORM", "contact_email": "EMAIL_ADDRESS_OF_AD_PLATFORM", "version": VERSION_NUMBER, "identifiers": [ { "name": "TAG-ID", "value": "AD_PLATFORM_TAG_ID_IF_APPLICABLE" } ], "ext": { > "last_updated": "LAST_UPDATE_DATE" }, "sellers": [[table id=2 /] Once that is out of the way, the file then lists an array of “nodes” that contain all the relevant details of each publisher on the ad platform:
{ "seller_id": "UNIQUE_PUBLISHER_ID_ON_PLATFORM", "name": "NAME_OF_PUBLISHER.", "domain": "PUBLISHER_DOMAIN", "seller_type": "RELATIONSHIP_TYPE" },That node can be repeated in this array for as many times as necessary to list every publisher on the platform. It isn’t necessary to list each individual site on your sellers.json file. As per the spec:
So, for example, if you have a relationship with a publisher that owns 20 sites – it is not necessary to list each of the 20 sites in your sellers file. You just list the publisher once alongside their parent domain. The full spec document for sellers.json can be found on the IAB Tech Lab website.“It is invalid for a seller_id to represent multiple entities. Every seller_id must map to only a single entity that is paid for inventory transacted with that seller_id. It is valid for a selling entity to have multiple seller_ids within an advertising system.”
What is the OpenRTB SupplyChain Object?
It is all well and good to have a sellers.json file in place, but it is incomplete without also being able to also pass this information up the bid stream with the bid request. This is where the OpenRTB SupplyChain Object comes in. The SCO allows buyers to view—in real time and at a bid level—the supply path that any bid request has taken. This allows them to optimise their supply paths and ensure they are bidding on the most direct route to the inventory. In theory it is similar to sellers.json although in practice, instead of a publicly accessible JSON file, SCO is built into an ad tech platform by its development team. Using the SupplyChain object an ad platform can pass all the same information in the sellers.json to the buyer in the bid request in a format that is ingestible buy their buying platform (DSP). Added to the bid request, along with the usual location, cookie, and bid data, would be additional schain details:"bidrequest" : { "id": "BidRequest2", "app": { "publisher": { "id": "aaaaa" } } "source": { "ext": { "schain": { "ver":"1.0", "complete": 1, "nodes": [ { "asi":"directseller.com", "sid":"00001" "rid":"BidRequest1", "hp":1 }, { "asi":"reseller.com", "sid":"aaaaa", "rid":"BidRequest2", "hp":1 } ] } } } }
What does this all look like in practice?
Using a real-world example, we can see how this looks in practice.- A publisher or reseller has been given an ID of 11306 on our ad platform and this is being pushed as the SID value in the PreBid.js Schain module.
- This is referenced on the ad platform’s sellers.json file.
- This is referenced on the publisher’s ads.txt file:

