Approvalens

ads.txt Checker and Validator for AdSense

Enter your domain and we fetch /ads.txt, validate every line against the IAB format and confirm that Google is listed with your own publisher ID. The result appears above, and the guide below explains every message.

What this ads.txt checker tests

ads.txt (Authorized Digital Sellers) is a public text file at the root of your domain. It lists the companies that may sell your ad space, and buyers, Google included, read it before they bid. If the file exists and does not list you, Google will not buy your inventory, so one typo can quietly cost you money.

  • Fetches https://yourdomain.com/ads.txt from the root domain and records the HTTP status and any redirects
  • Checks that the response is plain text (Content-Type: text/plain), not an HTML page or a soft 404
  • Validates each line against the IAB ads.txt 1.1 format: ad system domain, account ID, DIRECT or RESELLER, and an optional certification authority ID
  • Finds the google.com record and checks Google's certification authority ID, f08c47fec0942fa0
  • Flags a ca-pub- prefix, the wrong number of digits and stray characters
  • Compares the publisher ID in ads.txt with the one in your AdSense code or google-adsense-account meta tag

How to read the result

Every line gets a status. Green means the line follows the spec. A warning marks a line that crawlers will probably accept but that is worth tidying, such as a missing certification ID. An error marks a line a crawler may skip entirely.

The row that matters most is the Google record. A correct one looks exactly like this, with your own 16-digit number in place of the zeros: google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0

If the publisher ID in the file differs from the one in your ad code, the checker shows both. Fix the file, not the code. Your real ID is in AdSense under Account, Settings, Account information.

Common ads.txt errors and exact fixes

These six problems cause most “ads.txt not found” and “Earnings at risk” notices.

  • ca-pub- instead of pub-. Wrong: google.com, ca-pub-1234567890123456, DIRECT, f08c47fec0942fa0. Right: google.com, pub-1234567890123456, DIRECT, f08c47fec0942fa0. Google's ads.txt FAQ tells you to delete product prefixes such as ca-.
  • File not found (404). The file must sit at the root: example.com/ads.txt, not example.com/blog/ads.txt. A file that exists only on www.example.com is read only if example.com/ads.txt redirects to it.
  • HTML instead of text. If your theme serves its 404 page with status 200, or you saved the file in a word processor, crawlers see markup. Save it as plain UTF-8 text in a code editor and check that it opens as bare text in your browser.
  • RESELLER for your own account. Your own AdSense line should say DIRECT. RESELLER is for networks that sell your space through someone else's account.
  • Invisible characters and extra commas. Smart quotes, non-breaking spaces and bullets copied from a document break parsing. Type the line by hand instead of pasting it.
  • Blocked by robots.txt. A rule such as Disallow: /ads also matches /ads.txt. Check it with our robots.txt tester.

Platform tips: WordPress, Blogger and static hosts

WordPress: upload ads.txt with your host's file manager or SFTP into the folder that holds wp-config.php, usually public_html. A plugin such as Ads.txt Manager works too. Afterwards, clear your page cache and any CDN cache, and make sure no security or redirect plugin sends /ads.txt to the home page.

Blogger: go to Settings, Monetization, turn on Custom ads.txt and paste your lines. Whatever you paste becomes the whole file, so the google.com line has to be in it.

Netlify, Vercel, Cloudflare Pages or GitHub Pages: put ads.txt in the folder that is published as the site root, often public or static. If your shop builder does not let you upload root files, search its help pages for an ads.txt setting.

ads.txt and AdSense approval

ads.txt is not mandatory. Google calls it highly recommended, and it is one of three ways to connect your site, next to the AdSense code snippet and the meta tag. But once a file exists, Google's policies say you must be listed in it as an authorized seller, so a broken file is worse than no file.

After a fix, AdSense can take a few days to crawl the file again, which is why notices can linger. A clean ads.txt removes one reason for trouble, but it does not decide approval on its own. Reviewers also look at your content, navigation, privacy policy and crawler access.

The full Approvalens scan checks ads.txt together with more than 100 other signals across up to 5,000 pages of your site, with the evidence behind every finding. Sources: https://support.google.com/adsense/answer/12171612 and https://support.google.com/adsense/answer/7679060

FAQ

Is ads.txt required for AdSense approval?

No. Google says ads.txt is not mandatory but highly recommended, and you can connect your site with the AdSense code or a meta tag instead. If you do publish the file, it must include your google.com line, or Google will not buy ads on your domain.

Why does AdSense still say ads.txt not found after I added it?

AdSense crawls ads.txt on its own schedule, and an update can take a few days to show. Meanwhile, check that example.com/ads.txt (without www) returns status 200 as plain text over both HTTP and HTTPS, that robots.txt does not block it and that no cache serves an old copy.

What is f08c47fec0942fa0?

It is Google's certification authority ID, issued by the Trustworthy Accountability Group (TAG). The IAB spec makes the fourth field optional, but Google's own ads.txt guide includes it, so copy it exactly.

Should I write pub- or ca-pub- in ads.txt?

Always pub- followed by 16 digits. The ca-pub- form belongs in the AdSense code snippet, not in ads.txt.

Does this tool see my ads.txt the way Google does?

It fetches the same public URL and applies the published IAB and Google rules. It cannot see inside your AdSense account, so the ads.txt status shown there has the final word.

Free AdSense readiness tools