Hosting app-ads.txt, gdy nie masz witryny
Czego naprawdę potrzebuje crawler, trzy sposoby na host bez budowania witryny, pułapki z przekierowaniami w każdym z nich i jak sprawdzić, że działa.
Nie potrzebujesz witryny, tylko nazwy hosta, którą kontrolujesz i która udostępnia /app-ads.txt jako zwykły tekst z kodem HTTP 200 i bez przekierowania. Wpisz ten adres w polu witryny dewelopera na stronie aplikacji w sklepie — w App Store to Marketing URL — a crawler odczyta tam plik. AdMob wymienia Firebase Hosting jako dopuszczalne rozwiązanie.
Zrób to zamiast tego w kilka minut
AppFoyer hostuje strony, o których jest ten poradnik — politykę prywatności, regulamin, wsparcie, usuwanie konta i app-ads.txt — na ich własnej subdomenie, bez Twojej własnej domeny i serwera. Jedna aplikacja jest za darmo, a nic, czego wymaga sklep, nigdy nie jest płatne.
Sprawdzono 12 października 2026. Zasady sklepów się zmieniają, czasem bez zapowiedzi. Wszystko poniżej linkuje do oficjalnej dokumentacji i to ona — nie ta strona — jest rozstrzygająca. Jeśli się różnią, rację ma sklep. Ten poradnik jest przetłumaczony z angielskiego; cytaty z dokumentacji sklepów pozostawiono w oryginalnym brzmieniu angielskim.
Nie potrzebujesz witryny, tylko nazwy hosta, którą kontrolujesz i która udostępnia /app-ads.txt
jako zwykły tekst z kodem HTTP 200 i bez przekierowania. Wpisz ten adres w polu witryny
dewelopera na stronie aplikacji w sklepie — w App Store to Marketing URL, w Google Play pole Website
w sekcji Store listing contact details — a crawler odczyta tam plik.
AdMob mówi to wprost: „If you don’t have a suitable website that allows the uploading of an app-ads.txt file at the root level, you can use Firebase Hosting to host your app-ads.txt file.” (Jeśli nie masz odpowiedniej witryny, która pozwala wgrać plik app-ads.txt na poziomie głównym, możesz hostować swój plik app-ads.txt w Firebase Hosting.) Hosting platformowy to oczekiwana odpowiedź, a nie obejście.
Czego naprawdę potrzebuje crawler
Crawler nie szuka Twojej aplikacji po nazwie pakietu. Bierze witrynę dewelopera ze strony aplikacji
w sklepie, zostawia nazwę hosta i pobiera /app-ads.txt z jej katalogu głównego. Reguły AdMob:
- Katalog główny, nie ścieżka. Strona w sklepie wskazująca
example.com/myappjest sprawdzana podexample.com/app-ads.txt. - Jeden poziom subdomeny. Crawler „probe[s] up to one subdomain level from the developer
website” (sprawdza do jednego poziomu subdomeny od witryny dewelopera).
www.im.liczą się jako sama domena. - Udostępniany wprost.
200 OK,Content-Type: text/plain, bez przekierowania, bez logowania i bez blokady wrobots.txt.
Zadanie wygląda więc tak: jeden adres, który się nie zmieni, udostępniający poprawnie jeden plik tekstowy, przez lata. Wszystkie trzy opcje poniżej to zapewniają; różnią się tym, ile musisz utrzymywać.
Opcja 1: Firebase Hosting
Ta, którą wymienia AdMob. Darmowy projekt Firebase daje Ci nazwę hosta w rodzaju
your-project.web.app.
- Utwórz projekt w konsoli Firebase i zainstaluj Firebase CLI.
- W pustym folderze uruchom
firebase init hostingi zostaw domyślny katalogpublic. - Umieść
app-ads.txtwpublic/, obok wygenerowanegoindex.html. - Uruchom
firebase deploy --only hosting. - Ustaw
https://your-project.web.appjako witrynę dewelopera na każdej stronie aplikacji w sklepie.
Pułapka: jeśli później podłączysz własną domenę i wybierzesz przekierowanie adresu web.app na
nią, adres ze strony w sklepie zacznie odpowiadać przekierowaniem. Albo zostaw na stronie w sklepie
adres, który udostępnia plik bezpośrednio, albo zmień go na nową domenę.
Opcja 2: GitHub Pages lub inny hosting statyczny
Każdy hosting statyczny się sprawdzi, jeśli plik trafi do katalogu głównego zadeklarowanej nazwy hosta.
W GitHub Pages ten szczegół ma znaczenie: witryna projektu znajduje się pod
username.github.io/repo/, ale crawler sprawdza tylko username.github.io/app-ads.txt. Plik musi
być w witrynie użytkownika — repozytorium o nazwie username.github.io — albo projekt musi mieć
własną domenę.
Obowiązuje ta sama pułapka z przekierowaniem: po skonfigurowaniu własnej domeny GitHub Pages
przekierowuje na nią adres github.io. Zadeklaruj ten adres, który udostępnia plik bez
dodatkowego skoku.
Opcja 3: hostowana strona zgodności
Jeśli potrzebujesz też polityki prywatności, strony wsparcia albo adresu do usuwania konta —
a aplikacja z reklamami prawie zawsze potrzebuje tego pierwszego — ten sam host może udostępniać je
wszystkie. Tak działa AppFoyer: każda aplikacja dostaje własną subdomenę, która udostępnia
app-ads.txt jako zwykły tekst bez przekierowania, obok stron wymaganych przez sklepy. AdMob zgłasza
„app-ads.txt file found and verified” dla aplikacji z obu sklepów, których witryną dewelopera jest
adres AppFoyer (sprawdzone w październiku 2026). Nie mamy jeszcze własnych wyników pobrania z innych
sieci reklamowych.
Sprawdź, zanim zrobi to crawler
curl -i https://your-host.example/app-ads.txt
Szukasz HTTP/2 200 (lub HTTP/1.1 200 OK), content-type: text/plain, braku nagłówka
location: i swoich wierszy w treści. 301 albo 302 w tym miejscu to najczęstszy niewidoczny
błąd.
Potem czekaj. AdMob podaje: „it can take up to 24 hours for AdMob to crawl and verify your app-ads.txt files” (pobranie i weryfikacja plików app-ads.txt przez AdMob może potrwać do 24 godzin). Status znajdziesz w Apps → View all apps → app-ads.txt; jeśli po dobie nadal widnieje „nie znaleziono”, przewodnik o błędzie not found omawia przyczyny po kolei.
Źródła oficjalne
- Set up app-ads.txt — Pomoc AdMob. Zdanie o Firebase Hosting, reguły dotyczące katalogu głównego i subdomen oraz limit 24 godzin pochodzą z tej strony.
- Understand app-ads.txt file statuses — Pomoc AdMob. Gdzie znaleźć status i co oznacza każdy z nich.
- ads.txt / app-ads.txt specification — IAB Tech Lab.