New: app-ads.txt Support for Apps and CTV

10th August 2026

You can now manage app-ads.txt files in ads.txt Guru, alongside the ads.txt files you already manage. Same editor, same validation, same collaboration groups, same delivery options.

It is included on the Publisher and Ad Network plans, and a domain's two files only count once against your domain allowance.

ads.txt Guru manages app-ads.txt files alongside the ads.txt files it already manages
Two files, managed separately, on purpose

An app-ads.txt file authorises the companies allowed to sell the advertising in your apps and CTV inventory. It uses the same record format as ads.txt, and the specification gives it a different name deliberately, so that app and website configurations are managed separately and cannot conflict with each other.

We have followed that model rather than working around it. Add a domain, choose /app-ads.txt, and you get a file with its own records, its own verification, its own delivery settings and its own version history. One hostname can hold both files, so example.com can appear twice in your dashboard, once per file, and a change to one never touches the other.

The mistake that costs the most, and how to check for it

An app-ads.txt file is not found by crawling your app. A verifier reads the developer URL from your app store listing, reduces it to a domain name, and asks that domain for /app-ads.txt.

So if your listing points at https://www.example.com/our-apps, verifiers read https://example.com/app-ads.txt. A file published one label too deep returns 200, validates perfectly, and is read by nobody at all. There is no error anywhere to find it by: the only symptom is demand that never arrives.

Our validator now answers this. Paste any app-ads.txt URL and it tells you the exact URL a verifier will request for it, alongside the usual validation of the file itself. It is free and it does not need an account.

Start from the ads.txt file you already have

Most app-ads.txt files begin as a copy of the website ads.txt. Open your app-ads.txt file, go to the Import tab, and use Copy from ads.txt. It works in both directions.

Two kinds of record are deliberately left behind, and we tell you which and why:

  • SUBDOMAIN records, because the variable is unused in an app-ads.txt file and would have no effect.
  • Records that come from a collaborate group, because a copy would stop matching the group the next time the group changed. Add the domain to the same group instead, and both files stay in step by themselves.
Everything else already worked

Verification, Connect Hosting (a redirect from your own /app-ads.txt, which the standard explicitly allows), Connect FTP, downloads, version history, the alerts and the API all treat an app-ads.txt file exactly as they treat an ads.txt file. Over the API, add a domain with file=app-ads.txt and every record endpoint works unchanged, because they key on the domain rather than on the filename.

Our WordPress plugin handles app-ads.txt as well, from version 1.2.0 onwards, keeping a separate app-ads.txt path alongside the ads.txt one. If your site is still running an older copy of the plugin, that tab asks you to update it before connecting rather than letting it write the wrong file.

If you authorise nobody yet

Do not publish an empty file. An app-ads.txt file with no records tells crawlers that nobody may sell your inventory, which is worse for you than having no file at all, and a completely empty file was deprecated in March 2020. If you genuinely have no partners yet, the specification asks for a single placeholder record, and the editor offers to add it for you.

Where to read more

Start Free Trial →

Publishing app-ads.txt for the first time and want a second pair of eyes on it? Contact our team.