Homeโ€บValidatorsโ€บDataโ€บAds.txt Validator

Ads.txt Validator

Data

Enter your domain to check if ads.txt exists and has valid AdSense entries. Verifies file status, publisher IDs, and DIRECT/RESELLER records instantly.

Reviewed by the thecalcu.com team ยท Last updated August 17, 2026

We'll fetch https://{domain}/ads.txt and check it against the IAB ads.txt spec.

What is a Ads.txt?

An Ads.txt Validator checks whether a domain publishes a correctly formatted ads.txt file โ€” the Authorized Digital Sellers standard the IAB Tech Lab created in 2017 to stop ad fraud from unauthorized resellers spoofing publisher inventory. Google AdSense, along with most major exchanges, reads this file before it decides whether to bid on your ad slots, which makes a broken or missing file a quiet drag on revenue that doesn't show up as an obvious error anywhere in your dashboard.

The file itself is simple: one line per authorized seller, each listing an ad system domain, your account ID with that system, and whether the relationship is direct or through a reseller. Getting the syntax right matters more than it might seem, because a single malformed line can cause a buyer's crawler to reject the whole file rather than just that one entry. This tool fetches your live ads.txt and checks it against the spec the same way a buyer's crawler would, so you catch the problem before it costs you impressions. Pair it with the Robots.txt Validator if you're auditing your site's crawler-facing files as a set.

Why Use an Ads.txt Validator?

Ad exchanges don't send you an error report when your ads.txt is broken โ€” they just quietly stop bidding, and the only symptom you'll notice is lower fill rates or revenue that doesn't match your traffic. Catching a missing DIRECT line or a typo in your publisher ID here takes seconds, versus the days it can take to notice a revenue dip and trace it back to a file most people set up once and never look at again.

It's also useful after any site migration, CMS switch, or CDN change, since ads.txt sometimes gets dropped or served with the wrong content-type during a rebuild. A quick check confirms the file survived the move intact and is still reachable at the exact path buyers expect.

How to use this Ads.txt calculator

  1. Enter your site's domain in the Domain Name field โ€” just the bare domain like example.com, no need for https:// or a trailing path.
  2. Click Check ads.txt. The tool builds https://yourdomain.com/ads.txt and fetches it live.
  3. If the file isn't found, you'll see the HTTP status returned and a note that AdSense requires the file at your site's root.
  4. If it's found, expand Show fetched content to review the raw file alongside the validation result.
  5. Read the result panel: a green Valid badge means every line parsed correctly, while Invalid lists each line number with the specific problem โ€” a missing field, a bad relationship type, or a malformed record.
  6. Fix any flagged lines in your actual ads.txt file on your server, then re-run the check to confirm.
Show formula & methodology โ†“Show less โ†‘

Formula & Methodology

The validator applies the IAB Tech Lab's ads.txt 1.0.2 specification to each non-blank, non-comment line:

- Record format: <AD SYSTEM DOMAIN>, <PUBLISHER ACCOUNT ID>, <RELATIONSHIP>[, <CERTIFICATION AUTHORITY ID>] โ€” at least the first three comma-separated fields are required.
- Relationship must be DIRECT or RESELLER (case-insensitive).
- Variable declarations โ€” contact=, subdomain=, ownerdomain=, managerdomain= โ€” are recognized separately and don't need the record format.
- Lines starting with #, or anything after a # on a record line, are treated as comments and ignored.

Valid example:
google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0

Invalid example:
google.com, pub-0000000000000000
This fails because it's missing the relationship type โ€” the parser expects at least three fields and only finds two.

Common Reasons This Validator Fails

A few mistakes account for most ads.txt failures. Missing the relationship type entirely โ€” pasting just the domain and publisher ID โ€” is the most frequent one, often from copying a partial snippet instead of the full line an ad partner provided. Typing DIRECTS or Reseller with trailing characters also breaks the check, since the relationship field has to match DIRECT or RESELLER exactly aside from case.

Publishing the file at the wrong path is another common trip-up โ€” it has to sit at the domain root, not in a subfolder, and it has to be plain text, not HTML wrapped in a CMS template. Some site builders serve /ads.txt with an HTML error page instead of a 404 when the file is missing, which can fool a quick manual check into thinking the file exists when a validator would catch that it isn't real content. Forgetting to add a RESELLER line for a network partner, while only including your own DIRECT line, can also cost that partner's demand even though your own AdSense line is fine.

Quick Reference

Field Example Required
Ad system domain google.com Yes
Publisher account ID pub-0000000000000000 Yes
Relationship DIRECT or RESELLER Yes
Certification authority ID f08c47fec0942fa0 No

Related checks worth running alongside this one:

Frequently Asked Questions

What is ads.txt and why does it matter for AdSense?
ads.txt (Authorized Digital Sellers) is a plain-text file published at your site's root that lists every ad exchange and network authorized to sell your inventory. Google AdSense and other buyers check this file before bidding, and its absence or a broken entry can quietly cut off demand from exchanges that respect the standard. The IAB Tech Lab introduced it in 2017 specifically to stop unauthorized resellers from spoofing publisher inventory.
How do I check if my ads.txt file is valid?
Enter your domain into the field above and click Check ads.txt. The tool fetches https://yourdomain.com/ads.txt directly, parses every line against the IAB format, and reports whether it's missing, malformed, or valid โ€” along with a count of valid records and any line-by-line errors.
What does a single line in ads.txt actually mean?
Each record has three required fields separated by commas: the ad system's domain, your publisher account ID with that system, and a relationship type of either DIRECT or RESELLER. A line like google.com, pub-0000000000000000, DIRECT tells buyers that Google sells your inventory directly, without an intermediary.
What's the difference between DIRECT and RESELLER?
DIRECT means you have a direct account with the ad system named in that line โ€” this is what most publishers use for AdSense. RESELLER means a third party is authorized to sell your inventory on that ad system's behalf, which is common when working with ad networks that aggregate demand across multiple exchanges.
Does a valid ads.txt guarantee my AdSense account is approved?
No. This tool only confirms the file exists at the right URL and its syntax follows the IAB spec โ€” it has nothing to do with AdSense account approval, policy compliance, or payment status. A syntactically perfect ads.txt with the wrong publisher ID will still fail to authorize your inventory, so double-check the ID against your AdSense account under Sites.
Where do I find my correct publisher ID?
Log into your AdSense account and go to Account Information, where your publisher ID appears in the format pub-0000000000000000. AdSense also generates a ready-to-paste ads.txt snippet under the Sites tab that you can drop straight into your file.
Is my domain or file content stored anywhere?
No. The domain you enter triggers a live fetch of your ads.txt file for validation only โ€” nothing is logged, cached, or stored after the check completes. You're checking a file that's already public on the internet, so there's no sensitive data involved in the first place.
Why does AdSense say my ads.txt has errors when the tool shows it's valid?
AdSense's own crawler can take up to 24 hours to re-fetch and re-process your ads.txt after a change, so a stale warning in your AdSense dashboard doesn't always mean the current file is broken. If this validator reports the file as valid, wait a day and recheck AdSense before assuming something's still wrong.
Can I have multiple lines for the same ad system?
Yes โ€” it's common to list one DIRECT line for your own AdSense account and separate RESELLER lines for each network partner reselling your inventory through that same exchange. Each line is evaluated independently, so duplicates with different publisher IDs or relationship types are valid, not an error.
What are the optional variable lines like contact= or subdomain= for?
Variables such as contact=, subdomain=, ownerdomain=, and managerdomain= aren't ad records โ€” they're metadata the IAB spec allows for buyer contact info or delegating ads.txt authority to a subdomain. This validator recognizes and skips them rather than flagging them as malformed records.
What happens if my site doesn't have an ads.txt file at all?
AdSense and other IAB-compliant buyers may reduce or withhold bids on your inventory since they can't confirm you're an authorized seller. Create a plain-text file named exactly ads.txt, add your AdSense DIRECT line, and upload it to your site's root directory so it's reachable at yourdomain.com/ads.txt.
Does app-ads.txt replace ads.txt for mobile apps?
No, they're separate files with the same format but different placement โ€” ads.txt covers your website while app-ads.txt covers a mobile app, hosted on the domain listed in the app's store listing. If you monetize both a site and an app, run each through the matching validator; see the [App-ads.txt Validator](/app-ads-txt-validator/) for the app-specific check.
Also known as
check ads.txtadsense ads.txt checkervalidate ads.txt fileis my ads.txt validads.txt authorized sellers checkergoogle adsense ads.txt tool