Skip to content
Menu
Mobile

app-ads.txt for iOS Apps on the App Store

Which App Store Connect URL crawlers read, how to handle domains and redirects, and how to cover many apps with one file.

5 min read · Updated

iOS apps use the same app-ads.txt standard as Android ones, but the place crawlers look for your website is different. On the App Store it comes from the URLs you enter in App Store Connect, and small choices there decide whether a buyer can ever find your file.

The stakes are higher than they look. In our benchmark tables, iOS carries a 1.3x multiplier over Android, so a Tier 1 rewarded video that sits around $12.00 eCPM on AdMob for Android works out at about $15.60 on iPhone. Losing buyers on that inventory because a file cannot be found is an expensive mistake.

This guide assumes you know the basics of the file format. If not, start with app-ads.txt for Google Play, which covers the format line by line, then come back here for the Apple specifics.

How crawlers find your iOS file

The chain is the same as on Android. A crawler reads your app's public App Store listing, takes the developer website from it, and requests /app-ads.txt from the root of that domain. Buyers then match each bid request against the lines it found.

The difference is which field supplies the website. App Store Connect gives each app a Support URL, which is required, and a Marketing URL, which is optional. On the public listing these show up as links for app support and the developer's website. Crawlers and networks generally treat the developer website link as the source for app-ads.txt, and some fall back to the support link when there is no marketing URL.

Because behaviour can differ between crawlers, the safe setup is simple: put the same root domain in both fields, and host the file on that domain. Then it does not matter which one a given crawler reads.

Setting the URLs in App Store Connect

You will find both fields in the app's listing information in App Store Connect. A few rules keep you out of trouble:

  • Use a domain you own. A support page on a third-party help desk or a link-in-bio service puts the root of the domain out of your control.
  • Keep the Marketing URL short. https://example.com is better than https://example.com/apps/puzzle?ref=store, though crawlers will reduce either to the host.
  • Check localisations. These URLs can be set per language, so a localised listing could point somewhere else. Keep every localisation on the same domain.
  • Plan for review. Depending on the field and your app's state, a URL change may only go live with your next version submission. Check what App Store Connect allows for your app before you rely on a quick edit.

After the change is live, open the public listing in a browser and follow the links. What you see there is what crawlers see. Apple's own guidance on listing metadata lives in the App Store Connect help and the wider App Store developer pages.

Domain and hosting rules

The file must load at https://yourdomain.com/app-ads.txt with a 200 status and plain text content. The same hosting rules apply as on Android:

  1. No login wall, cookie wall or bot challenge in front of the file.
  2. Valid HTTPS, with HTTP redirecting to the same file.
  3. Plain text, not an HTML page that happens to contain the lines.
  4. The file reachable on both the www host and the bare domain if your listing uses www.

Subdomains catch people out. If your Marketing URL is https://games.example.com, crawlers may look for the file on that host, on example.com, or both, depending on how they apply the specification. Serving the same file in both places removes the guesswork.

Redirects

Redirects are where many iOS setups fail, because developers often use a landing page that forwards somewhere else. Crawlers generally follow a short redirect, such as HTTP to HTTPS or the bare domain to www. Long chains, JavaScript redirects and redirects to a different domain are less reliable and can leave the crawler with nothing.

The cleanest approach is to make /app-ads.txt load directly with no redirect at all. If you must redirect, keep it to one hop on the same domain, and test with a command-line tool or an online header checker to see the exact status codes.

Several apps, one file

One app-ads.txt file can cover every app that lists the same domain. Your AdMob publisher ID is tied to your account, not to each app, so a single AdMob line authorises all the apps in that account.

This makes a shared domain the easiest option for a studio. Point every app's Marketing URL at the studio site, keep one file there and maintain it in one place. If you publish under several developer accounts, the file can hold lines for each account's publisher IDs side by side.

If your Android and iOS versions share a website, they share the file too. That is a good thing: you only need to update one list when you add a network.

Adding mediation partners' lines

Each network in your mediation stack needs its own records. AppLovin MAX, LevelPlay and AdMob mediation each publish the lines for their partners, and some offer a ready-made list you can paste in full. Add every partner you have switched on for iOS, since a network that bids on your iPhone traffic but is missing from the file may see that traffic as unverified.

Keep the file tidy with comments:

  • A # line above each network's block saying which network it is.
  • A note of the date you last refreshed each block, since partner lists change.
  • Removal of blocks for networks you no longer use, so the file stays accurate.

Buyers read the file as a whole. A RESELLER line for a partner you dropped a year ago does not usually break anything, but an accurate file is easier to audit when something goes wrong. See bidding vs waterfall for how partners compete once they are verified.

Verifying and troubleshooting

In AdMob, an iOS app must be linked to its App Store listing before app-ads.txt can be checked. Once linked, the app-ads.txt status shows whether the file was found and whether your publisher ID is present. Allow up to a day or so after a change for AdMob to recheck, and longer for every buyer's crawler to catch up. The AdMob help centre has the current verification steps.

When the status will not turn green, work through this list:

  • Wrong website on the listing. Open the live App Store page and check both links point at your domain.
  • Localised listing points elsewhere. Check each language's URLs.
  • Redirect to another domain. Serve the file directly instead.
  • Typo in the publisher ID. Paste it fresh from your account.
  • Unlinked app. Link the AdMob app to the App Store listing.
  • Firewall challenge. Allow crawlers through to the file.

If verification is fine but revenue is still soft, the cause is often elsewhere. Our guide to ATT and iOS ad earnings covers how tracking consent shapes iPhone eCPMs, and why ad accounts get limited covers serving restrictions.

Checking the value

To see what verified iOS inventory is worth at your scale, set the platform to iOS in the AdMob revenue calculator or the AppLovin MAX calculator. The estimates page and our methodology explain how the iOS multiplier and region tiers combine. If you also publish outside the big two stores, read app-ads.txt on Amazon, Samsung and Huawei.