ads.txt / app-ads.txt Validator
Validate an ads.txt or app-ads.txt file line by line in your browser. The file you paste stays on your device.
The ads.txt / app-ads.txt Validator runs entirely in your browser. The file you paste is parsed and checked on your device and is never uploaded to ArrayKit or fetched from a remote URL.
Open the sellers.json Validator
About ads.txt Validator
The ads.txt / app-ads.txt Validator lints your Authorized Digital Sellers file the moment you paste it. It walks every line, splits DATA records into their comma-separated fields, and confirms each one has the required 3 or 4 fields: advertising system domain, publisher account id, a DIRECT or RESELLER relationship, and an optional certification authority id such as a TAG-ID. Comments and blank lines are skipped, VARIABLE lines like OWNERDOMAIN, CONTACT, SUBDOMAIN, MANAGERDOMAIN and INVENTORYPARTNERDOMAIN are parsed out, and wrong field counts, bad relationship values, duplicate entries and stray whitespace are flagged with the line number and a suggested fix. A summary tallies DIRECT vs RESELLER records and unique seller domains. Publishers and ad-ops teams audit their file here without posting it to a third-party crawler — every check runs on your device.
Features
- Validates each DATA record has exactly 3 or 4 comma-separated fields
- Confirms the relationship field is DIRECT or RESELLER and normalizes the casing
- Parses VARIABLE lines: CONTACT, SUBDOMAIN, OWNERDOMAIN, MANAGERDOMAIN, INVENTORYPARTNERDOMAIN
- Skips comments (#) and blank lines the way an ads.txt crawler does
- Flags duplicate seller records and points back to the first line they appeared on
- Warns on stray whitespace padding and non-domain-looking advertising system fields
- Summarizes DIRECT vs RESELLER counts and the number of unique seller domains
- Parses the file entirely in your browser — nothing you paste is uploaded
How to use the ads.txt Validator
- Paste your ads.txt or app-ads.txt file, or load the sample to see the format
- Read the verdict banner for the error and warning counts
- Open Findings to fix each flagged line using the suggested correction
- Check the summary counts of DIRECT, RESELLER, and unique domains
Example
Input
google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
appnexus.com, 3456, RESELLER
badexchange.com, 99, PARTNER
Output
2 records valid
Line 3 — Relationship must be DIRECT or RESELLER (found "PARTNER").
The third field must be DIRECT or RESELLER; PARTNER is rejected.
Common errors & troubleshooting
- "Expected 3 or 4 fields" on a line that looks complete. — Fields are comma-separated, not space- or tab-separated. Put a comma between the domain, account id, and relationship, and drop any extra trailing fields.
- A record is flagged even though the relationship reads DIRECT. — Check for a stray character or wrong keyword — only DIRECT and RESELLER are valid. Lower-case direct/reseller is accepted but the validator warns so you can normalize it.
- Duplicate warnings on lines that differ only by the TAG-ID. — Duplicate detection uses domain, account id, and relationship. Two lines with the same seller tuple are duplicates even if the certification authority id differs — keep one.
- A subdomain's sellers are not being picked up by buyers. — Declare each delegated subdomain with a SUBDOMAIN=sub.example.com variable line so crawlers know to fetch that subdomain's own ads.txt.
Frequently asked questions
- What does the ads.txt Validator check on each line?
- For every DATA record it verifies there are 3 or 4 comma-separated fields — advertising system domain, publisher account id, a DIRECT or RESELLER relationship, and an optional certification authority id — then flags wrong field counts, bad relationship values, duplicates, and stray whitespace with the line number.
- What is the difference between DIRECT and RESELLER in ads.txt?
- DIRECT means the publisher has a direct account with that advertising system and controls the seller relationship. RESELLER means an authorized partner resells the inventory through their own account. The third field must be exactly one of these two keywords.
- Does this validator work for app-ads.txt as well?
- Yes. app-ads.txt uses the same record grammar as ads.txt — the same DATA record fields and VARIABLE declarations — so you can paste either file and the same checks apply. app-ads.txt simply lives at the developer domain from your app store listing.
- How are VARIABLE lines like OWNERDOMAIN handled?
- Lines written as KEY=value are parsed as variables rather than seller records. The validator recognizes CONTACT, SUBDOMAIN, OWNERDOMAIN, MANAGERDOMAIN and INVENTORYPARTNERDOMAIN, warns on unknown keys, and flags a variable that has no value.
- What counts as a duplicate ads.txt record?
- Two records with the same advertising system domain, publisher account id, and relationship — compared case-insensitively on the domain — are duplicates, even if one adds a certification authority id. The validator points to the first line the record appeared on so you can remove the repeat.
- Is my ads.txt file uploaded when I validate it?
- No. The validator parses and checks the file on your device and never fetches a remote ads.txt URL or ad tag. Nothing you paste is sent to ArrayKit or any crawler.
Related tools
All ArrayKit tools