How to host app-ads.txt without a website (2026)
July 21, 2026

If you run ads in your app through AdMob, you've probably hit this wall: AdMob keeps telling you your app-ads.txt isn't verified, and the fix requires a "developer website" you may not have. Here's why it's asking, the workaround Google itself suggests, and a faster route that leaves you with an actual app site instead of a bare file.
Why AdMob wants app-ads.txt
app-ads.txt is an IAB standard that lists who is authorised to sell your app's ad inventory. Ad networks crawl it to make sure nobody is spoofing your app and skimming ad spend that should be yours. Until yours is found and verified, your inventory looks less trustworthy to advertisers — which quietly costs you fill rate and revenue.
The rule that trips people up is where the file has to live.
The catch: it must sit at your domain root
AdMob doesn't look just anywhere. It looks at the root of the developer website listed on your store listing — for example yourdomain.com/app-ads.txt, not yourdomain.com/some/path/app-ads.txt. So you need two things:
- A website whose root you can put a file on.
- That same domain set as your developer website in App Store Connect or Google Play.
If you're an indie developer who never set up a site, that's a real blocker. Google's own help docs acknowledge it and point you at a workaround.
Option 1: Firebase Hosting (Google's suggested workaround)
Google recommends Firebase Hosting when you don't have a suitable site. Roughly:
- Create a Firebase project and install the CLI (
npm i -g firebase-tools). firebase init hostingand pick your project.- Drop your
app-ads.txtinto thepublic/folder. firebase deploy.
Your file is now at https://your-project.web.app/app-ads.txt. Set that domain as your developer website in your store listing, and AdMob will find it on its next crawl.
It works — but notice what you end up with: a bare hosting URL with no actual page on it. Anyone who clicks your "developer website" link lands on nothing, and you still need a privacy policy hosted somewhere else, which App Review also requires.
Option 2: other free static hosts
GitHub Pages, Netlify and Cloudflare Pages all do the same job — host a static file at a domain root for free. Same trade-off as Firebase: you get a file served, not a website. Fine if a URL is all you need; less fine if you'd rather the domain you list actually represents your app.
Option 3: serve it from a real app site
The other way is to host app-ads.txt on an actual landing page for your app — so the developer website you list is a real site, and the file is handled for you.
That's what Storestand does: you paste your App Store link, it builds your app's site, and it serves app-ads.txt at your domain root — the exact place AdMob crawls — keeping it in sync whenever you edit your authorised-sellers list. In the same pass you get the privacy policy and terms App Review asks for, hosted at real URLs. One domain covers every requirement instead of three half-solutions.
Whichever route you pick, the mechanics of verification are the same.
Getting it verified
- Put the file at the root:
https://yourdomain.com/app-ads.txt. Double-check there's no redirect or subpath. - Set that domain as your developer website in App Store Connect (App Information) or Google Play (Store listing). AdMob establishes ownership through this link.
- Wait for the crawl. After the website is listed and the file is live, AdMob usually detects changes within about a day.
- If it still shows unverified after a while, the usual culprits are: the file isn't at the exact root, the listed domain doesn't match, or the store listing update hasn't propagated yet.
The bottom line
You don't need a full website to satisfy AdMob — you need a file at a domain root and that domain on your store listing. Firebase Hosting is the free, fiddly way to get there. Serving it from a purpose-built app site is the faster way, and it solves the privacy-policy and landing-page requirements at the same time.
Storestand