Index Exchange was one of the first major exchanges to adopt and abide by the IAB’s specifications for Sellers.json and Schain, done in an effort to champion accountability and allow our partners to better vet all sources of inventory that they can access and purchase on our exchange.
As a recap, Schain is a bid request object that lists the seller IDs of each party who has touched an individual impression. Sellers.json is a publicly-facing dictionary that allows buyers to look up the sellers listed within Schain. As a result, buyers have visibility into each step a bid request takes in between themselves and the end-publisher, enabling DSPs to make better buying decisions for their clients.
As an industry, we’ve reached nearly 100% adoption, which is a great first step towards the ultimate goal of a completely transparent ecosystem. However, mere adoption isn’t enough – the standard also needs to be understood and implemented correctly. Since Sellers.json is the “publicly-facing” part of the standard, we’d like to highlight some “gotchas” that we’ve noticed, in order to help others implement, interpret, and analyze Sellers.json files in the most efficient and effective way.
For Sellers: Things to Remember When Posting a Sellers.json File
- Make sure you’re not setting every publisher entry to the same ID. Each entry in a Sellers.json file needs its own unique seller ID. This allows buyers to validate this entry against the respective intermediary’s ads.txt entry, and against the ‘sid’ object in Schain objects they pass. If buyers can’t accomplish this step, they will eventually stop buying that seller.
- Be sure to fill the “name” field in Sellers.json with the seller’s business name, not a URL. Each Sellers.json entry should link back to the business facilitating the transaction – not the URL of the seller or where the ad is serving.
- Don’t list “Google Open Bidding” as a single seller. An exchange may monetize hundreds of different sellers using Google Open Bidding (formerly Exchange Bidding) as a pass-through entity. If the exchange does not break these seats out in Sellers.json, it obfuscates the supply path to buyers. Instead, we recommend breaking each seller out into its own Sellers.json entry.
- Avoid setting “google.com” as the name of every Open Bidding seller. Buyers use the ‘name’ field in Sellers.json to identify which sellers they’re buying from. The names of each seller should be made explicit, whether or not they’re being sold through OB.
- When setting the ‘domain’ field, don’t confuse the payee’s domain with the URL where the ad is served. Sellers should be clear about the identities of each payee. DSPs have indicated they may not purchase a seller if this field is inaccurate.
For Buyers: Things to Remember When Interpreting Sellers.json for SPO
Sellers.json was primarily developed to help DSPs interpret Schain objects in bid requests. Since an Schain object is a chain of seller IDs but not names, buyers can reference Sellers.json to learn the identities of each ID in the chain. Schain represents the payment chain of an impression, so buyers can use Schain in conjunction with Sellers.json to optimize their supply path.
Since Sellers.json was released, we’ve seen some buyers try to analyze Sellers.json files directly for the secondary purpose of SPO. While this is possible, there are some important subtleties to keep in mind:
- Make sure the intermediary implements the standard correctly. The Sellers.json standard is straightforward – if it isn’t followed, that’s a red flag. Check the tips for sellers above to see if there’s a mistake in the implementation.
- Cross-reference ads.txt. If the intermediary lists a publisher in Sellers.json and they’re not listed in that pub’s ads.txt file, they’re not actually authorized to sell that inventory.
- Take care when relying on the “intermediary/publisher/both” seller type field. “Intermediary” doesn’t necessarily or always mean “ad network”. Exclusive resellers and sales houses can be labelled “intermediary”, even though they are not the typical “reseller” ad network many may think of. In fact, sellers utilizing Google Open Bidding technology have a direct seat on our exchange but are listed as “intermediary” due to Google taking a small fee, even though we have a direct relationship with the publisher.
- Inventory volume isn’t equally distributed between sellers. The number of sellers in a Sellers.json file isn’t directly proportional to exchange volume. Most exchanges have a long tail of sellers that provide the minority of volume. This relates to the point above, in that “seller type” distribution isn’t necessarily indicative of spend distribution.
- To illustrate, about 50% of IX’s Sellers.json entries are listed as (financial) ‘intermediary’ by the IAB definition, but over 80% of IX spend goes to direct publisher accounts, via the header or server-to-server, so buyers actually see a low percentage of true “intermediaries” on their media buys. It’s an easy analysis mistake to make if you’re looking at the Sellers.json file alone and not the impression or spend distribution
Like any young standard, version 1.0 is only the first step. It’s important to continue to share feedback both directly and within industry groups so that we can address concerns in future versions and together build a more transparent industry. We look forward to working with publishers and buyers as the spec evolves, and continue the dialog within the IAB Tech Lab.