Glossary
ads.txt
ads.txt is a plain text file at the root of a domain listing the companies authorised to sell that site's advertising inventory. It exists to defeat domain spoofing, where inventory is sold as belonging to a reputable site when it does not. Buyers fetch the file and refuse bids from sellers who are not listed, which makes an incomplete or missing file a direct loss of demand rather than a technical defect.
What a line contains
The advertising system's canonical domain, such as an exchange's hostname.
The publisher's account identifier within that system.
The relationship: `DIRECT` when the publisher controls the account, `RESELLER` when the named party is authorised to resell.
Optionally, the certification authority identifier for the advertising system.
Lines beginning with `#` are comments, and variable declarations such as `CONTACT` and `OWNERDOMAIN` may appear alongside the records.
The `sellers.json` file published by each advertising system is the other half of the mechanism: ads.txt names the systems, and sellers.json lets a buyer resolve the account identifier to a named seller.
How buyers use it
A buyer receiving a bid claiming to be for a domain fetches that domain's ads.txt and checks whether the seller is listed.
An unlisted seller is refused, which is the mechanism that removes spoofed inventory from the market.
A missing file means no authorisation can be verified, and many buyers now treat that as a reason to bid lower or not at all.
Incomplete files are the common failure: a new partner added to the ad stack and never added to the file, whose inventory is then silently refused.
Where it must be
At the root of the domain — `https://example.com/ads.txt` — served as plain text over HTTPS.
Per host, with the specification defining how a subdomain may point at the root domain's file through the `OWNERDOMAIN` and subdomain declarations.
It must return 200 and must not redirect anywhere outside the permitted cases, since a redirect chain makes authorisation ambiguous.
`app-ads.txt` is the equivalent for mobile applications, at the root of the developer's website named in the application store listing.
How to check it
`curl https://example.com/ads.txt` returns the file. A 404 means no declaration exists, which is correct for a site that sells no advertising.
Confirm the content type is plain text, since some servers return HTML for unknown extensions.
Compare the lines against the partners actually in use. An out-of-date file is the usual defect and it is invisible without that comparison.
Remove lines for partners no longer used, since an authorisation left in place remains an authorisation.
Check the file's size and line count against what you expect. Files of several thousand lines are normal for large publishers and are a sign of accumulated reseller entries on a small site.
Frequently asked questions
- Do I need ads.txt if I do not sell advertising?
- No. It is only meaningful for sites selling programmatic inventory. Its absence on any other site is correct.
- What is the difference between DIRECT and RESELLER?
- DIRECT means the publisher controls the account with that advertising system. RESELLER means the named party is authorised to resell the inventory.
- What is app-ads.txt?
- The equivalent file for mobile applications, hosted on the developer's website as named in the application store listing.
Sources
Related
VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.
Scan a website