Ads.txt Validator
Fetch or paste an ads.txt file and verify every line against the SSP’s sellers.json. Get risk scores, public reports, and a clean summary of ASI domains, sellers and resellers.
Esta ferramenta está em beta — os resultados podem mudar enquanto a melhoramos.
Works with a full file or just the lines you want to check.
Paste or fetch an ads.txt file, then click Validate.
Últimos domínios verificados
Relatórios ads.txt públicos mais recentes. Abra um domínio para validação linha a linha, scores de risco e contactos SSP.
-
cope.es30 Jul 202685Excelente963 linhas823OK130Fail10Warn
-
elnacional.cat30 Jul 202699Excelente352 linhas347OK3Fail2Warn
-
rac1.cat29 Jul 202676Aceitável893 linhas675OK197Fail21Warn
-
france.tv28 Jul 202680Excelente15 linhas12OK3Fail0Warn
-
bbc.com28 Jul 202696Excelente45 linhas43OK1Fail1Warn
-
ilovepdf.com28 Jul 202669Aceitável13 linhas9OK4Fail0Warn
-
rtve.es28 Jul 202681Excelente251 linhas203OK45Fail3Warn
-
nationalgeographic.com.es28 Jul 202679Aceitável1298 linhas1022OK251Fail25Warn
-
nypost.com28 Jul 202690Excelente148 linhas133OK13Fail2Warn
-
people.com28 Jul 202684Excelente383 linhas323OK54Fail6Warn
-
time.com28 Jul 202693Excelente204 linhas190OK13Fail1Warn
-
nytimes.com28 Jul 202693Excelente29 linhas27OK2Fail0Warn
-
wsj.com28 Jul 202688Excelente91 linhas80OK10Fail1Warn
-
washingtonpost.com28 Jul 202692Excelente251 linhas232OK16Fail3Warn
-
vogue.com28 Jul 202678Aceitável49 linhas38OK10Fail1Warn
Relatórios em destaque
Fichas de publishers de referência. Abra um relatório existente, ou clique para gerar o scan se ainda não existir.
-
vogue.com28 Jul 202678Aceitável49 linhas38OK10Fail1Warn
-
washingtonpost.com28 Jul 202692Excelente251 linhas232OK16Fail3Warn
-
wsj.com28 Jul 202688Excelente91 linhas80OK10Fail1Warn
-
nytimes.com28 Jul 202693Excelente29 linhas27OK2Fail0Warn
-
people.com28 Jul 202684Excelente383 linhas323OK54Fail6Warn
-
time.com28 Jul 202693Excelente204 linhas190OK13Fail1Warn
How this tool works
- 1 Fetch or paste the full ads.txt (or a subset of lines).
- 2 We normalize line endings, then group rows by ASI (Advertising System Identifier).
- 3 For each ASI we download that SSP’s sellers.json (with known CDN fallbacks) and look up every Seller ID.
- 4 Each row gets a status, optional flags, and a risk score = sum of flag weights (clamped 0–1).
- 5 Successful validations are stored as a public report URL so Google can index that domain’s ads.txt health.
FAQ
Is my ads.txt correct? +
A correct ads.txt is publicly reachable at https://yourdomain.com/ads.txt, uses IAB line format (ASI, seller_id, DIRECT|RESELLER[, TAG-ID]), and every Seller ID exists in that ASI’s sellers.json. Run this Validator: green rows are verified; red/amber rows need fixes (missing SID, relationship mismatch, domain mismatch, or unreachable sellers.json). Also set ownerdomain= when you manage multiple hostnames.
How many lines should my ads.txt have? +
There is no magic number. A healthy site often has dozens to a few hundred unique ASI+SID+relationship rows — not thousands of duplicates. More lines ≠ more revenue. Buyers practicing SPO prefer short, accurate files with real DIRECT paths and only the RESELLER hops you intentionally authorize. If you have 1,000+ lines, audit for duplicates and unused partners first.
How do I know if my ads.txt is optimized? +
Optimized means: (1) no duplicate ASI+SID+Rel rows, (2) every SID verified in sellers.json, (3) DIRECT only when the seller_type is PUBLISHER/BOTH, (4) TAG-IDs present for exchanges that require them (e.g. Google), (5) ownerdomain/managerdomain consistent, (6) crawlers can fetch the file (use Bot Probe). This tool’s risk score and “Download optimized” export help you get there.
What is SPO (Supply Path Optimization)? +
SPO is how DSPs and exchanges choose the cheapest, cleanest path to your inventory instead of bidding through every reseller hop. They look at ads.txt + sellers.json + SupplyChain (schain) to see who is DIRECT vs RESELLER. Long, noisy, or unverified paths get deprioritized or blocked. Clean ads.txt is the publisher-side foundation of SPO.
How does SPO use ads.txt and sellers.json together? +
ads.txt is your authorization list (“who may sell my inventory”). sellers.json is the SSP’s registry (“this seller_id is a real publisher/intermediary”). SPO systems join both: if you list openx.com, 12345, RESELLER but 12345 is missing or marked confidential/passthrough, that path looks risky. Verified DIRECT to a known publisher domain scores best.
DIRECT vs RESELLER — which should I use for SPO? +
Use DIRECT only when you have a direct business relationship with that advertising system and their sellers.json seller_type is PUBLISHER or BOTH. Use RESELLER when an intermediary is authorized to resell. Declaring DIRECT for an INTERMEDIARY account (DIRECT_INTERMEDIARY flag) is a classic SPO red flag and raises risk in this validator.
Why do buyers care about TAG-ID / certification authority? +
The optional 4th field (TAG-ID) ties the line to a certification authority (commonly Google’s f08c47fec0942fa0). Some buyers require it for trust and for matching against sellers.json is_confidential / account data. Missing TAG-ID where partners expect it can weaken SPO preference even if the SID exists.
What is schain and how does it relate to ads.txt? +
SupplyChain Object (schain) is sent in the bid request listing every hop from publisher to the final seller. Buyers compare schain nodes to ads.txt/sellers.json. If a hop appears in schain but is not authorized in ads.txt — or is authorized as DIRECT incorrectly — SPO algorithms discard or discount that path. Keeping ads.txt aligned with how your stack actually sells is essential.
Should I remove unused SSP lines for SPO? +
Yes, if you no longer work with that partner. Unused RESELLER rows create “open doors” that can be abused and dilute path quality. Keep active DIRECT accounts and intentional resellers only. Re-validate after cleanup so sellers.json still matches.
What does the Ads.txt Validator check technically? +
Each actionable line is grouped by ASI. We fetch that SSP’s sellers.json (canonical URL + known CDN fallbacks), look up the Seller ID, compare relationship vs seller_type, collect flags, and score risk = sum of flag weights (0–1). Comments and ownerdomain/managerdomain are metadata, not inventory rows.
How is the risk score calculated? +
Risk is the sum of weighted flags, clamped 0–1. Weights: DECLARED_NOT_IN_SELLERS_JSON 0.40, DIRECT_INTERMEDIARY 0.35, CONFIDENTIAL / NO_SELLERS_JSON 0.30, DOMAIN_MISMATCH / RESELLER_INTERMEDIARY 0.25, UNKNOWN_SSP / MISSING_NAME 0.20, PASSTHROUGH 0.15, RESELLER_ONLY / NO_TAG_ID 0.10, DUPLICATED / SELLERS_JSON_UNAVAILABLE 0.05. Green ≈ 0–0.14, yellow ≈ 0.15–0.39, orange ≈ 0.40–0.69, red ≈ 0.70+.
Why can sellers.json be “unavailable” even if the domain exists? +
Many SSPs block datacenter IPs, rate-limit, or host sellers.json on a CDN. We try the IAB URL plus fallbacks (e.g. AppNexus on acdn.adnxs.com). HTTP 502/403 means we could not read the registry now — not the same as “SID missing”. That is why SELLERS_JSON_UNAVAILABLE weighs only 0.05.
Can a wrong ads.txt hurt my revenue? +
Yes. Missing DIRECT lines block legitimate demand; wrong DIRECT/RESELLER declarations and unverified SIDs make buyers drop paths under SPO; an unreachable ads.txt means crawlers never authorize you. Fix reachability (Bot Probe), then correctness (Validator), then hygiene (Safe Add Lines / optimized export).
Why do you store a public report for each search? +
So you can share a URL proving what was checked. Each publisher gets a stable, indexable report at /tools/adstxt/report/{domain-slug} (e.g. /tools/adstxt/report/rtve-es). Re-validating the same domain updates that page instead of creating duplicates.
What are the free limits? +
Anonymous visitors get 2 full-file validations per 2 hours. Then we ask for a company email (no Gmail/Outlook/Yahoo). We combine cookie, fingerprint and IP so clearing storage alone does not reset the quota.