Free to explore: filter winning sites by DR, traffic and niche  ·  Try the live explorer →

Ads.txt explained, with sellers.json

Lines of an ads.txt file in a text editor

Ads.txt is one of the few pieces of ad tech a publisher controls completely. It is a plain text file, it sits on your own domain, and it takes five minutes to write. Yet it causes a steady stream of confusion, mostly because people treat it as a ranking factor, a revenue lever or a fix for every AdSense warning. It is none of those. It is a declaration, and once you see what it declares, the warnings make sense.

What ads.txt means

The name stands for Authorized Digital Sellers. The IAB Tech Lab describes ads.txt as “a simple, flexible and secure method that publishers and distributors can use to publicly declare the companies they authorize to sell their digital inventory.” Version 1.0 was released in June 2017.

The problem it solves is spoofing. Before ads.txt, anyone could claim in a bid request that an impression came from your domain, and a buyer had no simple way to check. With the file in place, a buyer can read your list and refuse inventory from any seller you did not name. That protects advertisers first and publishers second: spoofed inventory dilutes the price of the real thing.

Note what it does not do. It does not tell anyone how much you earn, which ads are running or whether the networks you list are still active. It is a list of permissions, nothing more. It is also written for ad buyers, not search crawlers. The IAB description is entirely about selling inventory, so adding one is a monetization task, not an SEO one. Treat any audit tool that scores it as a ranking issue with caution.

An ad account warning banner on a laptop

An ads.txt example, line by line

Google’s AdSense ads.txt guide gives the format of its own entry. A single line looks like this:

There are four fields, separated by commas. Each one answers a specific question a buyer might ask.

FieldIn the AdSense exampleWhat it tells a buyer
Ad system domaingoogle.comWhich advertising system the seller account lives in
Publisher account IDpub-0000000000000000Your account in that system; replace the zeros with your own ID
RelationshipDIRECTDIRECT if you control the account; RESELLER if another company sells on your behalf
Certification authority IDf08c47fec0942fa0An identifier for the ad system, the same on every AdSense line

The relationship field matters most when you read other people’s files. DIRECT means the publisher holds the account. RESELLER means a third party, often an ad management company, is selling the inventory through its own account. A site on a managed network will usually have a short block of DIRECT lines and a long tail of RESELLER lines, one for each demand partner the network plugs in.

A website root folder in a file manager

Where the file goes, and why AdSense says “ads.txt not found”

Google’s guide is specific: the file goes in the root directory of your domain, so it loads at example.com/ads.txt. Not in a subfolder, not on a subdomain you use for something else, and not behind a redirect chain that a crawler gives up on.

When AdSense shows an “ads.txt not found” or similar warning, the cause is usually one of three things:

  • The file is missing. It was never uploaded, or a migration or theme change removed it.
  • It is not at the root. It sits somewhere like /wp-content/ads.txt, where nothing will look for it.
  • Your publisher ID line is absent or wrong. The file exists but does not contain your pub- ID, often because an ad network sent its own file and it replaced yours.

Then wait. Google says AdSense may take a few days to detect changes, and up to a month for sites with few ad requests. Re-uploading the file every day does not speed that up. Open the URL in a private window, confirm it returns plain text, and give it time.

If you are still working through approval, our AdSense requirements guide covers the rest of the checklist. The file is necessary, not sufficient.

A programmatic ad auction diagram on a whiteboard

Ads.txt vs sellers.json

Ads.txt is the publisher’s half. The other half is sellers.json, also from the IAB Tech Lab, which lets buyers “discover who the entities are that are either direct sellers of or intermediaries in the selling of digital advertising.” You do not publish it. It is published by supply-side platforms and exchanges.

The two files answer different questions. Your ads.txt says: these account IDs may sell my inventory. An exchange’s sellers.json says: this account ID belongs to this company, and it is either the publisher or an intermediary. Put together, a buyer can trace an impression from your domain, through the account ID in your file, to a named final seller.

  • ads.txt: on the publisher’s domain, written by the publisher, lists who is allowed to sell.
  • sellers.json: on the exchange’s domain, written by the exchange, identifies who is behind each seller account.

If a RESELLER line in your file points to an account that the exchange cannot identify, the chain breaks. That is a reason to prune lines from partners you no longer use rather than letting the file grow forever.

A JSON file open in a browser

The file as a research tool

Because the file is public, it doubles as one of the quickest ways to read another site’s ad setup. Load /ads.txt on any domain and you can see which ad systems it authorises and whether it looks like a solo AdSense account or a managed network with dozens of resellers. Our guide on how to check if a website is monetized turns that into a repeatable check, and how websites make money covers the models an ads.txt file cannot see.

A blog page with display adverts

The limitation is the one already noted: the file lists permissions, not activity. A line can stay in place long after a site leaves a network, and a site with no ads.txt at all may earn well from affiliates or products. Treat what you read as a lead, then check the page itself for the ads.

An ad revenue chart on a monitor

Keeping your own file clean

Most ads.txt problems are maintenance problems. Three habits prevent nearly all of them. First, keep one owner. If an ad network asks you to replace the file, merge its lines into yours instead, so your own DIRECT entry survives. Second, review the file whenever you change networks; stale RESELLER lines do not help you and make the file harder to audit. Third, check the live URL after every site migration, theme change or CDN rule update, because those are the moments a root file quietly disappears.

A clean file will not raise your earnings by itself, and anyone who promises otherwise is overselling it. What it does is remove a reason for buyers to distrust your inventory, which is the floor every other monetization decision stands on. If you are weighing networks, start with AdSense alternatives and the monetization hub.

Frequently asked questions

What does ads.txt stand for?

Authorized Digital Sellers. It is a public file in which publishers declare the companies they authorise to sell their digital inventory.

Where do I put my ads.txt file?

In the root directory of your domain, so it loads at example.com/ads.txt. Google’s AdSense guide is explicit about the root location.

How long does AdSense take to see an ads.txt change?

Google says a few days, and up to a month for sites that receive few ad requests.

Do publishers need a sellers.json file?

No. Sellers.json is published by supply-side platforms and exchanges. Publishers publish ads.txt.

The takeaway Ads.txt lists who may sell your inventory; sellers.json names who those sellers are. Put the file at the root, keep your DIRECT line in it, and prune partners you have left.