ads.txt DIRECT vs RESELLER: Why Mislabeling Costs You
DIRECT means you own the account. RESELLER means someone else does. Mislabeling either one causes sellers.json verification failures that silently cost you bids.

Key Takeaways
- DIRECT means you hold the account on that exchange. The money flows from the SSP to you (or your parent company) with no intermediary in the middle.
- RESELLER means another entity holds the account. They're authorized to resell your inventory through that exchange on your behalf.
- DSPs treat DIRECT and RESELLER entries differently. Some buyers filter out RESELLER paths entirely, only bidding on DIRECT inventory for cleaner supply chains.
- Mislabeling DIRECT as RESELLER costs you premium bids. DSPs that prefer direct supply paths will skip your inventory even though you have the direct relationship.
- Mislabeling RESELLER as DIRECT causes verification failures. When a DSP cross-checks your ads.txt against the SSP's sellers.json, the seller types won't match, and the bid gets rejected.
- 24% of ads.txt entries fail sellers.json cross-verification. Based on BeamFlow's analysis of 120K+ publisher domains, relationship type mismatches are one of the top causes.
ads.txt DIRECT vs RESELLER: Why Mislabeling Costs You
Every line in your ads.txt file declares a relationship type. DIRECT or RESELLER. Two words. And getting them wrong silently blocks bids you'll never know about.
Here's the thing most publishers miss: the DIRECT/RESELLER label isn't just metadata. DSPs use it to verify your supply chain against the SSP's sellers.json file. When your ads.txt says DIRECT but the SSP's sellers.json shows that account belongs to an intermediary, the verification fails. The DSP moves on. No bid, no revenue, no error message.
We've cross-referenced over 120K+ publisher domains against 2,000+ sellers.json files. Relationship type mismatches consistently show up as one of the top verification failure categories. Some publishers have dozens of lines labeled wrong, each one a bid they're silently losing.
This guide breaks down exactly what DIRECT and RESELLER mean, how DSPs verify each one, what happens when you get it wrong, and how to audit your own file.
What DIRECT Actually Means (And Doesn't Mean)
DIRECT means you, the publisher, hold the account on that advertising system. You signed the contract. You receive the payments. The exchange has your domain registered under that account ID.
textgoogle.com, pub-1234567890, DIRECT, f08c47fec0942fa0
This line says: "We have a direct account with Google (pub-1234567890). Google pays us. We own this relationship."
A lot of publishers assume DIRECT just means "we work with them directly." That's close, but the IAB Tech Lab specification is more precise. DIRECT means the publisher listed in the ads.txt file "directly controls the account indicated" on that exchange. You control the account. Not your monetization partner. Not your ad network. You.
Here's where it gets specific. If you use a monetization partner who manages your Google Ad Manager account but the account is still in your name and you receive payments from Google, that's DIRECT. If the monetization partner holds the Google account under their own company and you receive payments from the partner (not from Google), that's RESELLER.
The payment flow determines the label. Not the business relationship.
What RESELLER Actually Means
RESELLER means another company holds the account on that exchange, and they're authorized to sell your inventory through it.
textindexexchange.com, 186046, RESELLER, 50b1c356f2c5c8fc
This line says: "We've authorized someone who holds account 186046 on Index Exchange to resell our inventory. We don't hold this account ourselves."
RESELLER entries are completely normal and expected. They show up when:
- An ad network aggregates your inventory with other publishers and sells it through their exchange account
- A header bidding wrapper provider has their own SSP relationships that include your traffic
- A managed service partner holds exchange accounts on behalf of multiple publishers
- A content monetization platform runs your programmatic stack through their accounts
The key distinction: with RESELLER, the money flows from the exchange to the reseller, then from the reseller to you. There's an intermediary in the payment chain.
How DSPs Verify DIRECT vs RESELLER Against sellers.json
This is where most publishers don't realize what's happening behind the scenes.
When a DSP receives a bid request, it doesn't just check if the SSP appears in your ads.txt. It runs a multi-step verification:
- DSP receives bid request from SSP X for your domain, account ID 12345
- DSP checks your ads.txt for a matching line (SSP X domain, account 12345)
- DSP notes whether you labeled it DIRECT or RESELLER
- DSP pulls SSP X's sellers.json file and finds account 12345
- DSP checks the
seller_typefield: is it "PUBLISHER" or "INTERMEDIARY"? - DSP checks the
domainfield: does it match your domain?
If your ads.txt says DIRECT, the DSP expects sellers.json to show that account with seller_type: "PUBLISHER" and your domain listed. If sellers.json shows seller_type: "INTERMEDIARY" or a different domain, the verification breaks.
The same works in reverse. If your ads.txt says RESELLER but sellers.json shows that account as a direct publisher account for your domain, something doesn't add up.
Google's Display & Video 360 documentation explicitly states that authorized seller declarations are used to protect buyers from misrepresented inventory. DSPs that invest in supply path optimization take these mismatches seriously.
What Happens When You Mislabel DIRECT as RESELLER
This one's subtle but expensive.
When you label a DIRECT relationship as RESELLER, you're telling DSPs: "We don't hold this account. Someone else does." But you actually do hold it. The verification against sellers.json might still pass (the SSP's file will show your domain), but you've signaled to buyers that there's an intermediary involved.
The revenue impact:
- Some DSPs filter RESELLER entries entirely. They only bid on DIRECT paths for cleaner supply chains. By mislabeling, you've excluded yourself from these buyers
- SPO algorithms deprioritize RESELLER paths. DSPs running supply path optimization prefer shorter paths. DIRECT is one hop. RESELLER implies at least two. Your bid requests go to the back of the line
- You create phantom intermediaries. The DSP thinks there's a middleman between you and the exchange when there isn't one. This hurts your supply chain score without any actual intermediary existing
A publisher with 15 SSP relationships who mislabels 3 of them as RESELLER instead of DIRECT might not notice the difference in aggregate CPMs. But those 3 channels are running at reduced demand compared to what they could be. Multiply that across months and it adds up.
What Happens When You Mislabel RESELLER as DIRECT
This one's worse because it triggers hard verification failures.
When you label a RESELLER relationship as DIRECT, you're claiming you hold the account. The DSP checks sellers.json and finds that account 12345 on that exchange belongs to a different company (your actual reseller). Your domain isn't the listed seller. The domain mismatch or seller_type mismatch causes verification to fail.
The result:
- Hard bid rejection. The DSP can't verify your claim, so it rejects the bid request outright
- Auction duplication. DataBeat's 2025 SSP sellers reports found that established SSPs frequently appear with both DIRECT and RESELLER entries on the same domain. When the DIRECT label is wrong, it creates duplicate auction paths that confuse DSP algorithms
- Trust score damage. DSPs that score publisher supply chains will lower your trust rating when verification fails. This affects future bid rates across all your SSP relationships, not just the mislabeled one
- Permanent silent loss. Unlike a 404 on your ads.txt file (which DSPs might retry), a verification mismatch is a quiet classification. The DSP just... doesn't bid. There's no alert, no email, no log entry in your ad server
This is the mislabeling direction that costs real money. And it's remarkably common.
The sellers.json Connection Most Publishers Overlook
Your ads.txt file doesn't exist in isolation. Every DIRECT and RESELLER claim you make gets cross-referenced against the SSP's sellers.json.
Here's a quick comparison of how the two files should align:
Your ads.txt says | SSP's sellers.json should show
DIRECT | seller_type: "PUBLISHER", domain: yourdomain.com
RESELLER | seller_type: "INTERMEDIARY" or seller_type: "PUBLISHER" with the reseller's domain
When BeamFlow cross-references ads.txt entries against sellers.json, 24% of entries fail verification. A significant chunk of those failures are relationship type mismatches. The publisher says DIRECT, but the SSP's sellers.json tells a different story.
And here's what makes it tricky: SSPs update their sellers.json independently. Your ads.txt might have been correct when you set it up. But if the SSP reclassified your account from PUBLISHER to INTERMEDIARY (or changed the domain field), your DIRECT label is now wrong. You had no idea they made the change.
This is why one-time setup isn't enough. The ecosystem moves under you.
How to Audit Your DIRECT vs RESELLER Labels
Step 1: List every SSP relationship you have. Log into each exchange, ad network, and monetization platform. Note the account ID they assigned you.
Step 2: Determine who actually holds each account. Ask yourself: "If this SSP sends me a payment, does it come directly from the SSP to my company? Or does it go through a partner first?"
- Direct payment from SSP = DIRECT
- Payment through a partner = RESELLER
Step 3: Check the SSP's sellers.json for your account. Visit [ssp-domain]/sellers.json and search for your account ID. Verify that:
- The
seller_typematches your ads.txt label - The
domainfield matches your domain (for DIRECT entries) - The entry actually exists (some SSPs have incomplete sellers.json files)
Step 4: Fix mismatches immediately. Every day a mislabeled line stays in your ads.txt, you're losing bids on that channel. Update your file and re-verify.
Step 5: Set up monitoring. SSPs change their sellers.json without notifying you. A label that was correct last month might be wrong today. Continuous monitoring catches these shifts before they cost you weeks of lost demand.
Common Scenarios That Confuse Publishers
Not every situation is straightforward. Here are the edge cases we see most often:
Monetization partner manages your account
If your monetization partner manages your Google Ad Manager but the GAM account is registered to your company and Google pays you directly, that's DIRECT. The partner is managing, not reselling.
Header bidding wrapper adds SSP connections
If your header bidding setup connects you to SSPs through the wrapper provider's accounts, those are RESELLER entries. The wrapper provider holds the accounts, not you.
SSP acquired another SSP
Your ads.txt has a DIRECT entry for SSP-A. SSP-A gets acquired by SSP-B. Your line might still work, but the exchange domain and sellers.json could change. Verify after any SSP merger or acquisition.
You're listed as both DIRECT and RESELLER for the same SSP
This happens when you have your own account (DIRECT) and a monetization partner also has an account that includes your inventory (RESELLER). Both lines can coexist. They represent different supply paths to different inventory pools. Just make sure both entries actually verify against the respective sellers.json entries.
Frequently Asked Questions
Can I have both DIRECT and RESELLER entries for the same SSP?
Yes. This is common and legitimate. You might hold your own account on an exchange (DIRECT) while an ad network also sells your inventory through their account on the same exchange (RESELLER). Both entries can coexist as long as each one verifies correctly against the SSP's sellers.json.
Do DSPs really filter out RESELLER entries?
Some do. Blockthrough's research and discussions in the ad ops community confirm that certain DSPs prioritize or exclusively bid on DIRECT entries as part of their SPO strategy. The trend is growing as buyers consolidate supply paths.
How do I find out if an entry is mislabeled?
Cross-reference your ads.txt against the SSP's sellers.json file. For DIRECT entries, verify the seller_type is "PUBLISHER" and the domain matches yours. For RESELLER entries, confirm the account belongs to your authorized reseller. Or run a free scan on BeamFlow to see the verification status of every line.
What if the SSP doesn't have a sellers.json file?
Without a sellers.json, DSPs can't fully verify your ads.txt entries for that SSP. This hurts verification scores for both DIRECT and RESELLER lines. Some DSPs will still bid, but with lower confidence. Others skip unverifiable paths entirely. If your SSP doesn't maintain sellers.json, that's a conversation worth having with your account rep.
Does the TAG-ID field matter for DIRECT vs RESELLER?
The TAG-ID (fourth field) is the SSP's Trustworthy Accountability Group certification ID. It doesn't change based on whether the relationship is DIRECT or RESELLER. It should be the same for all entries referencing that SSP, regardless of relationship type. A wrong TAG-ID is a separate verification issue.
How often should I re-verify my relationship labels?
Every time you add or remove an SSP. Every time a monetization partner changes. And at least monthly as a baseline, because SSPs update their sellers.json without telling you. The ecosystem shifts constantly. What was correct 60 days ago might not be today.
Ready to optimize your ads.txt?
Check your domain's supply chain health instantly, free.
Check Your Domain Free