Skip to content
Quasar Tools Logo

Best Tools to Check ads.txt Files

The best tools to check ads.txt files: validators, common errors, how to fix them, and how to monitor ads.txt health to protect programmatic ad revenue.

DH
Tutorials & How-Tos12 min read2,700 words

A single formatting error in your ads.txt file can trigger DSP bid suppression and wipe out a meaningful percentage of your programmatic ad revenue — silently, with no error message on your site. ads.txt is a plain-text file with strict parsing rules, and most publishers only discover problems through unexplained CPM drops in their ad dashboard. This guide covers every method for checking ads.txt files, the errors that matter most, and how to keep the file healthy long-term.

4Required fields per linedomain, account ID, type, authority
2Valid account typesDIRECT and RESELLER only
24hRe-crawl windowafter fixing errors

What is ads.txt?

ads.txt stands for Authorized Digital Sellers. It is a plain-text file hosted at the root of your domain — `yourdomain.com/ads.txt` — that lists every ad exchange, network, and supply-side platform (SSP) authorised to sell advertising inventory on your website. The IAB Tech Lab introduced the standard in 2017 specifically to combat domain spoofing: a form of ad fraud where bad actors sell inventory claiming to be from a premium publisher domain they do not own.

When a demand-side platform (DSP) or advertiser places a programmatic bid, their system checks the publisher's ads.txt file before spending. If the selling entity listed in the bid request does not appear in the ads.txt file, the buyer either skips the bid entirely or applies a significant discount. A missing file, a misconfigured entry, or an outdated record translates directly to lower fill rates and reduced effective CPMs.

The ads.txt line format

Each line in a valid ads.txt file follows a precise four-field format. Understanding the structure is essential for spotting errors — most validation problems come from lines that deviate from this exact pattern.

ads.txt
text
# Format: domain, publisher-account-id, account-type, authority-id
# account-type must be DIRECT or RESELLER
# authority-id (TAG-ID) is optional but strongly recommended

google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
appnexus.com, 1234, RESELLER, f5ab79cb980f11d1
openx.com, 540191398, RESELLER, 6a698e965929

# Lines starting with # are comments — ignored by parsers
# [email protected]
# SUBDOMAIN=sub.yourdomain.com
  • domain: The root domain of the advertising system (e.g. `google.com`, not `ads.google.com`).
  • publisher-account-id: Your account or publisher ID at that ad network.
  • account-type: Either `DIRECT` (you have a direct contract) or `RESELLER` (sold via intermediary).
  • authority-id: The optional but recommended TAG-ID or Seller Account ID from the Trustworthy Accountability Group. Omitting it reduces buyer confidence.

Note

Lines that start with `#` are treated as comments and are completely ignored by all ads.txt parsers. Use them for contact information, subdomain declarations, and internal notes. The `SUBDOMAIN=` directive tells crawlers to also check ads.txt files on subdomains for multi-domain publisher setups.

Why ads.txt errors cost revenue

The enforcement of ads.txt by the programmatic ecosystem is not uniform — different DSPs handle invalid files differently, which makes the revenue impact hard to predict and easy to miss until CPMs drop noticeably. Understanding how buyers respond to errors explains why checking ads.txt regularly is worth the effort.

How DSPs respond to ads.txt issues

  • Missing file (404): Most major DSPs treat a missing ads.txt as "unverified inventory." Some skip bidding entirely; others bid at a heavily discounted floor price.
  • Invalid line format: Lines with wrong field counts or invalid account-type values are silently skipped — the entry is treated as if it does not exist.
  • DIRECT vs RESELLER mismatch: If a network sells as DIRECT but your file lists them as RESELLER (or vice versa), buyers flag the discrepancy and reduce confidence in the inventory.
  • Missing authority-id: The TAG Certified Channels programme requires authority-ids. Buyers enforcing TAG certification skip entries without them.
  • Redirect to homepage: A 301 or 302 redirect from /ads.txt to the homepage is treated as a missing file by most crawlers.

Buyers of digital advertising can use ads.txt to determine if a digital media buying opportunity is authorized by the publisher and whether resellers are permitted to sell the publisher's inventory.

IAB Tech Lab ads.txt specification

Google AdSense and ads.txt warnings

Google AdSense is particularly strict about ads.txt enforcement. If your AdSense publisher ID is not listed correctly in your ads.txt file, AdSense displays a warning in the dashboard and can reduce serving for your approved ads slots. The required AdSense entry follows this exact format: `google.com, pub-XXXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0`. The authority-id `f08c47fec0942fa0` is Google's fixed TAG-ID — it must appear exactly as written.

Warning

Never delete an ad network entry without confirming you have fully offboarded from that network first. If a network is still serving ads on your site but their entry is missing from ads.txt, their bids will be treated as unauthorised, and you will lose those impressions without realising why.

How to check your ads.txt file

Checking ads.txt requires two separate verifications: accessibility (is the file reachable at the right URL?) and validity (is every line correctly formatted?). Both checks are quick and can be done in under two minutes with the right tools.

1

Verify the file is accessible at the root domain

Open a browser in incognito mode and navigate to `yourdomain.com/ads.txt`. The file should load as plain text with no HTML wrapper, no login prompt, and no redirect. If you see a 404 or the file redirects to your homepage, the ads.txt is not accessible to ad platform crawlers regardless of whether the file exists on your server. Check your web server configuration — many WordPress sites accidentally redirect all undefined paths to the home page via `.htaccess` rules.

2

Paste the file into the Quasar Tools Ads.txt Validator

Copy the full contents of your ads.txt file — either from the browser or directly from your server — and paste it into the Ads.txt Validator. The tool parses each line against the IAB spec, flags incorrect field counts, invalid account-type values, and duplicate entries, and reports every error with a line number. Your data is processed entirely in the browser — nothing is uploaded to a server.

3

Cross-reference with your ad network partner list

Compare the validated entries against the current ads.txt lines provided by each ad network you use. Most networks publish their required ads.txt entries in their publisher documentation or dashboard. Networks occasionally update their required entries — a domain change or a new authority-id — and publishers miss the update. A mismatch between what your file lists and what a network currently requires causes the same bid suppression as a missing entry.

4

Fix errors and re-verify accessibility

Correct every reported error, re-upload the file to your server's root directory, and navigate to `yourdomain.com/ads.txt` again to confirm the updated file is live. Allow 24–48 hours for major ad platforms to re-crawl the file before expecting revenue recovery. Use the validator a second time on the live file to confirm no upload errors introduced new problems.

Ads.txt Validator

Validate ads.txt files for format errors, invalid account types, duplicate entries, and missing required fields — browser-local, no upload required.

Open tool

Common errors and how to fix them

Most ads.txt problems fall into a small number of repeating patterns. Each one has a specific cause and a specific fix — once you know what to look for, they take minutes to resolve.

Wrong field count

The most common error is a line with the wrong number of comma-separated fields. Each line must have exactly three required fields (domain, account-id, account-type) and one optional field (authority-id). Two-field lines (just domain and account-id) and five-field lines (extra fields appended by copy-paste errors) both fail validation. Check every line that your validator flags — often the problem is a stray comma or a missing comma from manual editing.

Invalid account-type value

The account-type field accepts only two values: `DIRECT` and `RESELLER`. Case-insensitive parsers accept `direct` and `reseller`, but the IAB spec recommends uppercase. Any other value — `DIRECT/RESELLER`, `Partner`, `Network`, or a blank — fails validation and the line is skipped entirely by compliant parsers. Review each flagged line and correct the value to exactly `DIRECT` or `RESELLER` based on your contractual relationship with that network.

File served from wrong path or with wrong Content-Type

The ads.txt file must be accessible at exactly `yourdomain.com/ads.txt` — not `/ads.txt.php`, not `/ads-txt`, not a subdirectory path. The server should return a `200 OK` status with a `Content-Type` of `text/plain`. Some hosting platforms serve `.txt` files with `application/octet-stream`, which some crawlers reject. Use the Robots Validator alongside your ads.txt check — if robots.txt has similar accessibility problems, you likely have a server configuration issue affecting all `.txt` files at root.

ErrorWhat the validator reportsFix
Wrong field countLine has 2 fields, expected 3–4Add missing domain, account-id, or type
Invalid account type"partner" is not DIRECT or RESELLERChange to DIRECT or RESELLER
Duplicate entryDuplicate of line 12Remove the duplicate line
Redirect / 404File not accessible at /ads.txtFix server routing or .htaccess
Hidden Unicode charsUnexpected character at position 8Re-type the line — do not copy from PDFs
Wrong subdomain entryUse SUBDOMAIN= directive insteadAdd SUBDOMAIN=sub.domain.com comment
Missing TAG authority-idAuthority-id recommendedAdd TAG-ID from network documentation

Hidden characters and encoding problems

A particularly difficult ads.txt problem is lines that look correct visually but fail parsing because they contain hidden Unicode characters — non-breaking spaces, zero-width spaces, or smart quotes — introduced by copy-pasting from a PDF, a Word document, or a rich-text email. Most text editors do not show these characters. If a line fails validation with no obvious formatting error, retype it manually rather than copy-pasting. The Unicode and Encoding Repair Tool can strip invisible Unicode characters from pasted text before you put it in your ads.txt file.

app-ads.txt and sellers.json

ads.txt was designed for web publishers. The programmatic ad ecosystem extended the standard to two related specifications: app-ads.txt for mobile app inventory, and sellers.json for supply chain transparency. Understanding all three formats helps you build a complete authorisation picture.

app-ads.txt for mobile app publishers

Mobile app developers use app-ads.txt instead of ads.txt. The file format is identical — the same four-field line structure, the same DIRECT/RESELLER account types, the same authority-id field. The difference is discovery: for apps, ad platforms look up the developer's website URL from the App Store or Google Play listing and check for app-ads.txt at the root of that domain. You host app-ads.txt on your developer website, not in the app itself. Use the App-ads.txt Validator to check mobile app inventory authorisation using the same validation rules.

sellers.json — the supply chain complement

sellers.json is the complement to ads.txt from the other direction: ad networks and SSPs publish a sellers.json file at their own domain listing all publishers (sellers) they represent. A buyer can cross-reference your ads.txt RESELLER entry against the SSP's sellers.json to verify the supply chain is legitimate. While you do not create sellers.json as a publisher, understanding it explains why having correct authority-ids in your ads.txt matters — they are used to match your entries against sellers.json records.

Note

For multi-domain publisher networks, the `SUBDOMAIN=` directive in ads.txt tells crawlers that subdomains have their own ads.txt files. Example: `SUBDOMAIN=sports.yourdomain.com` instructs buyers to check `sports.yourdomain.com/ads.txt` for inventory from that subdomain.

Monitoring ads.txt health

A one-time ads.txt check is not enough — ad network entries change, new partners are onboarded, and file accessibility can break after server or CMS updates. Building a lightweight monitoring routine prevents silent revenue loss between manual audits.

Google AdSense dashboard warnings

The AdSense dashboard shows an ads.txt warning banner if your publisher ID is missing from your ads.txt file or if the file is not accessible. Check the AdSense dashboard after any server migration, CMS update, or `.htaccess` change — these are the three most common events that break ads.txt accessibility without the publisher noticing. The warning appears under the "Account" section in AdSense settings.

Programmatic partner notifications

Most major SSPs and ad networks send email notifications when their required ads.txt entries change. Subscribe to update notifications from each partner's publisher portal if available. When a partner updates their domain or authority-id, they typically give a 30–90 day migration window before old entries stop being honoured — but only publishers who are monitoring will catch the change in time.

Technical audit workflow

Include ads.txt validation in your quarterly technical SEO audit alongside robots.txt, sitemap validation, and canonical tag checks. Use the Robots.txt Rule Conflict Explainer to verify that no robots.txt rule accidentally blocks ad platform crawlers, and the Sitemap Validator to check sitemap health in the same session. These files live at the same server root level and are often affected by the same misconfiguration events.

Tip

Set a calendar reminder to re-validate your ads.txt file one week after every major server migration, WordPress update, hosting provider change, or CDN configuration update. These events are the most common cause of ads.txt accessibility regressions that go unnoticed for weeks.

ads.txt best practices

Following these practices keeps your ads.txt file accurate, accessible, and effective — maximising bid eligibility while protecting your inventory from unauthorised resellers.

Keep the file lean and current

Remove entries for ad networks you no longer work with. An oversized ads.txt with dozens of inactive entries does not directly harm revenue, but it increases the surface area for errors and makes the file harder to audit. When you offboard from a network, remove their entries at the same time you remove their ad tags from your pages — treat both as part of the same offboarding process.

Always use authority-ids when available

The TAG authority-id (also called TAG-ID or Seller Account ID) is technically optional in the ads.txt spec, but major DSPs prefer entries that include it. It allows buyers to verify the full supply chain from publisher through to exchange using sellers.json cross-referencing. Every major ad network publishes their authority-id in their publisher documentation — include it in every entry where it is available.

  • One entry per line: Never combine multiple networks on a single line — each authorised seller relationship gets its own line.
  • Validate before every upload: Run the Ads.txt Validator on the file before uploading to catch errors you introduced during editing.
  • Use UTF-8 encoding without BOM: Save the file as plain UTF-8. A BOM (Byte Order Mark) at the start of the file can break parsing in some ad platform crawlers.
  • Do not use trailing whitespace: Many text editors add invisible trailing spaces. These can cause line-level parse failures in strict validators.
  • Version control your ads.txt: Keep ads.txt in your site's version control repository. A git history lets you trace exactly when an entry was added or removed if revenue unexpectedly drops.

App-ads.txt Validator

Validate app-ads.txt files for mobile app advertising inventory — same format rules as ads.txt, optimised for the mobile app publisher context.

Open tool

Key takeaways

  • ads.txt lists every authorised seller of your ad inventory — missing or invalid entries cause DSPs to skip bidding or discount your CPMs.
  • Verify accessibility first: navigate to `yourdomain.com/ads.txt` and confirm it loads as plain text with a 200 status, no redirect, and no HTML wrapper.
  • Use the Ads.txt Validator to check every line for format errors, invalid account types, and duplicates — all processing happens in your browser.
  • The five most common errors are wrong field count, invalid account-type values, file served at the wrong path, hidden Unicode characters, and missing authority-ids.
  • Google AdSense requires the exact entry `google.com, pub-XXXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0` — the authority-id `f08c47fec0942fa0` is fixed and must match exactly.
  • For mobile apps, use app-ads.txt with the same format hosted at your developer website root, discovered via your app store listing.
  • Re-validate ads.txt after every server migration, CMS update, or hosting change — these are the most common events that silently break file accessibility.

Frequently Asked Questions

An ads.txt file (Authorized Digital Sellers) is a plain-text file hosted at yourdomain.com/ads.txt that lists every ad network, exchange, and SSP authorised to sell advertising inventory on your website. It was introduced by the IAB Tech Lab in 2017 to combat ad fraud — specifically domain spoofing, where fraudsters sell inventory on other publishers' domains without permission. Advertisers and DSPs check ads.txt before bidding, so missing or incorrect entries reduce your effective CPMs and total ad revenue.

The simplest check is to visit yourdomain.com/ads.txt directly in a browser. The file should load as plain text with no HTML, no redirects, and no authentication prompts. If it returns a 404 or redirects to the homepage, it is not accessible to ad platforms. For a deeper check, paste the file contents into the Quasar Tools Ads.txt Validator — it verifies each line's format, flags duplicates, and identifies invalid account type values that ad platforms reject.

The five most frequent ads.txt errors are: missing or incorrect field count on a line (each line requires exactly three or four comma-separated fields), invalid account type value (only DIRECT and RESELLER are valid), ads.txt hosted at the wrong URL path or returning a redirect to the homepage, duplicate entries for the same network and account ID combination, and entries copied with trailing whitespace or hidden Unicode characters that break parsing. Most of these are invisible in a text editor — a dedicated ads.txt checker catches them immediately.

Errors in ads.txt have direct revenue consequences. DSPs and programmatic buyers that enforce ads.txt compliance will either reduce bids or stop bidding entirely on inventory from publishers with invalid files. Google AdSense and AdX in particular report ads.txt warnings in the AdSense dashboard and can withhold serving approved ads until the file is corrected. A completely missing ads.txt file is treated differently from an invalid one — some platforms treat absence as "no restriction", while others treat it as unverifiable inventory.

Each line in an ads.txt file follows the format: domain, publisher-account-id, account-type, authority-id (optional). Example: `google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0`. The domain is the ad system's root domain; the publisher account ID is your account identifier at that network; account-type is either DIRECT (you have a direct contract) or RESELLER (sold through an intermediary); and the authority-id (TAG-ID or Seller ID) is optional but recommended. Lines starting with # are comments and are ignored by parsers.

ads.txt applies to web publishers — it is hosted at the root of a website domain. app-ads.txt applies to mobile app developers — it is hosted at the root of the developer's website domain and lists authorised sellers for app inventory. The file format is identical, but the discovery mechanism differs: for apps, ad platforms look up the developer's website URL from the app store listing and check for app-ads.txt there. The Quasar Tools App-ads.txt Validator handles mobile app inventory validation with the same format checks as the ads.txt validator.

Update your ads.txt file whenever you add or remove an ad network partner, when a partner sends updated entry instructions, or when an ad network changes its root domain. Most publisher ad networks and SSPs provide an ads.txt line or lines you should include as part of their onboarding documentation. Check your major ad network dashboards quarterly — partners occasionally update their required entries, and an outdated ads.txt entry can cause impression loss in the same way as a missing one.

ads.txt does not directly affect SEO rankings. Google Search does not use ads.txt as a ranking signal. However, a missing or broken ads.txt can trigger warnings in Google AdSense and reduce ad revenue, which can motivate publishers to reduce content quality or display more intrusive ad units to compensate — both of which can indirectly affect user experience and rankings. Keeping ads.txt correctly formatted is a technical publishing hygiene task, not an SEO task, but it belongs in the same technical site audit workflow.

ShareXLinkedIn

Related articles