What is an app-ads.txt file?
24th August 2026If you earn money from advertising inside a mobile app or on connected TV, an app-ads.txt file is how you state publicly which companies are allowed to sell that advertising. It is the same idea as an ads.txt file, published by the app developer rather than by a website owner, and checked by the same buyers before they bid on your inventory.
The record format is identical to ads.txt, so most of it will already be familiar. The part that is genuinely different, and the part that quietly costs developers money, is where the file has to live. That is not something you choose. It is derived from your app store listing, and publishing one label too deep produces no error message anywhere at all.
Why is app-ads.txt a separate file from ads.txt?
Because the specification made it separate on purpose. It says the file is named app-ads.txt rather than ads.txt "so that app and web configurations are managed separately and do not create conflicts between each other".
That matters because one company often sells its website inventory through one set of partners and its app inventory through a different set. Putting both into a single file would mean every buyer reading authorisations that do not apply to the inventory in front of them. Two files, each authoritative for its own kind of inventory, avoids the problem instead of managing it.
A single domain name can hold both files at once. They are read independently, and a change to one has no effect on the other.
What does an app-ads.txt file look like?
Exactly like an ads.txt file. The specification is explicit that "the structure and content of the app-ads.txt file is the same as ads.txt for web files, and should follow the established ads.txt standard". If you have written one, you have written the other.
Example app-ads.txt file:
# app-ads.txt for the apps published by example.com
google.com, pub-0011223344556677, DIRECT, a00b11c22d33e44f
openx.com, 123456789, RESELLER
contact=adops@example.com
Each record authorises one account on one advertising system:
- The first field is the advertising system the buyer will see the inventory offered on, such as google.com.
- The second is your account or publisher ID on that system. This is the field that actually ties the inventory to you, and it is the one worth checking character by character.
- The third is DIRECT if you hold the business relationship with that system yourself, or RESELLER if a third party is authorised to sell on your behalf.
- The fourth is the optional Certification Authority ID, a unique identifier for the advertising system. It is usually only present for the larger ones.
Lines beginning with a hash are comments and are ignored by crawlers. Variables such as contact can be included in the same way as in an ads.txt file.
Where does an app-ads.txt file have to be published?
This is the section worth reading twice, because nothing about getting it wrong looks wrong.
An app-ads.txt file is never found by crawling your app. A verifier reads the developer URL published in your app store listing, reduces that URL to a domain name, and asks that domain for /app-ads.txt. Your file has to be at the root of whatever domain that process arrives at.
The reduction is defined by the specification, and it is not simply "the domain in the URL". A verifier takes the host name out of the developer URL, keeps at most the first two labels before the public suffix, and then removes any remaining www. or m. prefix. It requests the file over HTTPS first and falls back to HTTP.
So a store listing pointing at https://www.example.com/our-apps results in a request for https://example.com/app-ads.txt. The specification is explicit that the crawler will not then look at www.example.com/app-ads.txt.
Publishing one label too deep is invisible from every direction. The file is there. It returns 200. It validates perfectly. Not one record in it is ever read. There is no error to find and no report that flags it, so the only symptom is demand that never arrives, which looks exactly like ordinary weak demand.
Two related details are worth knowing:
- A file on a subdomain is authoritative for that subdomain, and the parent domain is only consulted as a fallback. Publish on the domain your listing actually names.
- One redirect is allowed, and it may point to another domain. A second redirect is an error.
You do not have to work this out on paper. Paste your file's URL into our free ads.txt and app-ads.txt validator and it will tell you the exact URL a verifier will request for it, alongside the usual validation of the file itself. No account is needed.
What behaves differently to an ads.txt file?
Two things, and both are easy to carry over by mistake when you copy an existing ads.txt file.
- The subdomain directive does nothing. The app-ads.txt specification says the directive is unused in app-ads.txt files and should be ignored if encountered. A subdomain line in an app-ads.txt file is not an error, it simply has no effect, which is arguably worse if you added it expecting one.
- An inventory partner domain reference points at an ads.txt file, not an app-ads.txt file. The ads.txt 1.1 specification states that the reference is expected to be followed to an ads.txt file only. If you name a partner there, it is that partner's ads.txt that will be read.
Everything else, including the record grammar, comments, contact details, owner and manager domains, works the same way in both files.
Do I need an app-ads.txt file?
If you sell advertising in an app or on CTV through any programmatic channel, yes, in practice. The file is voluntary in the sense that nothing forces you to publish one, and it is close to mandatory in the sense that many buyers will not bid on inventory they cannot verify. Publishing one costs nothing and removes a reason for demand to skip you.
If you have both a website and an app, you need both files. Your ads.txt file is read from the exact host a crawler found it on and is unaffected by any of the canonicalization above, so the two files can quite legitimately live on different domains if that is what your listings say.
What if I do not have any sellers to authorise yet?
Then do not publish an empty file. This is a genuine trap: a file with no records does not mean "nothing to declare here", it means nobody at all is authorised to sell this inventory, which is a worse position than having no file. A completely empty file was deprecated in March 2020 for exactly that reason.
If you truly have no partners yet, the specification asks for a single placeholder record instead:
placeholder.example.com, placeholder, DIRECT, placeholder
That says "this file is intentional and there is nothing in it yet", which is a very different statement to make.
How do I create an app-ads.txt file?
A plain text file, uploaded to the root of the right domain, is all the specification asks for. The difficulty is not creating it once, it is keeping it correct: partners change, account IDs get retyped, and a file that was right when you published it drifts quietly out of date.
ads.txt Guru manages app-ads.txt files alongside the ads.txt files it already manages, with the same editor, validation, version history and publishing options. It checks the file is reachable at the URL a verifier will actually request, and tells you when it stops being so.
- Manage: app-ads.txt Files, the full walkthrough.
- Where should my app-ads.txt file be published?, the location rule on its own.
- The validator, free and without an account, if you only want to check the file you already have.
Basic membership is free of charge, and every paid plan includes a free trial. If you are publishing an app-ads.txt file for the first time and would like a second pair of eyes on it, contact our team.
Articles
What is an app-ads.txt file?
24th August 2026
New: app-ads.txt Support for Apps and CTV
10th August 2026
New: One Reuse Group, DIRECT on Your Site and RESELLER on Publishers
29th May 2026
New: Automate Hosting & WordPress Setup via API
26th April 2026
The Hidden ROI of ads.txt Management for Ad Networks
4th October 2025
Under New Management
10th August 2025
Appending Custom ads.txt Records
15th March 2021
New Collaboration Process
22nd February 2021
Goodbye Duplicate Records!
24th November 2020
Publisher Plan Changes
7th July 2020
ads.txt Comparison Tool
7th July 2020
Collaborator Search & Flex Data Import
9th August 2018
Ad Networks: Managing Your Publisher's ads.txt Files
31st July 2018
ads.txt Hosting, Certification ID Validation & More
24th July 2018
Introducing Flex Records
18th July 2018
The perfect ads.txt file
12th July 2018
What is an ads.txt file?
1st July 2018