An ads.txt file is a plain-text list at /ads.txt on a site's root domain that declares which advertising systems are authorized to sell the publisher's inventory, and a standards-shaped generator can build that file from a few partner-provided fields per partner. Beginners usually hit the same three walls: not knowing which advertising system domain to type, guessing the publisher account ID format, and picking between DIRECT and RESELLER without a clear rule. The IAB Tech Lab specification, formally Ads.txt 1.1, defines ads.txt as a record set of four fields per row — advertising system domain, publisher account identifier, relationship, and an optional certification authority ID — and the file must live at a single predictable URL that crawlers can fetch without authentication. An ads.txt generator for beginners turns the partner-supplied values into a syntactically correct, deduplicated, newline-terminated file that you can copy or download, then publish at the documented root location and verify by reading the public URL as plain text.

ads txt generator for beginners
ads.txt Generator for Beginners: Build Your First File

What ads.txt Is and Why Publishers Need One

ads.txt stands for Authorized Digital Sellers. It is a small, crawlable text file that lets a publisher publicly state which ad networks, exchanges and SSPs are allowed to resell their ad inventory. Buyers and supply-side platforms consult the file before bidding, so a missing or incorrect ads.txt can mean your impressions are filtered out even when a partner is technically authorized.

The file lives at a fixed URL: the root path /ads.txt of the domain that owns the inventory. For example, a publisher on example.com must publish the file at https://example.com/ads.txt. Crawlers will not look for it under /files/, inside an HTML page, behind authentication or with a query string attached. If the public URL does not return the exact plain text, the declaration is effectively invisible.

Because ads.txt is a public trust signal, the format itself is deliberately strict. Each row is a comma-separated record, the file must end with a newline, and unknown or malformed entries can be ignored by crawlers. A generator designed for the IAB spec removes the guesswork from spacing, casing and field order so the file is parseable on the first crawl.

The Four Fields Inside a Single ads.txt Record

Every ads.txt row has up to four comma-separated fields. The first three are required, the fourth is optional, and each one has a strict shape that the generator enforces. Knowing what goes where is the difference between a file that crawlers accept and one they silently skip.

PositionField nameRequiredFormat rules
1Advertising system domainYesBare DNS host, lowercased, no scheme, path, port or credentials
2Publisher account IDYesExact value from the platform (e.g. pub- followed by digits for Google AdSense)
3RelationshipYesLiteral DIRECT or RESELLER only
4Certification authority IDNoExact token provided by the platform; leave blank if unsure

The first field is the canonical domain of the advertising system where buyers connect — it is not your website's domain. You must enter a bare host such as google.com, without https://, a port, a path, a password or trailing slash. The generator lowercases and validates the host instead of silently extracting a host from a pasted URL. The second field is the seller or publisher account identifier assigned by that platform; for Google AdSense the official format uses a pub- prefix followed by your account digits, while other exchanges use different identifiers, so always copy the value from the platform's own setup instructions. The third field restricts you to DIRECT or RESELLER, and the fourth is an optional certification authority identifier that you should leave blank unless the advertising platform provides the exact value for that record.

How to Build Your First ads.txt File

Once you have the field rules in mind, the actual workflow is short. Open a standards-shaped generator such as the Ads Txt Generator, add each authorized seller one at a time, then download and publish the result.

  1. Gather the four pieces of information from each platform. Copy the advertising system domain, your publisher account ID, the DIRECT or RESELLER relationship and the optional certification authority ID directly from the platform's own setup instructions. Do not invent the values, do not convert between ID formats, and do not paste full URLs into the domain field.
  2. Add each authorized seller as a separate row. Enter the values into the generator, submit the row, and repeat for every partner you authorize. The generator trims surrounding whitespace, rejects commas inside fields, normalizes the domain to lowercase and blocks exact duplicate rows so the file cannot accidentally contain the same record twice.
  3. Review every generated line and remove anything obsolete. Read the visible list back to front. If a partner no longer sells your inventory or you have stopped using them, delete that row before downloading. Keep a backup of the previous ads.txt so a mistaken removal is reversible.
  4. Download the finished ads.txt. Use the download button or copy the text. Confirm the file ends with a newline and that every row contains exactly three or four comma-separated fields. The tool can support up to 200 records, which keeps the result manageable even for publishers with many partners.
  5. Publish the file at /ads.txt on your root domain. For a domain like example.com, the public location is https://example.com/ads.txt. Place it on the root domain that owns the inventory, never inside a subfolder, behind a login or wrapped in HTML, then open the URL in a browser to confirm it returns plain text.
  6. Compare the public file with each platform's instructions. Open the live URL and read it back line by line. Each row should match what the platform tells you to publish. The generator validates syntax, not authorization, so this final comparison is where you catch a missing platform or a wrong relationship.

Choosing DIRECT or RESELLER Without Guessing

The relationship field is the one beginners second-guess most often. DIRECT means you control the listed seller account and have a direct business relationship with the advertising system. RESELLER means another entity controls that account and is authorized to resell your inventory to other buyers. The distinction matters because selecting the wrong value makes the declaration inaccurate even when every other character is formatted correctly.

Use DIRECT when the platform itself issued the publisher ID and you signed the contract. Use RESELLER when the account belongs to a partner, agency or programmatic intermediary who will resell your inventory through that platform. When in doubt, check the platform's setup page: ads.txt guidance for Google AdSense and most exchanges tells you exactly which relationship to declare for the ID they issued. For a closer look at field-level rules, the ads.txt generator cheat sheet on field rules and output breaks down how each value is normalized before the file is produced.

Where to Host ads.txt and How to Verify It Works

Hosting ads.txt in the wrong place is the single most common reason a beginner's file does not take effect. The expected public location for any domain is https://yourdomain.com/ads.txt, served as plain text with no login, no redirect chain and no HTML wrapper. Publishing the same content under /files/ads.txt, inside a CMS page, behind HTTP authentication, or with a query string does not create the same crawler-visible root resource.

After deployment, open the URL in a private browser window so caching does not hide the change. The browser should display the raw rows of text, not a download prompt for an HTML document. Compare each line against the partner's current instructions; if a row is missing or has drifted, the change did not propagate. A walkthrough on creating and publishing an ads.txt file covers the host-upload and CMS-upload variants side by side.

Common Beginner Mistakes That Break ads.txt Files

Most failed ads.txt files come from a small set of recurring mistakes rather than mysterious crawler behavior. Watching for these patterns lets you fix a file before it costs you revenue.

  • Pasting a full URL into the domain field. The first field expects a bare host. Schemes, paths, ports and credentials are all rejected, and the generator lowercases and validates the domain instead of silently extracting a host from a pasted URL.
  • Reusing someone else's certification authority ID. Google's published example uses f08c47fec0942fa0, but that token only applies inside the Google example. Do not copy it into rows for other exchanges; leave the field blank unless your specific platform provides the value.
  • Guessing the publisher account ID. Other platforms do not all use the same identifier format as Google AdSense. The exact form depends on the platform, so copy the value from the platform's own instructions rather than inventing or converting it.
  • Uploading ads.txt inside a subfolder. Files at /files/ads.txt, /public/ads.txt or behind authentication are not crawled at the root and will be ignored. Only /ads.txt on the root domain creates the expected crawler-visible resource.
  • Leaving duplicate rows. Duplicate seller declarations are rejected by the generator before download, but pasting the same row twice into an existing file by hand is a separate mistake that confuses crawlers and resellers.
  • Removing valid sellers to add a new one. If several advertising systems are authorized, add one verified record for each account rather than replacing the list. Existing valid sellers stay; the new one joins them.

Keeping ads.txt Current After Launch

An ads.txt file is not a one-time task. Account changes, partner switches, and network restructurings can all require future updates, and a stale file can quietly suppress monetization if a row no longer reflects reality. Treat the file like a configuration asset: version it, keep a backup of the prior version, and re-check the public URL after every change.

Every time a new platform is authorized or a partner is dropped, run the row through the same generator workflow: copy the exact values from the platform's instructions, add the row, regenerate the file, republish at /ads.txt and verify the live URL still returns plain text. Account-level verification remains your responsibility — a syntactically valid but unauthorized or incomplete file can still harm monetization, so always review the output against current instructions from each partner before you deploy.

The format itself is governed by the IAB Tech Lab ads.txt 1.1 specification, which is the public reference every generator, exchange and crawler aligns to.