An ads txt generator is a browser-side form that turns one set of authorized-seller details — the ad system domain, your publisher account ID, a DIRECT or RESELLER relationship, and an optional certification authority ID — into a standards-shaped ads.txt file you can copy or download. Each seller becomes one comma-separated line; the file ends with a newline; duplicates are rejected; and the tool works entirely in your browser, so account identifiers never leave your device. The generator validates field syntax, not authorization: it can confirm that google.com is a bare lowercase domain and that the relationship field is DIRECT or RESELLER, but it cannot prove that a publisher ID is yours or that a reseller is permitted. For that reason, every record must come from the advertising platform's own setup instructions, and the finished file must still be reviewed line by line before it goes live at /ads.txt on your root domain.

What an Ads Txt Generator Actually Does
An ads txt generator is a focused tool for one job: producing a syntactically correct Authorized Digital Sellers file. You enter the seller information supplied by your advertising platforms, and the tool writes a plain-text file where every line is one comma-separated record. The Ads Txt Generator works entirely in your browser — no data is sent to a server — and supports up to 200 records, well beyond what any single publisher is likely to need. It validates field syntax, which is the shape of the data, but not authorization, which is whether the data reflects real, current partnerships. That distinction is what separates a generator from an account-verification tool, and it is why the page cannot replace the platform-side work of confirming publisher IDs and reseller agreements.
What the tool does produce is consistent. Domains are normalized to bare lowercase DNS-style hosts. Relationships are restricted to DIRECT or RESELLER. Duplicate rows are rejected, and the output always ends with a newline so crawlers can parse the last line reliably. The tool does not prefill a real user ID or pick a network on your behalf; you must supply every value from the platform's own setup instructions.
The Four Fields in a Single ads.txt Record
Every ads.txt line contains up to four comma-separated fields, defined by the IAB Tech Lab ads.txt 1.1 specification the generator is aligned to.
The first field is the canonical domain of the advertising system where buyers connect — for example, google.com. It is not your own website domain. Enter a bare domain, not a URL: no https:// prefix, no path, no port, no username, no password. The generator lowercases and validates the host instead of silently extracting it from a pasted URL, which prevents accidental schemes or paths from sneaking in.
The second field is the publisher account identifier assigned by that system. Its exact form depends on the platform. Google's published example uses a pub- prefix followed by digits, while other exchanges use different identifier shapes. Copy the value verbatim from the platform's own instructions rather than inventing or converting it.
The third field is the relationship, either DIRECT or RESELLER. The fourth field is optional and identifies the advertising system within a certification authority. Google's published example includes f08c47fec0942fa0. Do not assume that identifier applies to another exchange; leave the field blank unless the platform provides the exact value for that record.
| Field | Required | Example | What to enter |
|---|---|---|---|
| Advertising system domain | Yes | google.com | Bare lowercase DNS-style host, no scheme or path |
| Publisher account ID | Yes | pub-0000000000000000 | Exact value from platform setup instructions |
| Relationship | Yes | DIRECT | Only DIRECT or RESELLER is accepted |
| Certification authority ID | No | f08c47fec0942fa0 | Only when the platform provides it for that record |
DIRECT vs RESELLER: Picking the Right Relationship
The relationship field is the part of an ads.txt record most often mis-set, because the choice carries a real business meaning rather than a formatting one. DIRECT means the site owner directly controls the account in the seller record and has a direct business relationship with the advertising system. RESELLER means another entity controls the listed account and is authorized to resell your inventory. Selecting the wrong relationship can make the declaration inaccurate even when every character is formatted correctly, and a syntactically valid but unauthorized file can still harm monetization.
| Aspect | DIRECT | RESELLER |
|---|---|---|
| Account control | You control the seller account directly | Another authorized entity controls the account |
| Business relationship | Direct contract between you and the ad system | Indirect; the reseller contracts with the ad system |
| Source of authority | Your own platform account | A signed reseller agreement or partner program |
| Typical use case | Your primary ad network or exchange | Header bidding wrappers, partner platforms, SSPs |
The tool accepts only these two values. Anything else — "direct" in lowercase, a platform-specific label, or a free-text description — is rejected as a syntax error before the row is added to the output.
How to Build, Download, and Publish an ads.txt File
The Ads Txt Generator follows a deliberate three-stage workflow: gather, build, deploy. Each step depends on the previous one, and skipping any of them leaves the finished file incomplete.
- Copy the advertising system domain, publisher account ID, relationship, and optional certification authority ID from the platform's own setup instructions. Open the platform's documentation or account dashboard, locate the seller record it tells you to add, and copy each value exactly as printed. Do not paste a URL when the platform gives you a bare domain; do not paraphrase a publisher ID even if the format looks obvious.
- Add each authorized seller, review every generated line, and remove duplicates or obsolete entries. Repeat the add step for every platform that sells your inventory. The generator will reject exact duplicate rows so an accidental double-paste does not produce two identical lines. Before downloading, read the full output against the source instructions and strike any entry you cannot trace back to a current platform-side confirmation.
- Download ads.txt, publish it at the root domain as /ads.txt, and compare the public file with your verified account records. Save the generated file, upload it to the root directory of the domain that owns the inventory (for example, https://example.com/ads.txt), and then open that URL in a fresh tab. The file must appear as plain text, not wrapped in HTML, not gated by authentication, and not located under /files/ or any subpath. After deployment, open the public URL and confirm each line still matches the verified account data; an intervening copy-paste error or a CDN cache can introduce silent drift.
Validation Rules the Generator Enforces
The generator trims surrounding input, rejects commas or whitespace inside fields, normalizes domain case, prevents exact duplicate rows, and ends the file with a newline. Each of those rules corresponds to a common ads.txt error mode. A comma inside a publisher ID, for example, would split the row into two malformed records and could be interpreted as a separate seller by a crawler.
Domains are not extracted from pasted URLs. A pasted https://google.com/ads will not be normalized to google.com; the generator surfaces it as an error and asks for a bare host. This is deliberate: extracting hosts silently would mask the mistake of pasting a tracking link or a wrong subdomain.
Punycode domains, subdomains, and a trailing root dot are also covered by the validation fixtures. A record for xn--example.com (an IDN-encoded host) and a record for subdomain.partner.net are both accepted when the syntax matches DNS rules; a record for example.com. with a literal trailing dot is also handled, since DNS allows it. Common identifier punctuation — hyphens, dots inside subdomains, the pub- prefix — is preserved rather than stripped.
The page validates syntax, not authorization. It cannot sign into an ad account, confirm that a publisher ID belongs to you, prove that a reseller is permitted, or discover every platform that sells your inventory.
Limits, Boundaries, and What the Tool Cannot Do
The generator supports up to 200 records so a mistaken oversized paste cannot produce an unwieldy browser result. Beyond that limit, additional entries are not accepted. The 200-line ceiling is a safety bound; most publishers need only a handful of records.
The tool deliberately does not prefill a real user ID or make a network choice for you. The Google example used in the fixtures is google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0. The zeros are a placeholder, not a usable publisher account. Anyone copying that fixture verbatim into a live ads.txt would declare an account that does not belong to them, which is exactly the failure mode the placeholder is designed to surface.
The page does not perform any of the following: it does not call the IAB Tech Lab registry, it does not check whether a domain is a recognized ad system, it does not look up whether your publisher ID is real, and it does not validate that a reseller is contractually authorized. Account-level verification remains your responsibility and must come from each advertising partner's own dashboard and documentation.
Reviewing and Deploying the Finished File
A generator can only do so much. The review pass is what turns a syntactically valid file into an accurate one. Read each generated line against the platform-side instructions one final time. Confirm that every domain is a bare lowercase host, that every publisher ID is copied verbatim, and that every relationship reflects the actual control structure of the account.
If several advertising systems are authorized, add one verified record for each account. Do not remove existing valid sellers merely to add a new one. Keep a backup of the prior file, compare the change, and check the public URL as plain text after deployment. Account or network changes may require future updates, so treat the file as a living document rather than a one-time setup.
Host the downloaded file as /ads.txt on the root domain that owns the inventory. Publishing it only under /files/ads.txt, inside an HTML page, or behind authentication does not create the same crawler-visible root resource. The expected public location for example.com is https://example.com/ads.txt, served as text/plain. Formatting assistance from the generator cannot replace account-level verification, but when every entry is sourced from the platform's own instructions, the result is a clean file that crawlers can parse without ambiguity.
Related reading: Does an llms.txt Example Generator Crawl Your Site?.
Related reading: Robots.txt Generator API Alternative: Local Browser Output.