This guide is designed to stand on its own as an educational reference. It separates technical concepts, commercial outcomes and policy considerations so readers can reason about the system rather than memorize terminology.
Why ads.txt was not enough
ads.txt lets a publisher declare which systems may sell its inventory, but a programmatic transaction can still pass through several entities. Buyers also need visibility into who those entities are and where an account sits in the chain. sellers.json and the OpenRTB SupplyChain object make that path easier to inspect.
What sellers.json tells buyers
Advertising systems publish sellers.json so buyers can map seller account identifiers to business entities and understand whether an account represents a direct publisher or an intermediary. An opaque account ID in a bid request is not meaningful on its own.
What the SupplyChain object adds
The SupplyChain object travels with a bid request and describes the nodes involved in selling or reselling the opportunity. It is transaction-specific, while sellers.json provides directory-like information about the entities behind account identifiers.
Why shorter is not automatically better
A direct path can reduce fees and ambiguity, but intermediaries can provide legitimate services such as aggregation, market access, technology, measurement or commercial representation. The goal is to understand who is participating and why, not to eliminate every intermediary.
What publishers should monitor
Publishers should keep ads.txt accurate, understand how partners represent them in sellers.json, and review unexpected reseller paths. Buyers can use the same information to prefer authorized, transparent supply. Public declarations, technical identifiers and contracts should agree.
Commercial interpretation
A longer chain can mean additional fees, but the presence of an intermediary is not proof of waste. Buyers should compare price, quality, access and transparency. Publishers should compare revenue, unique demand and contractual value. The useful question is what each hop contributes and whether it can be verified.