Blog · Supply chain
Jounce puts ninety-eight percent of the bidstream in reach of directness validation. Blunt supply filters act like ads.txt was never crawlable.
IAB Tech Lab published "Rewriting ads.txt Won't Save You (But Reading It Might)" on September 17, 2026. The piece is a response to summer noise about replacing ads.txt with a fresh authorization file for agentic buying. Buried in the argument is a number buyers should treat as operational, not rhetorical: recent Jounce research, cited by Tech Lab, says ninety-eight percent of the bidstream enables independent validation of directness. That is not a maturity score for agents. It is a statement about how much traffic still arrives with enough public metadata for a buyer to reconcile who sold the impression without trusting the seller's slide deck.
What the metric actually measures
"Independent validation of directness" is not the same as "every hop is direct." It means a demand-side platform can cross-check the seller chain on the bid request against files the publisher and each intermediary already publish: ads.txt or app-ads.txt on the inventory owner, sellers.json at each asi domain in source.schain, and the hop list itself. When those three align, a buyer can distinguish an authorized reseller from a path that never appeared in the publisher file. When they do not align, the buyer has a falsifiable reason to no-bid that does not depend on a proprietary fraud score.
Tech Lab's essay stresses dual verification: ads.txt alone certifies that a seller ID is listed; sellers.json explains what that ID means at the exchange or SSP;source.schain is the audit trail on this specific request. Remove any leg and demand-side platforms lose their most practical tool for blocking unauthorized sellers, which is why the author argues agent-only authorization proposals that skip counterparty files re-open a verification gap the industry spent years closing. The ninety-eight percent figure describes reach: how often those files exist in the wild enough to run the check, not how often buyers bother to run it.
That distinction matters for supply path optimization. SPO dashboards love hop counts and fee tables because they compress well in a quarterly business review. Reading ads.txt per publisher domain, matching sid values to sellers.json entries, and comparing the result to the live schain is slower work. Tech Lab literally drafts the agent prompt buyers could run instead of inventing a parallel standard: upload a site list, crawl ads.txt and sellers.json, export the shortest authorized seller IDs for deal creation. The pre-work is crawling; the alternative pre-work is negotiating a new file format nobody's DSP validates yet. Ninety-eight percent reach says the crawl target is already there for almost all requests.
Why the bid request still fails anyway
Validation reach and validation execution diverge at the edge. OpenRTB carries source.schain, but exchanges vary on whether complete is honest, whether redundant nodes appear after a forwarder concatenates upstream chains, and whether asi is a bare registrable domain or a string that breaks sellers.json lookup. Buyers answer with blunt rules: drop anything with more than N hops, drop anything without complete: 1, drop entire SSPs after a bad week. Those rules reduce unauthorized spend, but they also discard paths that would verify cleanly if someone read the publisher file.
The no-bid reason code table separates parse failures from policy choices. nbr 16, Incomplete SupplyChain, is demand that wanted the impression but could not establish authorization from the payload. That is different from nbr 2, Invalid Request, where the JSON failed the bidder's validator before economics ran. Teams that never see nbr back from the exchange cannot tell incomplete schain from low bid density, so they tune SPO on hop count alone and call it hygiene.
"source": {
"ext": {
"schain": {
"complete": 1,
"ver": "1.0",
"nodes": [
{ "asi": "exchange.example", "sid": "pub123", "hp": 1 },
{ "asi": "ssp.example", "sid": "seat456", "hp": 1 }
]
}
}
}
Buyer check (offline):
1. Fetch publisher ads.txt → is exchange.example pub123 listed?
2. Fetch exchange.example/sellers.json → does pub123 exist?
3. Repeat for ssp.example / seat456 if reselling
4. Compare hop order to the nodes array
If step 1 fails, the path is unauthorized regardless of CPM.Tech Lab's comparison table rebuttal in the same article is useful context for field-level arguments: OWNERDOMAIN names the inventory owner, INVENTORYPARTNERDOMAIN extends CTV rights cases ads.txt 1.1 already tried to cover, and DIRECT versus RESELLER plus sellers.json relationship types already encode much of what newer agent authorization charts claim is missing. When an LLM-generated spec chart says ads.txt cannot describe the property, the counterpoint is literally that the file lives at domain.com/ads.txt and must correspond to site.domain or app.bundle on the request. Misinformation is not a reason to rewrite the file; it is a reason to ground automation in the current spec text.
Agentic buying without dropping the crawl
Agentic workflows change who reads the rules, not whether the rules exist. Tech Lab argues agents can apply nuanced decisioning humans skip because ads.txt lines are boring and sellers.json relationship enums are intimidating. That is compatible with keeping adagents-style files as an additional declaration if buyers still reconcile agents against the seller IDs in ads.txt. It is not compatible with treating agent permission as a substitute for counterparty verification: an agent authorized in a well-known JSON file but absent from schain still produces a bid request that looks like ordinary OpenRTB.
We already wrote about the split between adagents.json and schain on this site. The September Tech Lab essay adds the industry-scale framing: roughly one thousand implementers have already voted with their feet on how much granularity belongs in authorization files versus OpenRTB extensions like GPID, and blunt buyer strategies were part of that consensus. Agents do not magically fix bluntness unless they are trained on the same crawls SPO engineers avoided. Grounding an agent in ads.txt, sellers.json, and SupplyChain validation is the difference between automating nuance and automating a hop-count cap.
Supply Chain Validation 1.1 public comment, linked from the essay, is the forward path for custody nodes and completeness semantics, not a greenfield replacement for publisher authorization. Buyers planning 2026 integrations should watch that repo for changes to what complete means, then update validators accordingly. RTBlint tracks spec shape on the payload you paste; it does not crawl ads.txt or certify that a seller ID is listed. The crawl remains your side of the contract.
What to do on the buy side
- Treat the ninety-eight percent figure as coverage for crawls, not as proof your campaigns use it. Sample live schain objects against the publisher ads.txt for your top domains weekly.
- Split no-bid reporting by
nbrwhere the exchange exposes it. A spike in16is a supply-chain data problem; a spike in2is a validator or field drift problem. - Before you cap hops globally, check whether a shorter authorized path exists in ads.txt for the same inventory. Tech Lab's suggested agent workflow is the same work as a scripted SPO pass.
- For CTV, read INVENTORYPARTNERDOMAIN and MANAGERDOMAIN lines instead of assuming web-style OWNERDOMAIN covers platform rights. Tech Lab acknowledges CTV media rights need more illustration; the fields are already there for parsers that look.
- Validate OpenRTB schain shape at ingress so incomplete chains fail fast with a clear JSON path. Paste suspicious requests into rtblint.org/validate/ to separate malformed nodes from authorized paths your policy never read.
Independent of IAB Tech Lab and Jounce. RTBlint checks payload consistency; it does not detect fraud, bots, or unauthorized sellers by itself.
Sources
- IAB Tech Lab: Rewriting ads.txt Won't Save You (But Reading It Might) (September 17, 2026)
- Jounce Media (cited in the IAB Tech Lab article for the ninety-eight percent bidstream directness validation figure)
- IAB Tech Lab: Supply Chain Validation repository
- RTBlint: sellers.json, ads.txt, and schain trust stack