Ads Txt

How to Set Up app-ads.txt for Android Apps

A step-by-step guide to setting up app-ads.txt for your Android app on Google Play. From configuring your developer URL to verifying AdMob crawls your file correctly.

B
BeamFlow Team
BeamFlow Team
February 9, 2026
7 min read
How to Set Up app-ads.txt for Android Apps

Key Takeaways

  • Starting January 2025, new AdMob apps require app-ads.txt verification to serve ads. Google is rolling this requirement out to all existing apps throughout 2025. If your Android app uses AdMob, this is no longer optional.
  • The setup involves three systems: Google Play Console (developer URL), your website (hosting the file), and your ad network dashboards (getting the correct entries).
  • The developer website URL in your Google Play listing is the trust anchor. DSPs use this URL to locate your app-ads.txt file. A wrong or missing URL breaks the entire verification chain.
  • The file itself takes 5 minutes to create. The setup complexity is in making sure the developer URL, file hosting, and ad network entries all align correctly.
  • Verification takes 24 hours after setup. AdMob and other DSPs need time to crawl your file. Don't panic if verification isn't instant.

---

How to Set Up app-ads.txt for Android Apps

If your Android app runs programmatic ads, you need app-ads.txt. Google made this explicit in January 2025 when they began requiring app-ads.txt verification for new AdMob apps. The requirement is expanding to all existing apps on a rolling basis throughout 2025.

Beyond the AdMob requirement, app-ads.txt directly impacts your revenue. DSPs that verify app inventory against app-ads.txt will bid higher on verified apps and may skip unverified ones entirely. Setting it up correctly is one of the highest-ROI tasks in mobile ad operations.

This guide walks through every step, from configuring your Google Play listing to verifying that crawlers can find and parse your file.

Prerequisites

Before starting, make sure you have:

  • A Google Play Console account with access to your app's listing
  • A developer website that you control and can host files on
  • Access to your ad network dashboards (AdMob, AppLovin, Unity Ads, etc.) to get the correct app-ads.txt entries
  • A plain text editor (Notepad, VS Code, TextEdit in plain text mode)

If you don't have a developer website, you need to create one. Even a minimal site hosted on Firebase, Netlify, or a basic hosting plan is sufficient. The website's sole requirement is being able to serve a text file at its root path.

Step 1: Set Your Developer Website URL in Google Play Console

This is the foundational step. The URL you set here tells DSPs where to find your app-ads.txt file.

  1. Sign in to the Google Play Console
  2. Select your app
  3. Navigate to Store presence > Store settings in the left menu
  4. Scroll to Store listing contact details
  5. Enter your developer website URL (e.g., https://yourstudio.com)
  6. Save changes

Critical details:

  • Use the root domain. Enter https://yourstudio.com, not https://yourstudio.com/games/myapp. DSP crawlers will look for app-ads.txt at the root of whatever domain you specify.
  • Use HTTPS. Google Play requires HTTPS for developer website URLs. If your site doesn't have an SSL certificate, set one up first.
  • Match the URL exactly. If you enter https://www.yourstudio.com, the crawler checks https://www.yourstudio.com/app-ads.txt. If your file is at https://yourstudio.com/app-ads.txt (no www), it won't be found. Make sure the URL form matches where the file is hosted.
  • The URL applies to all apps under your developer account. If you publish multiple apps, they all point to the same developer website. One app-ads.txt file covers all of them.

After saving, it may take a few hours for the updated store listing to propagate. Don't proceed to verification until the Play Store listing shows the correct developer URL.

Step 2: Collect Your Ad Network Entries

Before creating the file, gather the correct app-ads.txt entries from every ad network and SSP your app uses.

Google AdMob

AdMob provides a pre-formatted entry:

  1. Sign in to AdMob
  2. Click Apps in the sidebar
  3. Click View all apps
  4. Click the app-ads.txt tab
  5. Click How to set up app-ads.txt
  6. Copy the personalized code snippet

The entry looks like:

text
google.com, pub-1234567890123456, DIRECT, f08c47fec0942fa0

Your publisher ID (pub-XXXXXXXXXXXXXXXX) is unique to your AdMob account. Don't copy someone else's ID.

AppLovin

  1. Log in to the AppLovin dashboard
  2. Navigate to Account > app-ads.txt
  3. Copy the provided entries

Unity Ads

  1. Sign in to the Unity Dashboard
  2. Go to Monetization > Setup > app-ads.txt
  3. Copy the entries for your account

Other Networks (ironSource, InMobi, Chartboost, Vungle, etc.)

Each network provides their entries through their publisher dashboard or documentation. The pattern is the same: log in, find the app-ads.txt or ads.txt section, copy the pre-formatted lines.

Important: If you use a mediation platform (AdMob Mediation, AppLovin MAX, ironSource LevelPlay), you need entries for both the mediation platform AND every ad network in your mediation waterfall. The mediation platform sells your inventory through those networks, and each one needs an authorized entry.

Step 3: Create the app-ads.txt File

Open a plain text editor and create a file named exactly app-ads.txt.

Paste all the entries you collected:

text
# Google AdMob (direct) google.com, pub-1234567890123456, DIRECT, f08c47fec0942fa0 # AppLovin (direct) applovin.com, abc123def456, DIRECT # Unity Ads (direct) unity.com, 112233, DIRECT, aaa111bbb222 # Mediation network partners (resellers) inmobi.com, 998877665544, RESELLER, 83e75a7ae333ca9d chartboost.com, 667788aabb, RESELLER vungle.com, 556644332211, RESELLER, 123abc456def

Format rules (same as ads.txt):

  • One entry per line
  • Comma-separated fields: exchange domain, account ID, DIRECT/RESELLER, optional TAG-ID
  • DIRECT and RESELLER must be uppercase
  • Comments use #
  • UTF-8 encoding, no BOM

DIRECT vs RESELLER for app ad networks:

  • If you have a direct account with the ad network and they pay you directly: DIRECT
  • If the ad network is accessed through a mediation platform or another intermediary: RESELLER
  • If you're unsure, ask your account manager at each network

Step 4: Upload the File to Your Website

Upload app-ads.txt to the root directory of your developer website. The file must be accessible at:

text
https://yourstudio.com/app-ads.txt

Upload methods:

  • FTP/SFTP: Connect to your web server and upload to the root directory (same folder as index.html)
  • Firebase Hosting: If you use Firebase, add the file to your public/ directory and deploy. Google's documentation specifically mentions Firebase as a hosting option for app-ads.txt.
  • Netlify/Vercel: Add the file to your public/ or static/ directory
  • WordPress: Upload via FTP to the WordPress root directory, or use an ads.txt plugin that also supports app-ads.txt
  • Static hosting (GitHub Pages, etc.): Add the file to the repository root

Verify immediately after upload:

  1. Open a browser and visit https://yourstudio.com/app-ads.txt
  2. You should see the raw text content of your file
  3. Check that there's no HTML wrapping, no login page, no error

Step 5: Verify the File Is Accessible

Before waiting for AdMob to crawl, verify that the file is properly accessible from outside your network.

HTTP response check:

text
curl -I https://yourstudio.com/app-ads.txt

You should see:

  • HTTP/2 200 (not 301, 404, or 403)
  • content-type: text/plain (not text/html)

Common problems at this stage:

| Problem | Symptom | Fix |

|---------|---------|-----|

| File not at root | 404 when visiting the URL | Move file to web root directory |

| Wrong content type | Browser renders HTML | Configure server to serve .txt as text/plain |

| SSL error | Connection refused or certificate warning | Fix SSL certificate on your domain |

| CDN caching old content | File shows old content or 404 | Purge CDN cache for the /app-ads.txt path |

| Auth wall | Login page appears instead of file content | Disable authentication for the /app-ads.txt path |

Step 6: Wait for Verification

After uploading, the verification timeline:

  • AdMob crawl: Typically within 24 hours. AdMob crawls the developer URL from your Play Store listing and checks for app-ads.txt.
  • DSP crawl: Other DSPs re-crawl app-ads.txt files every 24-72 hours, similar to ads.txt.
  • Play Console status: You can check verification status in your AdMob account under the app-ads.txt tab. A green checkmark indicates successful verification.

Don't make changes to the file during this initial 24-hour period. Let the first crawl complete before tweaking entries.

Step 7: Check Verification Status in AdMob

After 24 hours:

  1. Sign in to AdMob
  2. Go to Apps > View all apps > app-ads.txt tab
  3. Check the verification status for your app

Possible statuses:

  • Verified: Your file was found and your publisher ID was confirmed. Ads can serve normally.
  • Not verified: The crawler couldn't find your file, or your publisher ID wasn't in the file. Double-check your developer URL and file content.
  • Crawl error: The crawler found your developer URL but encountered an error fetching the file (SSL, redirect, 404). Fix the hosting issue and wait another 24 hours.

If verification fails, the most common causes are:

  1. Developer URL in Google Play doesn't match where the file is hosted
  2. Publisher ID in the file doesn't match your AdMob account
  3. File isn't accessible (wrong path, wrong permissions, SSL error)

Ongoing Maintenance

Setup isn't a one-time task. Maintain your app-ads.txt just like you would ads.txt:

When to update:

  • Adding a new ad network to your mediation waterfall
  • Removing an underperforming network
  • Changing mediation platforms
  • Any ad network notifies you of account ID changes

Review cadence: Monthly at minimum. Cross-reference your mediation setup against your app-ads.txt entries to ensure they match.

Monitor for changes: SSPs update their sellers.json independently. An entry that verified last month might fail cross-verification today. Use BeamFlow's scanner to check verification status across all your entries.

Frequently Asked Questions

Do I need a separate app-ads.txt for each Android app?

No. One app-ads.txt file on your developer website covers all apps that list that website as their developer URL in Google Play. If all your apps use the same ad networks with the same account IDs, one file handles everything.

What if my app uses only AdMob with no mediation?

You still need app-ads.txt, and it can be as simple as one line: your Google AdMob entry. Even without mediation partners, the file tells DSPs that Google is authorized to sell your inventory.

Can I use the same file for both Android and iOS apps?

Yes, if both platform versions of your app use the same developer website URL and the same ad networks. The app-ads.txt file is platform-agnostic. The difference is where each app store looks for the developer URL, not the file content.

What happens if I don't set up app-ads.txt?

For new AdMob apps, your app won't fully serve ads until app-ads.txt is verified. For existing apps, you'll see increasingly reduced demand as DSPs enforce verification. Your CPMs will be lower than they should be, and some buyers will skip your inventory entirely.

How long does the full setup take?

For a developer who already has a website and ad network accounts set up, the process takes 30-60 minutes. The 24-hour wait for crawler verification is the longest part. The actual file creation and upload takes 10-15 minutes.

Ready to optimize your ads.txt?

Check your domain's supply chain health instantly, free.

Check Your Domain Free