Salta al contenuto
Strumento gratuito Beta

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.

Questo strumento è in beta: i risultati possono cambiare mentre lo miglioriamo.

1
2

Works with a full file or just the lines you want to check.

Paste or fetch an ads.txt file, then click Validate.

Ultimi domini verificati

Report ads.txt pubblici più recenti. Apri un dominio per la validazione riga per riga, risk score e contatti SSP.

How this tool works

  1. 1 Fetch or paste the full ads.txt (or a subset of lines).
  2. 2 We normalize line endings, then group rows by ASI (Advertising System Identifier).
  3. 3 For each ASI we download that SSP’s sellers.json (with known CDN fallbacks) and look up every Seller ID.
  4. 4 Each row gets a status, optional flags, and a risk score = sum of flag weights (clamped 0–1).
  5. 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.