How to Check a Website's ads.txt File for Errors
To check a website's ads.txt, fetch /ads.txt from the domain's root and test every line against the IAB ads.txt format. The ads.txt checker does that for up to 100 domains a run (500 after a free Google sign-in) and returns the DIRECT and RESELLER counts, the ad systems named, the OWNERDOMAIN and the exact lines in error.
It reads one file per domain. Nothing is sent to the ad systems listed in it.
The by-hand way
- Open
https://yoursite.com/ads.txtin a browser. It should be plain text, not a web page. - Read each non-comment line. A record looks like
google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0: ad system domain, account ID, relationship, and an optional certification ID. - Look for typos in the relationship (
DIRCET), missing commas and stray characters. - Look for variable lines such as
CONTACT=,OWNERDOMAIN=andMANAGERDOMAIN=.
One file is quick. Across a list of publishers, or a network of sites, it is where the errors hide.
Step 1: paste the domains
Paste publisher domains, one per line. Up to 100 a run without an account, 500 after a free Google sign-in.
Step 2: run the check
Each domain's /ads.txt is fetched over HTTPS, or plain HTTP if HTTPS does not answer, following up to five redirects. The first 1 MiB is read and checked against the IAB Tech Lab ads.txt 1.1 specification.
Step 3: read each verdict
| Verdict | What it means | What to do |
|---|---|---|
| Valid | Every line parses | Nothing to fix |
| Has line errors | The file works but some lines do not parse | Fix the listed lines |
| No valid records | A file exists but holds no usable records | Rebuild it |
| No ads.txt | Nothing at /ads.txt |
Add one if the site sells ads |
| Unreachable | The domain did not answer | Try again later |
Why a broken line costs money
Buyers' platforms crawl ads.txt and compare it with the seller in each bid request. If the account ID is missing, or the line holding it does not parse, the impression can look unauthorised and be filtered out. A typo silently removes one seller. Filter the CSV on the line-errors column to find files that buyers partly ignore.
What this check cannot do
- It reads the publisher's file only. It does not match account IDs against the ad system's sellers.json, so it can say a record is well formed, not that the ID belongs to that publisher.
- app-ads.txt, and the files that SUBDOMAIN= lines point to, are not fetched.
- The first 1 MiB of a file is read.
- The limit is 100 domains a run without an account and 500 signed in.
For other file checks on a site, see checking a sitemap for errors and checking robots.txt for AI crawlers.
Check the publisher contacts
If you are pitching these publishers, check the contact list first. Upload it on the verify page: the first 100 email checks are free with a Google sign-in, no card. Each address comes back valid, risky or invalid with a reason, and nothing is sent to anyone on the list. For larger or recurring lists, see bulk email verification, list cleaning and pricing.
Check your domains now
Paste them into the ads.txt checker.
Common questions
How do I check a website's ads.txt?
Open /ads.txt at the root of the domain. Each record has three or four comma-separated fields: the ad system's domain, the publisher's account ID, DIRECT or RESELLER, and optionally a certification authority ID. An ads.txt checker validates every line and lists the ones that do not parse.
Where does ads.txt have to be?
At the root of the domain, as plain text, for example example.com/ads.txt. Subdomains are covered by SUBDOMAIN= lines in the root file.
What is the difference between DIRECT and RESELLER?
DIRECT means the publisher, or the site's owner, controls the account in that ad system. RESELLER means another company is authorised to resell the inventory through its own account.
Can the checker confirm an account ID is real?
No. That needs the ad system's sellers.json. The checker confirms each line is well formed and names an ad system domain.
Does it check app-ads.txt?
No. app-ads.txt uses the same format but lives on the developer's website, and this checker does not read it as such.
Check your list before you send
Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.