Guides

How to Audit Your ads.txt in Under 5 Minutes

A fast five-minute ads.txt audit that catches the most common errors. Check file accessibility, formatting, stale entries, and sellers.json verification in one pass.

B
BeamFlow Team
BeamFlow Team
February 9, 2026
5 min read
How to Audit Your ads.txt in Under 5 Minutes

Key Takeaways

  • A quick ads.txt audit catches the errors that cause 90% of revenue loss. You don't need a deep analysis to find the most impactful issues.
  • The five-minute audit has four steps: accessibility, formatting, completeness, and verification. Each step takes about a minute and catches a different category of error.
  • File accessibility errors are the worst and the easiest to fix. If DSPs can't access your ads.txt, none of your entries matter.
  • Automated tools turn a five-minute manual check into a 30-second scan. Use them for regular monitoring, but know how to do the manual check when needed.
  • Schedule this audit monthly at minimum. SSPs change data, accounts migrate, and new partnerships need entries. Monthly checks prevent issues from piling up.

---

How to Audit Your ads.txt in Under 5 Minutes

Most publishers create their ads.txt file once, add entries when they onboard new SSPs, and rarely look at it again.

That's how errors pile up.

An SSP changes your account ID. A reseller relationship ends but the entry stays. A formatting error slips in during a quick edit.

These errors silently reduce your programmatic revenue. A quick audit catches them before they compound.

Here's the five-minute process.

Minute 1: Accessibility Check

Open a browser and navigate to https://your-domain.com/ads.txt.

Check these items:

Does the file load? If you get a 404, 403, or any error, DSPs can't read your file. This is equivalent to not having ads.txt at all.

Does it load at the root domain? If your site uses www, check both www.domain.com/ads.txt and domain.com/ads.txt. The file must be accessible at the root domain. Some DSPs don't follow www redirects reliably.

Is it plain text? The content type should be text/plain. If your server serves it as HTML or with headers that cause browser rendering, DSPs may not parse it correctly.

Does it load quickly? If the file takes more than a few seconds to load, some DSPs may time out. ads.txt should be a fast, static file.

Is there any redirect chain? Some CDN or CMS configurations redirect ads.txt through multiple URLs. Each redirect risks dropping the request. Check that the final URL is the correct one.

Common issues found in this step:

  • CDN or CMS blocking the file path
  • robots.txt blocking crawler access to ads.txt
  • Server configuration serving the wrong content type
  • Domain/subdomain mismatch preventing access

Minute 2: Formatting Check

View the raw file content. Check each line against the expected format:

text
exchange-domain.com, account-id, DIRECT, tag-id

Check for:

Extra whitespace. Spaces before the domain, between commas, or at the end of lines. While most DSP parsers handle reasonable whitespace, excessive or unusual spacing can cause parsing failures.

Missing commas. Each field must be separated by a comma. A missing comma between the account ID and relationship type is one of the most common formatting errors.

Invalid relationship types. Only DIRECT and RESELLER are valid. Watch for typos like "DIRECT " (trailing space), "direct" (wrong case, though most parsers handle this), or "PUBLISHER" (wrong term).

Empty lines or broken entries. Blank lines are harmless. Lines with partial data (just a domain, no account ID) will be skipped by parsers. Check that every data line is complete.

Non-standard characters. Curly quotes (from copying out of a word processor), hidden Unicode characters, or BOM markers can cause parsing issues. If you see odd characters, re-type the line in a plain text editor.

Quickly scan for:

  • Lines that look shorter than others (probably missing a field)
  • Lines that look different from the majority (formatting inconsistency)
  • Any line that doesn't follow the four-field pattern

Minute 3: Completeness Check

Compare your ads.txt against your actual SSP partnerships.

Quick method: Open your ad server or SSP dashboard. List every SSP that receives ad requests from your properties. For each one:

  • Is it in ads.txt?
  • Is the account ID correct?
  • Is DIRECT vs RESELLER accurate?

Check for stale entries: Are there SSPs in ads.txt that you no longer work with? Stale entries don't directly hurt revenue, but they expand your file unnecessarily and may confuse future audits.

Check for recent changes: Did you onboard a new SSP in the past month? Is it in ads.txt? This is the most common miss: a new partnership starts serving ads before the ads.txt entry is added.

Quick decision framework:

  • Missing an active SSP? Add it immediately.
  • Entry for an inactive SSP? Remove it during your next update.
  • Unsure if a relationship is still active? Check with your SSP, but leave the entry for now.

Minute 4: Verification Quick Check

This is the step most publishers skip, and it catches the most impactful issues.

Quick method with BeamFlow: Run your domain through BeamFlow's scanner. It cross-verifies every ads.txt entry against the corresponding sellers.json in seconds.

Manual method (if needed): Pick your top three SSPs by revenue. For each:

  1. Navigate to https://ssp-domain.com/[sellers.json](/library/how-sellersjson-works-with-adstxt)
  2. Search for your account ID
  3. Confirm the entry exists, is non-confidential, and the domain matches yours

Even checking just your top three SSPs catches the issues with the highest revenue impact.

What to look for:

  • Missing entries (your account ID not in sellers.json)
  • Confidential entries (is_confidential: true)
  • Domain mismatches (sellers.json shows a different domain than yours)
  • Seller type mismatches (sellers.json says INTERMEDIARY but your ads.txt says DIRECT)

Minute 5: Document and Act

Spend the last minute documenting what you found:

Immediate fixes (do now):

  • Add missing ads.txt entries
  • Fix formatting errors
  • Remove obviously stale entries

SSP outreach (do today):

  • Contact SSPs about missing sellers.json entries
  • Request non-confidential status
  • Report domain or seller type mismatches

Follow-up (schedule for next month):

  • Full sellers.json verification across all SSPs
  • Deeper analysis of reseller chain completeness
  • Review of SSP performance by verification status

Making This a Habit

The five-minute audit isn't a one-time event. Schedule it:

Monthly: Run the full five-minute check. This catches new issues before they compound.

After any SSP change: New SSP onboarded, account restructured, SSP migration announced. Check immediately.

Quarterly: Do a deeper audit that includes full sellers.json verification across all SSPs and supply path analysis. The five-minute check is a supplement to (not a replacement for) complete quarterly audits.

Continuously: Set up automated monitoring with BeamFlow to get alerts when ads.txt or sellers.json issues appear. This catches problems the day they happen, not the day you audit.

What This Audit Doesn't Cover

The five-minute audit catches the most common and impactful issues, but it doesn't cover:

  • Full sellers.json cross-verification across all SSPs (just the top three in the quick version)
  • SupplyChain object analysis (requires bid-level data)
  • Supply path efficiency (requires SSP performance comparison)
  • Reseller chain verification (requires tracing each reseller through multiple sellers.json files)

For these deeper analyses, schedule a full quarterly audit or use automated supply chain monitoring tools.

Frequently Asked Questions

Can I automate the entire audit?

Yes. BeamFlow's scanner automates the accessibility check, formatting validation, and sellers.json cross-verification. The completeness check (comparing against your actual SSP list) still requires your knowledge of which partnerships are active.

What if I find dozens of issues?

Prioritize by revenue impact. Fix ads.txt accessibility issues first (they affect everything). Then fix missing entries for your highest-revenue SSPs. Then address sellers.json issues. Work down from highest impact to lowest.

Is five minutes really enough?

For a quick health check, yes. The five-minute audit catches the errors that cause the most revenue damage. A full audit takes longer but is needed less frequently (quarterly vs. monthly).

Ready to optimize your ads.txt?

Check your domain's supply chain health instantly, free.

Check Your Domain Free