Przejdź do treści
AppFoyer
Zacznij

Poradniki app-ads.txt

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/myapp jest sprawdzana pod example.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. i m. liczą się jako sama domena.
  • Udostępniany wprost. 200 OK, Content-Type: text/plain, bez przekierowania, bez logowania i bez blokady w robots.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.

  1. Utwórz projekt w konsoli Firebase i zainstaluj Firebase CLI.
  2. W pustym folderze uruchom firebase init hosting i zostaw domyślny katalog public.
  3. Umieść app-ads.txt w public/, obok wygenerowanego index.html.
  4. Uruchom firebase deploy --only hosting.
  5. Ustaw https://your-project.web.app jako 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