- Home
- Built-in Tools
- ads.txt Inspector
Last updated: · By Ned Walsch
ads.txt and sellers.json Inspector
Enter a domain to read its ads.txt and app-ads.txt, group the authorised sellers by ad system, and look up who is behind a publisher ID in sellers.json. You can also paste the files.
Paste ads.txt or app-ads.txt text instead
Look up one publisher ID in sellers.json
On this page
- The inspector
- What can ads.txt and sellers.json reveal?
- An ads.txt file at a glance
- Does a shared publisher ID prove common ownership?
- How does sellers.json name the seller?
- How do investigators use ad-tech files?
- Why does fetching sometimes fail?
- What are the limits?
- How was the tool tested?
- Sources
- Frequently asked questions
New: 16 Oct 2026 — first version. Check the limits of shared IDs before you treat a match as a finding.
What can ads.txt and sellers.json reveal?
Who is allowed to sell a site’s ads, and who gets paid. ads.txt stands for “Authorized Digital Sellers”. It is a plain-text file in which a site lists the companies permitted to sell its ad space IAB Tech Lab (updated 14 Sep 2026). Each line names an ad system, the site’s account ID on that system and whether the relationship is DIRECT or RESELLER IAB ads.txt 1.1 (Jul 2022). sellers.json is the other side. An ad system publishes it at /sellers.json on its domain, naming the legal entity paid for each seller account IAB sellers.json 1.0 (Jul 2019).
Together, the two files let you move from a website to its ad accounts, and from an account ID to a company name and domain. You can also go from that ID to other sites that list the same account. That is why ad-tech files have become a standard pivot in investigations of networks of look-alike sites.
- Enter a domain and click Fetch. The tool reads
https://domain/ads.txtand, if ticked,/app-ads.txt. If fetching fails, open the file yourself and paste it. - Read the summary. Variables such as
OWNERDOMAINandMANAGERDOMAINname the owning business and its main monetisation partner IAB ads.txt 1.1 (Jul 2022). Malformed lines are counted and shown. - Open an ad system and look up sellers.json. Each publisher ID is matched to its seller name, domain and type. DIRECT lines whose account is listed as an intermediary are flagged.
- Pivot. Search an ID on the web or in page source code (PublicWWW), or open the seller’s domain in Domain Recon. Export everything as CSV or JSON for your notes.
An ads.txt file at a glance
| Part | Example | What it means |
|---|---|---|
| Field 1: ad system | adsystem.example | Domain of the exchange or ad platform buyers connect to IAB ads.txt 1.1 (Jul 2022) |
| Field 2: publisher ID | pub-0000000000000000 | The seller’s account ID on that system; the same ID appears in that system’s sellers.json IAB sellers.json 1.0 (Jul 2019) |
| Field 3: relationship | DIRECT or RESELLER | Who controls the account (see the next section) |
| Field 4: certification ID | f08c47fec0942fa0 | Optional, for example a TAG ID; the spec says sellers.json identifiers supersede it IAB ads.txt 1.1 (Jul 2022) |
OWNERDOMAIN= | example.org | Business domain of the site’s owner; should match the seller domain in sellers.json IAB ads.txt 1.1 (Jul 2022) |
MANAGERDOMAIN= | salesco.example, US | Primary or exclusive monetisation partner, optionally per country |
CONTACT=, SUBDOMAIN=, INVENTORYPARTNERDOMAIN= | — | Contact details, a subdomain with its own file, and a partner domain whose ads.txt also applies |
# and ; | # comment | Text after # is a comment; extension fields follow a ; |
Does a shared publisher ID prove common ownership?
No, and the relationship type tells you how much weight to give it. The ads.txt 1.1 specification defines DIRECT as the publisher that “directly controls the account indicated in field #2 on the system in field #1”. RESELLER means the publisher “authorized another entity to control the account” and resell its ad space IAB ads.txt 1.1 (Jul 2022).
- Shared RESELLER IDs are weak. A reseller account belongs to the reseller. Hundreds of unrelated sites can list it because they all use the same sales network.
- Shared DIRECT IDs are stronger. When several sites each claim to control the same account directly, that is a real lead. It points to one operator or one sales house acting as the publisher.
- Everything is self-declared. CNIL’s technology lab, studying these files in 2020, warned that its results were “dependent on the accuracy of these declared data” CNIL LINC (2020 data). A site can copy another site’s lines, and stale lines linger for years.
Treat a match as a reason to look further. Compare the seller name and domain in sellers.json, the OWNERDOMAIN line, analytics and tag IDs (try the Pivot Extractor), hosting and registration records.
How does sellers.json name the seller?
Each seller entry has a seller_id that is “the same ID that appears in an ads.txt file” and a seller_type of PUBLISHER, INTERMEDIARY or BOTH IAB sellers.json 1.0 (Jul 2019). PUBLISHER means the named entity owns the inventory and is paid directly; INTERMEDIARY means it does not own the inventory or is not paid directly. The entry also carries the legal entity’s name and business domain, unless is_confidential is 1, in which case the name can be left out IAB sellers.json 1.0 (Jul 2019).
IAB Tech Lab says the file lets buyers “verify the entities who are direct sellers” or intermediaries IAB Tech Lab (updated 7 Oct 2026). For an investigator, it turns an opaque account number into a company name. The tool flags three patterns: DIRECT lines on intermediary accounts, confidential sellers, and seller domains that match the site or its OWNERDOMAIN. None of these is proof of wrongdoing on its own.
How do investigators use ad-tech files?
Indicator’s 22 September 2026 guide by Craig Silverman covers moving “beyond ad libraries to dig into ad supply chains”. It draws on interviews with Zach Edwards of Infoblox and DecryptAds, and Krzysztof Franaszek of Adalytics. It names DecryptAds, urlscan.io and Adalytics among the tools. Most of the guide is for paying members Indicator (22 Sep 2026).
CheckFirst’s 15 September 2026 report, published with Snoop, tracked more than 100,000 ads over five months on 1,145 pages of 131 Eastern European websites. It named three ad networks, AdNow, MGID and AdsKeeper, describing all three as having Russian origins CheckFirst (15 Sep 2026). Its public summary describes custom software that followed the ads; it does not say that ads.txt was used. Checking a site’s ads.txt is a quick, independent way to see whether that site formally authorises the networks named in such reports. It is a starting point, not a finding.
Why does fetching sometimes fail?
Browsers cannot read another site’s files directly, so the tool asks the Max Intel proxy to fetch them. Things that can go wrong, and what the tool says:
- Proxy refused. The proxy fetches only approved kinds of address. If it declines, the tool says so and gives you a link to open the file yourself. Opening it loads it from your own connection; copy the text and paste it into the paste box.
- HTTP 404. The spec says a 404 means the site makes no declarations IAB ads.txt 1.1 (Jul 2022). Try the bare domain (without
www.) too. - HTTP 401 or 403, or a web page instead of text. Some sites block automated requests or show a bot check. The tool detects HTML and does not parse it.
- Large sellers.json files. Big exchanges list hundreds of thousands of sellers, so a lookup can take a while. If an ad system does not publish its file at
/sellers.json, paste its real address or the file itself.
What are the limits?
- Snapshots only. The tool reads today’s files. For past versions, check the Wayback Machine with our Wayback Recon tool.
- No crawling. It does not search other sites’ ads.txt files for an ID. The search links rely on search engines and PublicWWW’s source-code index, which are incomplete.
- Root domains. The spec places ads.txt on the root domain and on subdomains that need their own IAB ads.txt 1.1 (Jul 2022). The tool fetches exactly the host you enter. For app-ads.txt, use the developer domain from the app store listing IAB app-ads.txt spec.
- Declared data. Neither file is verified by a central authority. Report what a file says, with the date you read it, rather than presenting it as fact.
How was the tool tested?
We tested the parser (ads-txt-engine.js) in Node.js and the page in headless Chromium at 375 and 1280 pixels, with the proxy mocked (16 Oct 2026):
- ads.txt records with mixed case, extra spaces, certification IDs,
;extensions and#comments. Also the five spec variables, a byte-order mark, CRLF line endings, malformed lines and a 20,000-line file. - sellers.json with numeric and string IDs, lower-case seller types, confidential sellers and duplicate IDs. Also files without a
sellersarray, invalid JSON and HTML error pages. - Network paths: a normal fetch, an app-ads.txt 404, a network failure and an HTML soft-404. Also a proxy refusal: HTTP 403 with
X-MI-Proxy-Error: host-not-allowed, which the allowlist version of the proxy sends. - Hostile input such as
<img onerror>in seller names and IDs,javascript:domains, and CSV formula injection in exports.
Sources
- IAB Tech Lab: ads.txt overview page (updated 14 Sep 2026; read 16 Oct 2026)
- IAB Tech Lab: Ads.txt Version 1.1 specification (July 2022; read 16 Oct 2026)
- IAB Tech Lab: app-ads.txt specification (read 16 Oct 2026)
- IAB Tech Lab: sellers.json overview page (updated 7 Oct 2026; read 16 Oct 2026)
- IAB Tech Lab: sellers.json specification 1.0 (July 2019; read 16 Oct 2026)
- Craig Silverman, “The Indicator Guide to investigating digital ad supply chains”, Indicator (22 Sep 2026; members-only after the introduction)
- CheckFirst, “The Kremlin’s Digital Pirates: How Russian Tracking Pixels Harvest Romanians’ Data to Fund Conspiracies and Extremism” (15 Sep 2026)
- CNIL LINC: ads.txt and sellers.json study (data crawled 14 Sep 2020; read 16 Oct 2026)
Frequently asked questions
Does the same publisher ID on two sites mean they have the same owner?
Not by itself. A RESELLER line means the site authorised another company to control that account, so hundreds of unrelated sites can list the same reseller ID. A DIRECT line means the site says it directly controls the account, so a DIRECT ID shared by several sites is a stronger lead. Even then the files are self-declared. Confirm with the seller name in sellers.json, the OWNERDOMAIN line, registration records and other evidence before you report a link.
What is the difference between DIRECT and RESELLER?
In the IAB Tech Lab ads.txt 1.1 specification, DIRECT means the publisher directly controls the account named in the line on that ad system. RESELLER means the publisher authorised another entity to control the account and resell its ad space. The value is not case-sensitive. Anything else in that field is an error, and the tool flags it.
Why does a seller show as confidential in sellers.json?
The sellers.json specification lets an ad system mark a seller with is_confidential set to 1. The account must still be listed, but its name and domain may be left out. The tool shows these as confidential instead of guessing. You may still find the owner through the ads.txt OWNERDOMAIN line, other ad systems that list the same site, or ordinary domain research.
What is app-ads.txt?
It is the version of ads.txt for apps, including connected TV apps. The file has the same format as ads.txt, but it lives on the developer website listed in the app store, not on the app itself. Enter the developer domain from the store listing to fetch it. The tool reads both files when you tick the app-ads.txt option.
Is anything sent to Max Intel when I use this tool?
Only when you click Fetch. The domain and the file address go to the Max Intel proxy, a Cloudflare Worker, which requests the public file and returns it; the site sees the proxy, not your IP address. Standard edge logs may exist at Cloudflare. Pasted text never leaves your browser, and search links open only when you click them.
Why can’t the tool find a publisher ID in sellers.json?
Several reasons are common. The ads.txt line may be out of date or mistyped, the ad system may list the account in a different file or under a parent company domain, or it may not publish sellers.json at the standard address at all. Both files are self-declared and are not checked by a central authority, so a missing ID is a question to follow up, not proof of fraud.