Blog · Programmatic advertising

sellers.json and SupplyChain (schain): how buyers verify the supply path

Published Updated 4 min read
Short answersellers.json is a public file in which an ad system lists the sellers it pays — publishers and intermediaries — with their IDs. The SupplyChain object (schain) travels inside each bid request and lists every company the impression passed through. Together with ads.txt they let a buyer check that an impression really comes from the site it claims to.
Contents
  1. What is sellers.json?
  2. What is the SupplyChain object (schain)?
  3. How do buyers use ads.txt, sellers.json and schain together?
  4. What should publishers check?
  5. What should resellers and platforms check?
  6. Common problems
  7. Why it matters for traffic quality
  8. Frequently asked questions

In programmatic advertising an impression can pass through several companies before it reaches a buyer. sellers.json and the SupplyChain object were created by the IAB Tech Lab to make that path visible. If you are a publisher, a reseller or an ad platform working with partners through schain, this is how the pieces fit.

What is sellers.json?

sellers.json is a JSON file that an advertising system — an SSP, exchange or ad network — publishes at the root of its domain, for example https://example-ssp.com/sellers.json. It lists the accounts that the system pays for inventory. Each entry has:

Field Meaning
seller_id The account ID inside the ad system. The same ID appears in ads.txt and in schain
seller_type PUBLISHER (owns the inventory), INTERMEDIARY (resells it) or BOTH
name and domain Who the seller is, unless the entry is marked confidential
is_confidential 1 if the seller's identity is not disclosed

The file also contains contact details of the ad system and a version number. Wizads publishes its own file at wizads.eu/sellers.json.

What is the SupplyChain object (schain)?

The SupplyChain object travels inside every OpenRTB bid request. It is a list of "nodes", one for each company that handled the impression:

"schain": {
  "ver": "1.0",
  "complete": 1,
  "nodes": [
    { "asi": "example-ssp.com", "sid": "12345", "hp": 1 },
    { "asi": "example-exchange.com", "sid": "abc-678", "hp": 1 }
  ]
}
  • asi — the domain of the advertising system (where its sellers.json lives);
  • sid — the seller ID in that system;
  • hp — 1 if payment flows through this node;
  • complete — 1 if the chain includes every node back to the owner of the inventory.

In OpenRTB 2.5 the object sits in source.ext.schain; OpenRTB 2.6 made it a standard field, source.schain.

How do buyers use ads.txt, sellers.json and schain together?

A buyer, usually a DSP, checks three things:

  1. ads.txt on the publisher's site. Does the site authorize the first node's ad system and seller ID as DIRECT or RESELLER? See our ads.txt guide.
  2. sellers.json of each node. Does every asi publish a sellers.json, and does the sid exist there with a plausible seller type?
  3. The schain itself. Is it complete, and does it look like a reasonable path, not a long chain of resellers?

If the checks fail, many buyers lower their bid or skip the impression. A clean, short, verifiable path usually means more demand and better prices.

What should publishers check?

  • Your ads.txt lists every ad system you work with, with the exact seller IDs they gave you.
  • Each of those systems lists your account in its sellers.json, ideally with your name and domain, not as confidential.
  • The seller type matches reality: PUBLISHER for your own site.
  • When you change partners, remove old ads.txt lines — stale entries confuse buyers.

What should resellers and platforms check?

  • Your sellers.json is reachable over HTTPS, valid JSON and up to date.
  • Every account that sends you traffic has an entry with the correct seller_type.
  • You pass the incoming schain and add your own node, instead of replacing the chain.
  • Your partners' ads.txt and app-ads.txt files list your seller IDs.

Common problems

Problem Effect Fix
Seller ID in schain is missing from sellers.json Buyers cannot verify the node Add the account to sellers.json
ads.txt does not list the ad system Impression looks unauthorized Ask the partner for the exact line and add it
Chain marked incomplete Lower trust, fewer bids Pass the full upstream chain
Many confidential entries Less transparency Disclose names and domains where possible

Why it matters for traffic quality

Domain spoofing — selling cheap inventory under the name of a premium site — was one of the main reasons these standards appeared. With ads.txt, sellers.json and schain a buyer can see who is selling and who owns the inventory. That is also part of how platforms fight ad fraud. For the bigger picture, see our guide to programmatic advertising.

Frequently asked questions

Is sellers.json mandatory?

It is not a law, but many buyers expect it. Inventory from systems without sellers.json is often valued lower or excluded.

What is the difference between ads.txt and sellers.json?

ads.txt is published by the publisher and says who may sell its inventory. sellers.json is published by the ad system and says whom it pays. Each one confirms the other.

Where do I find Wizads' seller information?

In the public file wizads.eu/sellers.json. If you work with Wizads as a publisher or partner, your manager will give you the exact ads.txt lines and seller ID.

About the author

Wizads team

Wizads is an advertising network with its own DSP, SSP and ad server. Our team writes about programmatic advertising, website monetization and buying traffic.

Related articles