ads.txt checked against ad networks' own customer lists
Plain Reckoner

1 in 9 Mediavine sites cannot prove, from their own ads.txt, that Mediavine sells their ads

841 words · about 4 min

Ad networks publish lists of the sites they sell for. Publishers publish a file called ads.txt naming who may sell their ads. Both are public, so the two can be checked against each other — and nobody does. Across 462 publisher-to-network pairings, 36 could not be confirmed from the publisher's own file: 20 serve no ads.txt at all, 6 name no ad network, 5 name a different one, and 4 return a web page where a text file should be. The rate is not the same everywhere. Mediavine sites failed to confirm 11.1% of the time against Raptive's 3.1% — a 3.6-fold difference on the same test.

How it was measured
We drew 500 domains at random from the 16,085 that two large ad networks name as their own customers, and fetched ads.txt from each. 457 answered. For each site we parsed the file to the IAB Tech Lab specification and asked one question: does it name the network that claims this site as a customer? A pairing is 'confirmed' when it does. It is unconfirmed when the file is missing, unreadable, names no network, or names only a different one. We did not check whether any seller ID is genuine, and an unconfirmed pairing is not evidence that anyone is selling inventory they do not own — it is a site a buyer cannot verify. Read on 2026-09-02.
Last checked
Listen to this Playing read from this page, nothing added

There is a file on your website called ads.txt. It lists the companies allowed to sell advertising on your pages. Buyers read it before they bid, and if your ad network is not named in it, a careful buyer will not buy.

Your ad network also publishes a list — the sites it sells for.

Both documents are public. Either one can be read by anyone. So they can be checked against each other, and as far as we can tell nobody does that.

We did it for 462 pairings.

What we found

426 of 462 matched. The publisher's file names the network that claims them. That is the system working, and it is most of it.

36 did not. Broken down:

What was wrongSites
No ads.txt on the site at all20
The file exists but names no ad network6
The file names a different network5
The file returns a web page, not a text file4
The site is listed under another company's number1

The last two are the interesting ones, because the publisher almost certainly thinks they are fine.

The four that return a web page

An ads.txt file has to be plain text. Four of these sites return HTML — usually the site's own "page not found" design, served with a success code instead of an error.

To you it looks like nothing is wrong. To a buyer's parser it is a file that exists and contains no authorised sellers. That is worse than having no file, because "missing" is a known state that some buyers tolerate, and "present but empty" reads as a deliberate statement that nobody may sell your ads.

One site in our sample publishes an ads.txt that declares zero seller records. Among the 442 sites that do publish a working file, the middle one declares 75.

The networks are not the same

Same test, same week, same kind of site:

NetworkCould not be confirmed
Raptive7 of 225 — 3.1%
Mediavine26 of 234 — 11.1%

A Mediavine site is 3.6 times more likely than a Raptive site to be unconfirmable from its own file.

We are not going to tell you why, because we did not measure why. The obvious explanation is that the two networks differ in how firmly they check the file during onboarding, or in how much of it they manage for the publisher. That is a guess, and it is not in the data.

What this is not

It is not fraud. A site that cannot be confirmed is a site a buyer cannot verify. It is not evidence that anyone is selling inventory they do not own. Those are different claims and only the first one is measured here.

It is not a check of the seller IDs. We asked whether the network is named. We did not check whether the numbers beside its name are the right numbers.

It is not the whole web. These are small, ad-funded content sites on two networks. Publishers with no ad network are not in the frame at all.

Check your own in about a minute

1. Open yoursite.com/ads.txt in a browser. You should see plain text — lines of commas, not a designed page. If you see your website's layout, or a 404 page, that is one of the four failures above. 2. Search it for your network's name. mediavine.com, raptive.com, google.com and so on. If your network is not in there, buyers cannot confirm they are allowed to sell for you. 3. Check nothing else overwrote it. Some hosts and some plugins generate their own ads.txt and quietly replace yours. The file at the URL is what counts — not the settings screen that claims to manage it.

Our free tool reads your file and tells you what a buyer's parser would make of it. Nothing you type leaves your browser.

Why we bothered

Most published work about ads.txt is about fraud, and it is written by people selling anti-fraud products. The ordinary question — does the file actually say what the publisher thinks it says — is cheap to answer and nobody answers it, because there is nothing to sell at the end of it.

That is the same reason we measured which AI crawlers publishers actually block in robots.txt, and found most of them naming a crawler its own operator does not publish. Both files are public, both are trusted to be right, and both are usually written once and never read again.

Check this yourself

- The data — all 462 pairings, as a CSV, free to reuse - Archived with a DOI: 10.5281/zenodo.22280372

The domain is not published. Every field the measurement used is, so you can recompute all of the above; which site each row belongs to cannot be recovered from it.

Tracked as ADS-TXT-ROSTER-DISAGREEMENT. If a number here looks wrong, tell us and we will check it against the source.

One email per finding

Get these as they land

One email per finding — the number, the method, and the date it was true. No schedule, because measurements do not arrive on one.

Data controller: Plain Reckoner. Contact contact@plainreckoner.com.