Who may sell your ads
Does your ad network’s own list agree with your site’s?
Measured against a 16,085-domain frame two ad networks name as their own, from which 457 sites gave 462 publisher-to-network pairings the data
Your own two halves
Read your site from the overview and we will mark your own rows below.
Your site carries a short list, at the front of your domain, naming the companies allowed to sell ad space on it and the account number each one holds for you. That file is called your ads.txt. Your ad network publishes the other half: a list of every account it is allowed to sell for, called its sellers.json. Buyers read both before they bid. Nothing about yours is sent anywhere — we read it in your browser from the reading kept on this device.
462 pairings between a publisher and a network
We drew 500 sites from the 16,085 that two ad networks name in their own published lists, read each one’s file, and compared it with the lists of all six networks that publish one we can fetch. 43 sites would not let us read anything and are left out rather than counted as agreeing. These four rows are every pairing, counted once each. One publisher on two networks is two pairings, so this section counts relationships and the sentence after it counts publishers.
Almost everything agrees, and the exception is not where a publisher would look for it. The half a publisher can check — is the account number in my file on my network’s list — was wrong 1 time in 462. Nearly every disagreement runs the other way: 35 pairings where a network’s list names a site whose file does not name the network back. That is the direction nobody can see from their own site, because checking it means reading a file on the network’s domain that a browser is not permitted to fetch at all.
- 426 of 462 Agree. The site names the network and gives an account number, and the network files that same number against that same site. This is what a buyer is looking for. Your site does this
- 35 of 462 The network says it may sell for the site and the site’s own file does not name that network at all. Only one of the two is making the claim, and it is not the publisher. We cannot mark this row for you. Answering it means fetching every network’s list, and a reading of your site fetches only the list of a network your own file names.
- 0 of 462 The number is on the network’s list, filed against a different address. That is ordinary — the list records the company that gets paid, not the page the ads run on, so one account covering several sites looks like this. No pairing in this sample was on this row, which is its own small finding: in these six lists the address on file was the site’s own every time. Your site does this
- 1 of 462 The site names the network and gives a number the network’s list does not hold anywhere. A buyer comparing the two cannot confirm the publisher is who they say. Your site does this
Counted as publishers rather than pairings: 36 of the 457 sites we could read have at least one network relationship a buyer checking both files could not confirm. Most of those are not a wrong line in a file — they are a site with no working file at all, which the next section counts. And in 1 case the network held that same site under an account number the site’s own file did not carry: the address was right, the number was not. That is the shape of a publisher who signed again and left the old line in place, and it is one case in 462.
What the site says instead
The 35 pairings where a network’s list names a site whose own file does not name the network, split by what is at that address instead. 24 of the 35 are sites with no working file at all, so the commonest reason a network’s claim goes unbacked is not a publisher disagreeing with it — it is a publisher who has nothing there to agree with. The bars start from a shared zero and are scaled to all 35.
- The address returns nothing. There is no file on the site to back the network’s claim, so a buyer comparing the two has only the network’s word for it. 20 of 35
- The file is real and names none of the six. Usually one line for Google and nothing else, which is what a site looks like once it stops using a managed ad network. 6 of 35
- The file names one of the other five networks instead. That is what a publisher who changed networks looks like, with the one they left still holding them on its list — though neither file carries a date, so the order of events is an inference and not something either one states. 5 of 35
- The address answers with a whole web page — a lander, a redirect, a site theme — rather than the file. It is a missing file dressed up as a working one, and it counts as missing. 4 of 35
The files themselves
Out of the 457 sites we could read — except the middle row, which we can only judge for the 440 we fetched ourselves. The rest came from a nightly collection that keeps what a file said and not how it was served, and folding those in as though they were fine would make the check look like it covered ground it never saw.
The 4 sites whose address answers with a web page are not in the first row. The address did answer, and the deliberately forgiving reading we give a publisher’s own file finds a few accidental records in a page of markup — so they count as a file that exists and is wrong, rather than as one that is absent. They are the whole of the second row.
- 20 of 457 Have no usable file: either the address returns nothing, or it answers with something holding no records at all. Either way the site declares nobody, and a buyer has nothing to check a seller’s claim against. Your site does this
- 4 of 440 Serve the file as something other than plain text. The specification says other types "should be treated as an error and the content ignored", so a buyer following it reads nothing at all — and every one of these was a web page standing in for a file that is not there. Your site does this
- 3 of 457 Carry at least one line that is not three things separated by commas, so whoever that line was meant to authorise is not authorised. Your site does this
What this is evidence about
457 sites is 457 sites. They are small, ad-funded content businesses named by two ad networks — not the web, and not the large publishers who negotiate their own deals. A publisher with no ad network is not in the list we drew from at all. The draw used a fixed starting number (20260902), so anyone with the same two published lists can repeat it and get the same sites. Measured 2026-09-02.
The six lists we could fetch, and what each holds: Mediavine 9,116 accounts against 9,085 sites, Raptive 12,840 accounts against 7,135 sites, Playwire 1,314 accounts against 1,224 sites, Newor Media 940 accounts against 940 sites, Monumetric 823 accounts against 823 sites, Freestar 739 accounts against 728 sites. Two of them, Mediavine and Raptive, are the ones the frame is drawn from, so every site in the sample is on at least one. A seventh list exists and is deliberately left out: Google publishes one covering the whole open market rather than one network’s customers, it runs to 108 MB, and it answers a different question.
440 of the 457 files were fetched for this measurement, one at a time with a pause and under a name that says where to complain. The other 17 had already been collected by our nightly look and were read from what we held, which cost those publishers nothing at all.
A disagreement is not a fault, and neither file says whose. Nothing in
either one carries a date, so we cannot tell a publisher who left last
week from an account somebody has always had wrong.
And what a buyer does about it is not something we measured. All we can
say is what the two files let it confirm. The specification says these
lists exist so that buyers can discover who the entities are that
are either direct sellers of or intermediaries in the selling of
digital advertising
; whether a particular buyer declines to bid
when it cannot is between that buyer and its own rules.
Why the account number is the thing compared, rather than the name or
the address: the sellers.json specification says of that field that it
is the same ID that appears in an ads.txt file
. The address is a
looser match by design — it is the business domain name of the
company (the legal entity) that is paid for inventory
, which is
often not the site the ads run on. That is why the third row above is
marked as worth knowing rather than worth fixing.