Free Ads.txt Checker and Validator
Use this free ads.txt checker to find mistakes in your ads.txt or app-ads.txt file. It checks every line, compares your account IDs with each partner’s sellers.json and gives you a clean file to download. You can check a live website, upload a file or paste the text. There is no sign up.
Loading the ads.txt checker...
Please turn on JavaScript to use the ads.txt checker.
What the ads.txt checker looks at
A single wrong character can make buyers skip a line. Therefore the tool checks the file from several angles.
- Format of every line. Domain, account ID, relationship and certification ID, plus spaces, quotes, tabs and hidden characters.
- Duplicates and conflicts. Lines that appear twice, and accounts that are listed as both DIRECT and RESELLER.
- Google lines. The common “ca-pub” mistake, the 16-digit publisher ID and Google’s certification ID.
- ads.txt 1.1 variables. OWNERDOMAIN, MANAGERDOMAIN, CONTACT, SUBDOMAIN and INVENTORYPARTNERDOMAIN.
- Server setup. HTTP status, the text/plain content type, HTTPS and redirects.
- sellers.json. Whether each account exists, whether its seller type fits DIRECT or RESELLER, and who owns it.
How to use the ads.txt checker
- First, type your domain, upload your file or paste the text, then press Check.
- Next, read the summary. Errors come first, because buyers may ignore those lines or the whole file.
- Then press Check sellers.json. The tool downloads the sellers.json of every ad system in your file and looks up your account IDs.
- After that, open Clean file, choose your options and download the corrected file.
- Finally, upload the new file to the root of your website, so it opens at yourdomain.com/ads.txt.
New to the topic? Our guide what is ads.txt and why you need it explains the basics.
Checking ads.txt against sellers.json
Every ad system publishes a sellers.json file with the accounts it pays. As a result, buyers can compare your ads.txt with that list. The sellers.json standard from IAB Tech Lab describes each account as PUBLISHER, INTERMEDIARY or BOTH. The ads.txt checker compares that type with the relationship in your file.
| Your ads.txt line says | sellers.json should say | If it does not match |
|---|---|---|
| DIRECT | PUBLISHER or BOTH | The account is probably managed by a partner, so the line should say RESELLER. |
| RESELLER | INTERMEDIARY or BOTH | You probably own the account, so the line should say DIRECT. |
| DIRECT, any type | The seller domain is your domain | The account belongs to another company. Use RESELLER, or set OWNERDOMAIN if it is your company domain. |
| Any line | The account ID is listed | The line is outdated or the ID has a typo. Buyers often skip sellers they cannot verify. |
Common ads.txt errors and how to fix them
| Problem | How to fix it |
|---|---|
| Google ID starts with “ca-pub-“ | Use “pub-” followed by 16 digits. The checker fixes this for you. |
| The server sends text/html | Configure the server to send ads.txt as text/plain. Often a plugin or cache serves a web page instead of the file. |
| The file is a web page | The address shows an error page or redirects to your home page. Upload a real text file to the root of the domain. |
| The same line appears twice | Remove the copy. Duplicates do no harm to buyers, but they make the file harder to manage. |
| One account is both DIRECT and RESELLER | Ask the partner which relationship is right and keep only that line. |
| OWNERDOMAIN is missing | Add OWNERDOMAIN=yourcompany.com. It should match the domain in your partners’ sellers.json files. |
| Quotes, tabs or extra fields | Write each line as domain, ID, relationship and an optional certification ID, separated by commas. |
| Redirect to another domain | One redirect to a partner is allowed. Two or more hops to other domains are not. |
Add new partner lines without duplicates
When you start with a new partner, you usually get a block of lines to add. However, many of them may already be in your file, sometimes with a different relationship. Paste the new lines into the Add new lines box. The checker then marks each line as new, already present, in conflict or invalid. It adds only the new lines, under a comment with today’s date, so you can see later what changed.
Working with several partners? Then header bidding is probably the reason your file keeps growing. Also see our list of Google AdSense alternatives.
ads.txt 1.1 variables
Version 1.1 of the ads.txt specification added two variables and kept three older ones. The checker validates all of them.
- OWNERDOMAIN names the business that owns the site. Only the first one counts.
- MANAGERDOMAIN names a partner that manages your monetization, optionally per country, for example MANAGERDOMAIN=partner.com, US.
- CONTACT tells buyers how to reach you.
- SUBDOMAIN points crawlers to an ads.txt file on a subdomain.
- INVENTORYPARTNERDOMAIN points to a partner that sells your inventory, which is common in connected TV.
Does it work for app-ads.txt?
Yes. App developers publish app-ads.txt on the website that is listed in the app store. The format is the same. Therefore you only need to choose app-ads.txt next to the domain field, or upload the file.
Frequently asked questions
Is the ads.txt checker free?
Yes. You can check as many files as you like. There is no sign up and no limit on downloads, only a short pause if one connection runs a very large number of checks.
Do you store my ads.txt file?
No. An uploaded or pasted file is read in your browser and never sent to us. When you check a website, our server downloads the public file and keeps it for ten minutes so a second check is faster. sellers.json files from ad systems are cached for one day.
How long does it take until buyers see my changes?
It depends on the buyer. The ads.txt specification lets crawlers keep a copy for up to seven days unless your server says otherwise. In practice, most large platforms read the file again within a few days.
Why is my Google line not found in sellers.json?
Google lists the accounts it pays in its sellers.json, including confidential ones. If your ID is missing, first check it for typos. Also check that the account is approved and active. A closed or very new account can be missing.
Why does the checker say a DIRECT line should be RESELLER?
The ad system describes the account as an INTERMEDIARY in its sellers.json, or the account belongs to another company. In other words, someone else holds the account. In that case the correct relationship is RESELLER, unless the account really is yours.
What is the fourth field in an ads.txt line?
It is the certification authority ID of the ad system, usually its TAG ID. It is optional. However, Google’s code always includes f08c47fec0942fa0, so the checker suggests adding it to Google lines.

