Ads.txt & Seller.json Setup — Authorized Digital Sellers, Fraud Prevention & Ad Revenue Protection
In this tutorial, you'll learn about Ads.txt & Seller.json Setup. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.
Ads.txt and seller.json setup involves creating authorized digital sellers files that declare which ad exchanges are authorized to sell your ad inventory, preventing counterfeit impressions and protecting programmatic revenue.
What You'll Learn
You will learn how ads.txt and seller.json work, how to configure them for your domain, how to verify proper setup, and how they impact programmatic ad revenue for developer websites.
Why It Matters
Ad fraud costs the digital advertising industry over $35 billion annually according to the Association of National Advertisers. Without ads.txt and seller.json, your inventory is vulnerable to domain spoofing where fraudsters resell fake traffic under your domain name, damaging your reputation and revenue.
Real-World Use
A developer tutorial site with 200,000 monthly page views implemented ads.txt and seller.json and saw a 22% increase in programmatic CPM within 60 days. Advertisers previously avoided buying inventory from the site due to spoofing risk, but the verified seller files unlocked premium demand.
Ads.txt and Seller.json Overview
flowchart TD
A[Publisher Website] --> B[Create ads.txt]
A --> C[Create seller.json]
B --> D[Declare authorized sellers]
B --> E[Set account relationships]
C --> F[Publish on seller platform]
D --> G[Ad exchanges verify]
E --> G
F --> G
G --> H[Premium demand activated]
G --> I[Spoofing blocked]
H --> J[Revenue increases 15-30%]
I --> J
Ads.txt Configuration
The ads.txt file is a plain text file placed at the root of your domain. It tells ad buyers which exchanges and accounts are authorized to sell your inventory.
| Directive | Format | Example |
|---|---|---|
| Exchange domain | Field 1 | google.com |
| Publisher ID | Field 2 | pub-1234567890123456 |
| Account type | Field 3 | DIRECT or RESELLER |
| Certification ID | Field 4 (optional) | f542f1f9-2e8b |
DIRECT vs RESELLER Relationships
| Relationship Type | Definition | Revenue Share | Buyer Trust |
|---|---|---|---|
| DIRECT | You have a direct contract with the exchange | Higher (80-90%) | Highest |
| RESELLER | Exchange buys from another authorized source | Lower (60-75%) | Moderate |
Sample ads.txt File
google.com, pub-1234567890123456, DIRECT, f542f1f9-2e8b
appnexus.com, 12345, RESELLER
rubiconproject.com, 54321, DIRECT
openx.com, 98765, RESELLER
Place this file at https://example.com/ads.txt. Any buyer checking your inventory will crawl this file to verify authorization.
Seller.json Configuration
Seller.json is the publisher-side counterpart to ads.txt. It provides structured data about your company and contact information to ad buyers.
| Field | Required | Description |
|---|---|---|
| seller_id | Yes | Your publisher ID matching ads.txt |
| seller_type | Yes | PUBLISHER, INTERMEDIARY, or BOTH |
| name | Yes | Legal business name |
| domain | Yes | Website domain |
| comment | No | Additional verification notes |
Seller.json Example
{
"sellers": [
{
"seller_id": "pub-1234567890123456",
"seller_type": "PUBLISHER",
"name": "DodaTech Media LLC",
"domain": "dodatech.com]
}
]
}
Impact on Ad Revenue
| Setup Status | Average CPM | Fill Rate | Premium Demand Access |
|---|---|---|---|
| No ads.txt or seller.json | $1.50-3.00 | 65-75% | Limited |
| ads.txt only | $3.00-5.00 | 75-85% | Moderate |
| ads.txt + seller.json | $5.00-8.00 | 85-95% | Full |
| Full setup + SS metadata | $8.00-12.00 | 90-98% | Premium |
Implementation Steps by Platform
| Platform | Ads.txt Location | Management Method |
|---|---|---|
| Static site (Hugo, Jekyll) | /static/ads.txt | Add file to static directory |
| WordPress | Root via plugin or FTP | Yoast SEO or manual upload |
| Custom framework | Web server root | Add to deployment pipeline |
| Cloudflare | Bulk redirect or page rule | Cloudflare Pages or Workers |
Common Mistakes
1. Missing Ads.txt File Entirely
Over 40% of independent publisher sites still lack an ads.txt file. This immediately disqualifies you from premium programmatic demand sources and leaves your inventory vulnerable to spoofing.
2. Incorrect Account IDs
Using the wrong publisher ID in ads.txt invalidates the entire file. Copy the ID directly from your ad exchange dashboard rather than typing it manually. A single incorrect character breaks verification.
3. Mixing Up DIRECT and RESELLER
Classifying a direct exchange relationship as RESELLER reduces buyer trust even when you have a direct contract. Always use DIRECT for exchanges you have a direct agreement with and RESELLER for indirect partners.
4. No Seller.json File
Seller.json provides the buyer-side verification that modern programmatic buyers require. Without it, many DSPs will not bid on your inventory even with a valid ads.txt file.
5. Placing Ads.txt in Wrong Directory
Ads.txt must be at domain.com/ads.txt — not in a subdirectory, not in a subfolder, and not behind a redirect that changes the path. Many site builders accidentally place it in a /blog/ or /wp-content/ directory where buyers cannot find it.
6. Using Outdated Exchange Partners
Ad exchanges merge, rebrand, and change domains regularly. Review your ads.txt file every quarter to remove defunct exchanges and add new partners.
7. Ignoring SupplyChain Object Support
The SupplyChain object in OpenRTB bid requests lets buyers trace the full Transaction path. Implement it alongside seller.json for maximum transparency and demand access.
Practice Questions
1. What is the primary purpose of an ads.txt file?
An ads.txt file declares which ad exchanges and accounts are authorized to sell your website's ad inventory. It prevents domain spoofing by letting buyers verify that the seller they are buying from is legitimately authorized.
2. What is the difference between DIRECT and RESELLER in ads.txt?
DIRECT means you have a direct contractual relationship with the ad exchange listed. RESELLER means the exchange is authorized to resell your inventory through another exchange that you have a direct relationship with.
3. Where must the ads.txt file be placed on a website?
The ads.txt file must be at https://example.com/ads.txt — at the root of the domain. For subdomains, each subdomain needs its own ads.txt file at its own root.
4. What additional file works alongside ads.txt and what does it provide?
Seller.json provides structured JSON data about your company identity, including legal name, business domain, and seller type. It works alongside ads.txt to give buyers the publisher-side verification they need for confident purchasing.
5. Challenge: Deploy ads.txt and seller.json for a Hugo-based tutorial site with three ad exchange accounts.
Create a deployment script that generates ads.txt from a configuration file, creates seller.json with your publisher credentials, copies both files to the /static/ directory, and validates the files after Hugo build using the IAB Tech Lab ads.txt validator API.
Action Plan
- Log into each ad exchange dashboard and copy your publisher IDs
- Create ads.txt with DIRECT entries for your primary exchanges
- Add RESELLER entries for secondary exchange partners
- Place ads.txt at the root of your domain
- Generate seller.json with your business information
- Host seller.json on your ad exchange platform or your own server
- Verify both files using the IAB Tech Lab validator tool
- Monitor programmatic CPM changes over 30-60 days
- Review and update ads.txt quarterly
- Add SupplyChain object support to your ad implementation
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro