sellers.json, ads.txt and the anatomy of a clean supply chain
Programmatic's transparency stack — ads.txt, app-ads.txt, sellers.json and the SupplyChain object — is often treated as compliance homework: files you publish once so nobody complains. That framing misses what actually happens on the buy side. These files are read by machines, at scale, on every impression, and they change what buyers are willing to pay. Here's the whole system in one picture.
The four documents, in one breath
- ads.txt / app-ads.txt — published by the publisher: "these companies are authorized to sell my inventory, with these account IDs, as DIRECT or RESELLER."
- sellers.json — published by the ad system (like ours): "these are the sellers who receive payment through me, and whether each is a publisher or intermediary."
- SupplyChain object (schain) — attached to the bid request itself: the actual hop-by-hop path this impression took, node by node.
Each document answers a different question, and they only work together: ads.txt says who may sell, sellers.json says who gets paid, and schain says who actually touched this impression. A buyer's supply-path optimization joins all three — automatically, before bidding.
What "clean" concretely means
When we audit a publisher's setup, we're checking that the triangle closes:
- Every seller ID in the schain resolves to an entry in that system's sellers.json.
- Every path terminates at an ads.txt / app-ads.txt line the publisher actually controls.
- DIRECT means direct — a payment relationship with the publisher, not a reseller wearing a DIRECT label.
- No orphan lines: dead account IDs and departed partners left in ads.txt are open doors for spoofing.
- Fewer hops. Every intermediate node is margin extracted and a trust question a machine has to answer.
Buyers don't send you an email when your supply chain looks wrong. They just bid less, or not at all — and you never find out why.
The revenue mechanics
Three effects show up in the numbers when a supply chain gets cleaned up:
Filter recovery. Major DSPs discard unauthorized or unresolvable paths before their bidders ever see them. Fixing a broken declaration doesn't raise your price — it puts you back in auctions you were silently absent from.
SPO inclusion. Agencies increasingly buy through curated path lists. Clean, short, fully-declared paths make the list; everything else is excluded wholesale, regardless of content quality.
Trust premium. Bidding algorithms learn that dollars sent down your path arrive intact. That learned confidence becomes a standing bid premium on your inventory — the compounding kind.
Keeping it clean is a process, not a project
Partners change, account IDs rotate, apps ship and die. The clean state decays unless someone owns it. Our own discipline, which we recommend to every publisher: review authorizations quarterly, remove before you add, and treat every new reseller line as a cost that must justify itself in incremental demand.
We hold ourselves to the same standard we ask of partners — our sellers.json and app-ads.txt are public, current and complete. Audit us.