Direct Supply and Resold Supply Inside One Adult Network
Every account manager describes their inventory as premium, and the word means almost nothing on its own. What separates one seat from another is whether the platform signed the publisher directly or picked the impression up from a partner feed it does not fully control. An adult network running both models at once will route a buyer's budget toward whichever pool clears fastest unless the buyer specifically restricts it, so the distinction has to be checked, not assumed.
Ads.txt exists for exactly this reason. A publisher lists every company authorized to sell its inventory, tagged DIRECT or RESELLER, alongside an account ID the exchange can match against its own records. A domain with no ads.txt file, or one that omits the seat you were quoted, is not proof of fraud by itself, since plenty of smaller adult sites never got around to publishing the file. It is proof that the claim on the media plan cannot currently be checked, which is a different problem with the same practical result.
Reading a domain's ads.txt line before a bid goes out
The file lives at the domain root and lists one entry per line: exchange domain, publisher account ID, relationship, and an optional certification authority ID. A DIRECT line means the exchange named has a direct business relationship with that publisher. A RESELLER line means the exchange is authorized to sell the inventory but does not own the relationship, which is where an extra margin and an extra layer of uncertainty both get added at once. Pulling three or four ads.txt files from the placements a rep suggests, before committing a budget, costs about ten minutes and rules out the crudest form of domain spoofing outright.
Sellers.json and What an Adult Network's Ledger Leaves Out
Sellers.json is the exchange's own public ledger of who it sells for, published at a fixed path and updated as new publishers and intermediaries onboard. Cross-referencing a seller ID from a bid response against that file on any adult network tells a buyer whether the party named is a publisher, an intermediary, or an entity the exchange has chosen to keep confidential, and confidential entries deserve more scrutiny here than on general web inventory, since anonymity is exactly what a laundered domain wants.
The file typically surfaces only the first two hops in a longer chain, which is its main limitation. A confidential seller sitting three layers deep can still be passing traffic through an otherwise transparent platform without appearing anywhere a casual check would look. Transparency at the top of the chain does not guarantee transparency all the way down it, and treating a clean sellers.json file as a full clearance skips exactly the part of the chain most likely to hide a problem.
The two hops sellers.json usually shows
Read top to bottom: the immediate seller the exchange is paying, then that seller's own declared relationship, DIRECT or INTERMEDIARY, with the entity above it. Anything beyond those two hops requires pulling the schain object from the bid request itself and matching each node in turn, since sellers.json was never built to display a full multi-party chain in one file. Buyers who stop at hop two are reading half the ledger and reporting it as the whole thing.
| Signal checked | What it confirms | What it cannot confirm |
|---|---|---|
| Ads.txt entry present, matches quote | Publisher authorized this specific seller | Whether the traffic behind the domain is human |
| Sellers.json seat matches bid response | Named party is a registered seller on the exchange | Relationships past the second hop |
| Schain nodes resolve without gaps | Full resale path from source to you | Whether any listed publisher account is genuine |
| Domain age and history | Whether the site predates the campaign it now hosts | Ownership changes that keep the old domain live |
Following the Schain Object Behind an Adult Network Bid
The SupplyChain object attaches to the bid request itself and lists every node an impression passed through, from the original publisher's seat ID up to the exchange delivering it to the buyer's platform. Where sellers.json is a static reference file, the schain object is transaction-level, so it is the only one of the three checks that describes what actually happened to this specific impression rather than what the exchange claims is possible in general. Buyers running high-volume placements on any adult network should log schain data alongside standard reporting, because a pattern only shows up once enough bid requests have been compared.
A single node with a missing or malformed entry does not necessarily mean fraud; it sometimes means an older SSP has not finished its OpenRTB upgrade. A chain that keeps growing longer on the same placement over consecutive weeks, adding an intermediary that was not there the month before, is the pattern actually worth escalating, since margin stacking of that kind is the mechanism behind most inflated adult traffic pricing.
What a lengthening chain usually means in practice
Each additional node between publisher and buyer takes a cut before the impression reaches you, and each one is also a point where inventory can be substituted for something cheaper without anyone downstream noticing immediately. Comparing schain length across placements from the same seller over a rolling thirty-day window separates ordinary vendor churn from a resale pattern that is quietly getting worse, and it is one of the few adult-vertical checks that a small buyer can run without paying for a dedicated fraud tool.
Why a Deposit Floor Tells You Nothing About an Adult Network's Screening
Entry costs across this vertical span roughly eightfold, from under thirty dollars on a self-serve popunder platform to two hundred dollars on operators that run a manual publisher review before onboarding anyone. It is tempting to read the higher number as a quality signal, and sometimes it is, but the deposit floor mainly reflects how much administrative overhead an adult network wants to absorb per new advertiser rather than how tightly it screens the supply behind its own rate card. A rep who leads with the deposit amount instead of the ads.txt and sellers.json question is usually leading with the easier conversation.
Billing terms matter here too, and they get skipped for the same reason. Nearly every platform on this side of the market runs prepay with no invoicing, so an unspent balance sits with the vendor until you find a use for it, and refund policy ranges from a full return on request down to store credit only. Getting that answer in writing before the first transfer costs one email and saves a dispute later, since a chargeback on a wire or a stablecoin payment is not something either side can easily reverse.
| Entry point | Typical range | What it usually buys |
|---|---|---|
| Self-serve, minimal review | $25 to $50 | Fast approval, thinner publisher screening |
| Mid-tier, standard onboarding | $100 | Documented creative review, moderate wait |
| Managed accounts, full vetting | $150 to $200 | A dedicated rep, slower campaign launch |
A Pre-Funding Checklist Worth Running on Any Adult Network
None of the three checks above requires paid software. Ads.txt is a plain text file at a public path, sellers.json sits at a fixed URL on the exchange's own domain, and most self-serve platforms expose enough bid-level reporting to pull a schain sample after a small test spend. Running all three before a real budget goes in turns a sales conversation into something that can actually be verified, which is the whole point of publishing the files in the first place. An adult network that resists a direct question about any one of these three checks has already answered it.
Two adjacent questions belong in the same conversation, since they use the same paperwork. Anyone comparing terms before they decide to buy and sell adult traffic across more than one seat should ask each platform for the same three artifacts before splitting a budget between them, because inconsistent answers between two vendors quoting the same inventory are themselves a signal. The same three-file check applies without modification to a porn ad network selling exclusively owned tube-site inventory, where the expected answer is a short, clean chain rather than a long one.
When resold inventory is still worth buying
A longer chain is not automatically a reason to walk away. Some legitimate niche adult sites only reach demand through two or three intermediary SSPs because no single exchange has signed them directly, and excluding every resold placement on principle throws out real, high-intent traffic along with the fabricated kind. The distinction that matters is whether the chain is stable and documented or growing and unexplained, and only the schain and sellers.json checks above can tell the two apart.
Treat the adult network you are about to fund the way you would treat any other supplier claiming exclusive access to something valuable: ask for the paperwork that proves it before the money moves, not after the first campaign underperforms. The three files described here take longer to explain than to actually check, and the check itself has to happen before the deposit, since almost nothing about supply-chain structure can be reconstructed cleanly from a reporting dashboard afterward.
Content last verified 8 September 2026.
