app-ads.txt is an IAB Tech Lab specification that lets a mobile app declare which seller accounts are authorized to resell its inventory, and each record uses exactly the same comma-separated fields as the standard ads.txt file used on websites. The file is hosted at a fixed location on a developer's own website rather than on a server the app controls, which gives programmatic buyers a public place to confirm that an ad network claiming to sell the app's inventory is really authorized. Most major networks — including Google AdMob, Meta Audience Network, AppLovin, Unity LevelPlay, and ironSource — surface the seller records they expect you to publish through their publisher dashboards, but each one presents those records in its own format and at its own menu location. Combining them into one standards-shaped file is the practical task the Ads Txt Generator is built to handle: you paste each platform-supplied record in, the tool validates the four fields, removes duplicate rows, and produces a file you can rename and deploy at your developer URL.

app-ads.txt vs ads.txt: Same Format, Different Host

The IAB Tech Lab introduced ads.txt for websites in 2017 and extended the same record syntax to mobile apps in 2019 as app-ads.txt. The line format is identical — four comma-separated fields per record, one record per line, newline at the end of the file — but the crawling target is different. A web inventory owner publishes the file at the root of its own domain; a mobile app developer publishes the file at the root of a developer-owned website and then registers that URL inside the app store listing so buyers can map the in-app bundle identifier to the right public file.

Aspectads.txt (websites)app-ads.txt (mobile apps)
Record formatFour comma-separated fields per lineIdentical four-field record
Spec familyIAB Tech Lab ads.txt 1.1IAB Tech Lab app-ads.txt 1.0
Public URL patternhttps://example.com/ads.txthttps://example.com/app-ads.txt
Who owns the hostThe website ownerThe app developer
How buyers find itCrawling the inventory domainCrawling the developer URL registered in the store

Because the record syntax is shared, a tool that produces a standards-shaped ads.txt file produces a valid app-ads.txt file body too; the only thing that changes is the filename and the public path.

Where Each Ad Network Exposes Its app-ads.txt Records

No single ad network hands you a complete app-ads.txt file from one screen. Each one surfaces the records it expects you to publish through a different dashboard route, and the records themselves include platform-specific publisher identifiers and sometimes a certification authority ID. Pulling them in the right order avoids missing a row or duplicating one you already added, and the official record syntax is documented in the IAB Tech Lab ads.txt 1.1 specification, which app-ads.txt extends for mobile inventory.

NetworkWhere to find the recordsIdentifier pattern
Google AdMobApps menu → App settings → app-ads.txt blockpub- followed by account digits
Meta Audience NetworkMonetization Manager → Property → Authorized SellersNumeric property ID with DIRECT or RESELLER tag
AppLovin MAXAccount → MAX → Manage apps → Authorized SellersAlphanumeric account ID
Unity LevelPlayMonetize → Setup → app-ads.txt snippetUnity-issued code
ironSource / TapjoyAccount dashboard → app-ads.txt blockNetwork-issued seller ID

Dashboard labels and routes drift as networks redesign their UIs, so the safe habit is to read the platform's own setup page for the current state of the menu, copy the suggested record verbatim, and treat that page as the source of truth rather than any cached version of it.

Build a Standards-Shaped File Locally

Once you have one verified record per authorized network, the next task is to combine them into a file crawlers will accept without warning. The Ads Txt Generator produces that file content from the inputs you paste in, with field validation and duplicate protection on every step. Account details stay on your device because the generator does not send them to the server.

  1. Open the Ads Txt Generator in your browser.
  2. For each authorized network, copy the advertising system domain, publisher account ID, relationship (DIRECT or RESELLER), and optional certification authority ID from the platform's own setup instructions.
  3. Paste the first record into the generator and add it to the visible list. Repeat for every verified seller, including any you already had live before adding a new partner.
  4. Review the assembled text. Remove any line you cannot match to a current dashboard entry and confirm each identifier is exactly as the platform supplied it.
  5. Download the file (or copy the rendered text), then save it locally as app-ads.txt so the deployment step matches the IAB spec filename.

The generator trims whitespace, lowercases domains, rejects commas or spaces inside fields, blocks duplicate rows, caps output at 200 records so a stray oversized paste cannot produce an unwieldy result, and ends the file with a newline. It validates syntax only; it does not log into any ad account, confirm that a publisher ID belongs to you, or prove a reseller is permitted, so the verification work still has to happen against each network's dashboard.

Publish the File at the Correct Developer URL

The IAB spec requires app-ads.txt to be reachable at a fixed location on a developer-owned domain. The expected pattern is https://example.com/app-ads.txt, where example.com is the website you control and the same URL you register inside Google Play's developer website field or Apple App Store Connect's marketing URL field. Three deployment rules from the spec avoid the most common rejection scenarios:

  • Host the file at the root path /app-ads.txt on a plain HTTP or HTTPS URL. Subpaths such as /files/app-ads.txt or wrapping the content inside an HTML page do not satisfy the spec.
  • Do not gate the file behind authentication, a referrer check, or a geolocation block, since programmatic buyers fetch it without supplying credentials.
  • Register the developer URL in each app store listing so buyers can map the in-app bundle identifier to the right public file.

After deployment, fetch the URL in a private browser, view the response as plain text, and confirm each line matches the records in your generator output.

Verify the Public File and Keep Records Current

A live app-ads.txt file is not a one-time artifact. Networks rebrand, change seller accounts, rotate certification authority IDs, and deprecate reseller partners, and any of those changes can leave stale rows on a public file that quietly harm monetization. The fix is a regular reconciliation loop rather than a one-time publish, and a plain-text diff against the previous backup is the fastest way to spot a problem when fill rate drops.

  • Open the public URL as plain text every quarter and compare each line against the current instructions in each ad network's dashboard.
  • Keep a backup of the previous file before publishing a replacement so the diff between old and new is one click away when a partner changes its seller ID.
  • Add a new row before removing an obsolete one when onboarding a replacement partner, so the file remains valid throughout the cutover.
  • Re-run the same input set through the Ads Txt Generator whenever a record changes, instead of editing the deployed file by hand and risking stray commas or extra spaces.

For a deeper walkthrough on each ad network's dashboard route, see the practical guide to creating an app-ads.txt file, which covers individual platform steps in more detail.

If you're weighing options, Check AI Bot Robots.txt Without These Mistakes covers this in detail.