Guides

How to Audit Your Supply Chain for Revenue Leaks

A step-by-step supply chain audit that checks ads.txt, sellers.json, and supply path efficiency. Most publishers find issues they did not know existed, and fixing them recovers real revenue.

B
BeamFlow Team
BeamFlow Team
February 9, 2026
8 min read
How to Audit Your Supply Chain for Revenue Leaks

Key Takeaways

  • Most publishers have never audited their full supply chain. They maintain ads.txt and assume the rest is handled. It's not.
  • The audit covers four layers: authorization, identity, path, and efficiency. Each layer can contain issues that reduce CPMs.
  • The most common finding is sellers.json mismatches. BeamFlow's data shows 24% of ads.txt entries fail sellers.json cross-verification. Most publishers don't know until they check.
  • The audit takes about an hour manually for a simple setup. Automated tools reduce this to minutes.
  • Publishers who complete this audit and fix findings typically see 5-15% CPM improvement within weeks.

---

How to Audit Your Supply Chain for Revenue Leaks

A supply chain audit checks every layer of your programmatic setup for issues that reduce demand, lower CPMs, or leak revenue.

It's the single highest-ROI maintenance task most publishers aren't doing.

The audit process below works through four layers: authorization (ads.txt), identity (sellers.json), supply path (schain and intermediaries), and efficiency (partner performance). Each layer builds on the previous one.

Before You Start

Gather these items:

  • Access to your ads.txt file. You should know exactly where it's hosted and have edit access.
  • A list of all your SSP partners. Include account IDs, relationship types, and contact information.
  • SSP dashboard access. You'll need revenue data by SSP for the efficiency analysis.
  • BeamFlow's scanner (recommended). Automates the cross-verification steps that take hours manually.

Layer 1: Authorization Audit (ads.txt)

Start with the file you control directly.

Step 1.1: Verify File Accessibility

Navigate to https://your-domain.com/ads.txt in a browser. Confirm:

  • The file loads with HTTP 200 status
  • The content-type is text/plain
  • The file isn't behind authentication or a paywall
  • The URL doesn't redirect (DSPs follow redirects inconsistently)
  • The file is at the root domain, not a subdomain

If your domain uses www as the primary, ensure both www.domain.com/ads.txt and domain.com/ads.txt resolve (or redirect correctly).

Step 1.2: Check Every Entry

For each line in your ads.txt:

Format check:

  • Follows the correct format: exchange-domain.com, account-id, DIRECT/RESELLER, tag-id
  • No extra spaces, missing commas, or formatting errors
  • Comment lines start with #

Active relationship check:

  • Do you still have an active business relationship with this SSP?
  • Is this account ID still active?
  • Is the relationship type (DIRECT/RESELLER) accurate?

Stale entry check:

  • Remove entries for SSPs you no longer work with
  • Remove entries for accounts that have been closed
  • Remove duplicate entries (same SSP, same account, listed twice)

Step 1.3: Check for Missing Entries

Compare your ads.txt against your actual SSP partner list:

  • Is every active SSP included?
  • Is every reseller relationship documented?
  • Are there new SSPs you onboarded recently that aren't yet in ads.txt?

Missing entries mean DSPs can't authorize those supply paths. Revenue from those SSPs is compromised.

Common Layer 1 Findings

  • Stale entries for SSPs the publisher stopped using months ago
  • Missing entries for recently onboarded SSPs
  • Incorrect relationship types (DIRECT marked as RESELLER or vice versa)
  • Formatting errors that cause DSP parsers to skip entries
  • Duplicate entries that don't cause harm but indicate poor maintenance

Layer 2: Identity Audit (sellers.json)

This is where most publishers discover issues they didn't know existed.

Step 2.1: Cross-Verify Every Entry

For each SSP in your ads.txt, check their sellers.json file:

  1. Navigate to https://ssp-domain.com/sellers.json
  2. Search for your account ID (seller_id)
  3. Verify the entry exists

If you have more than five SSPs, this is where automated tools save big time.

Step 2.2: Verify Entry Details

For each entry found, check:

Name: Does the business name match your actual company name? Misspellings and outdated names are common.

Domain: Does the domain match your publisher domain? This is the field DSPs use for identity verification. A wrong domain breaks the verification chain.

Seller type: Does PUBLISHER (in sellers.json) align with DIRECT (in ads.txt)? Does INTERMEDIARY align with RESELLER? Mismatches raise fraud flags.

Confidentiality: Is your entry marked non-confidential? Confidential entries hide your identity from DSPs. Request non-confidential status from any SSP that has you as confidential.

Step 2.3: Identify Missing Entries

For each SSP in your ads.txt where the sellers.json entry is missing:

  • Document the SSP and your account ID
  • Check if the SSP even has a sellers.json file
  • If the file exists but your entry is missing, flag it for SSP contact

Common Layer 2 Findings

  • Account ID present in ads.txt but missing from sellers.json (new account not yet added)
  • Domain mismatch (SSP has an old or incorrect domain on file)
  • Seller type mismatch (SSP has INTERMEDIARY, ads.txt says DIRECT)
  • Confidential entries the publisher didn't request
  • SSPs without a sellers.json file at all

Layer 3: Supply Path Audit

This layer examines how your inventory travels from your ad server to DSPs.

Step 3.1: Map Your Supply Paths

For each SSP in your setup:

  • Is this a direct integration (your ad server sends requests directly to the SSP)?
  • Does this SSP resell your inventory to other exchanges?
  • Do you have any reseller entries in ads.txt? What path do those represent?

Step 3.2: Count the Hops

For each supply path to a major DSP:

  • How many intermediaries are between you and the buyer?
  • Is the SSP connecting directly to DSPs, or going through an exchange first?
  • Are there unnecessary intermediaries that add fees without adding demand?

Step 3.3: Check schain Support

For each SSP:

  • Do they support the SupplyChain object specification?
  • Do they pass complete chains (complete=1)?
  • Do intermediaries in the path add their own nodes?

SSPs that don't support schain reduce the verification quality of every bid request through their platform.

Common Layer 3 Findings

  • Supply paths with three or more intermediaries that could be shortened
  • Reseller relationships that were set up for "incremental demand" but generate minimal actual revenue
  • SSPs that don't support schain, making their supply paths unverifiable
  • Duplicate paths (same inventory reaching the same DSP through multiple SSPs)

Layer 4: Efficiency Audit

This layer connects supply chain quality to actual revenue performance.

Step 4.1: Revenue by SSP

Pull 90-day revenue data by SSP. For each SSP, calculate:

  • Average CPM
  • Fill rate
  • Total revenue
  • Revenue as percentage of total programmatic revenue

Step 4.2: Compare Verified vs. Unverified SSPs

Group your SSPs by verification status from Layer 2:

  • Fully verified: Entry exists in sellers.json, non-confidential, all fields match
  • Partially verified: Entry exists but has mismatches or confidential status
  • Unverified: Entry missing from sellers.json or SSP lacks sellers.json

Compare average CPMs across these groups. Fully verified SSPs typically show 10-30% higher CPMs than unverified ones.

Step 4.3: Evaluate Reseller ROI

For each reseller entry in your ads.txt:

  • How much revenue does this reseller generate?
  • Is the revenue big enough to justify the added supply path complexity?
  • Would removing this reseller and focusing on direct SSP relationships improve overall performance?

Many publishers have reseller entries that were added during initial setup and never evaluated. Some generate meaningful incremental revenue. Others generate negligible revenue while adding supply chain noise.

Step 4.4: Identify Underperforming Paths

Look for SSPs where:

  • CPMs are way below your average
  • Fill rates are unusually low
  • Revenue has declined over the past 90 days without explanation

These patterns often correlate with supply chain issues discovered in Layers 1-3.

Building Your Fix List

After completing all four layers, compile your findings into a prioritized action list:

Immediate fixes (do today):

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

SSP outreach (do this week):

  • Contact SSPs about missing sellers.json entries
  • Request non-confidential status
  • Report domain or seller type mismatches
  • Provide correct information for each issue

Strategic decisions (do this month):

  • Evaluate whether to keep underperforming reseller relationships
  • Consider replacing SSPs that don't maintain sellers.json
  • Assess whether supply path length can be reduced

Ongoing monitoring (set up now):

  • Schedule quarterly re-audits
  • Set up automated monitoring for continuous coverage
  • Track CPM changes after fixes to quantify the revenue recovery

What to Expect After the Audit

Publishers who complete this audit and fix all identified issues typically see:

  • First week: Minor CPM fluctuations as DSPs update cached data
  • Weeks 2-3: Measurable CPM increases on previously bad SSPs (5-15%)
  • Month 2+: Sustained higher CPMs as DSP quality scores improve based on consistent verification

The magnitude depends on how many issues existed. Publishers with major gaps (multiple missing sellers.json entries, critical mismatches) see the biggest recovery. Publishers who were already mostly clean see smaller but still worthwhile improvements.

Frequently Asked Questions

How often should I repeat this audit?

Full audit quarterly. Automated monitoring (like BeamFlow) continuously. The quarterly cadence catches SSP-side changes that happen without notification, while continuous monitoring catches acute issues immediately.

What if an SSP doesn't respond to my sellers.json request?

Escalate through your account manager. If the SSP is unresponsive about sellers.json issues, consider whether the revenue from that SSP justifies the verification gap. An SSP that doesn't maintain basic transparency standards is unlikely to be your highest-performing partner.

Should I remove SSPs with supply chain issues?

Not necessarily. First, try to fix the issues. Many sellers.json problems are correctable with a single SSP support request. Remove SSPs only if they're unresponsive, generate minimal revenue, or refuse to maintain basic transparency standards.

Ready to optimize your ads.txt?

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

Check Your Domain Free