Перейти к содержимому
AppFoyer
Начать

Руководства app-ads.txt

Как разместить app-ads.txt, если у вас нет сайта

Что на самом деле нужно краулеру, три способа дать ему хост без создания сайта, ловушки с редиректами в каждом и как убедиться, что всё работает.

Сайт не нужен — нужно лишь имя хоста под вашим контролем, которое отдаёт /app-ads.txt как простой текст с HTTP 200 и без редиректа. Укажите этот адрес в поле сайта разработчика на странице в магазине — в App Store это Marketing URL, — и краулер прочитает файл там. AdMob называет Firebase Hosting допустимым вариантом.

Сделайте это за несколько минут

AppFoyer размещает страницы, о которых это руководство, — политику конфиденциальности, условия использования, поддержку, удаление аккаунта и app-ads.txt — на отдельном поддомене, без собственного домена и сервера. Одно приложение — бесплатно, и ничто из того, что требует магазин, никогда не бывает платным.

Проверено 12 октября 2026 г. Правила магазинов меняются, иногда без предупреждения. Всё ниже ссылается на официальную документацию, и авторитетна именно она, а не эта страница. Если они расходятся, прав магазин. Это руководство переведено с английского; цитаты из документации магазинов приведены в оригинале на английском.

Сайт не нужен — нужно лишь имя хоста под вашим контролем, которое отдаёт /app-ads.txt как простой текст с HTTP 200 и без редиректа. Укажите этот адрес в поле сайта разработчика на странице в магазине — в App Store это Marketing URL, в Google Play это Website в разделе Store listing contact details, — и краулер прочитает файл там.

AdMob говорит об этом прямо: “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.” (Если у вас нет подходящего сайта, на который можно загрузить файл app-ads.txt в корень, вы можете разместить файл app-ads.txt в Firebase Hosting.) Хостинг платформы — ожидаемое решение, а не обходной путь.

Что на самом деле нужно краулеру

Краулер не ищет ваше приложение по имени пакета. Он берёт сайт разработчика со страницы в магазине, оставляет имя хоста и запрашивает /app-ads.txt в его корне. Правила AdMob:

  • Корень, а не путь. Если на странице указано example.com/myapp, проверяется example.com/app-ads.txt.
  • Один уровень поддоменов. Краулер “probe[s] up to one subdomain level from the developer website” (проверяет до одного уровня поддоменов от сайта разработчика). www. и m. считаются самим доменом.
  • Отдаётся без сложностей. 200 OK, Content-Type: text/plain, без редиректа, без входа в аккаунт, без блокировки в robots.txt.

Итак, задача: один адрес, который не будет меняться, отдающий один текстовый файл, правильно, годами. Все три варианта ниже это делают; различаются они тем, сколько вам придётся поддерживать.

Вариант 1: Firebase Hosting

Тот, который называет AdMob. Бесплатный проект Firebase даёт вам имя хоста вида your-project.web.app.

  1. Создайте проект в консоли Firebase и установите Firebase CLI.
  2. В пустой папке выполните firebase init hosting и оставьте каталог public по умолчанию.
  3. Положите ваш app-ads.txt в public/, рядом со сгенерированным index.html.
  4. Выполните firebase deploy --only hosting.
  5. Укажите https://your-project.web.app как сайт разработчика на каждой странице в магазинах.

Ловушка: если позже вы подключите собственный домен и решите перенаправлять адрес web.app на него, адрес на вашей странице в магазине станет отвечать редиректом. Либо оставьте на странице адрес, который отдаёт файл напрямую, либо обновите страницу на новый домен.

Вариант 2: GitHub Pages или другой статический хостинг

Подойдёт любой статический хостинг, если файл окажется в корне заявленного имени хоста.

На GitHub Pages эта деталь важна: сайт проекта находится по адресу username.github.io/repo/, но краулер проверяет только username.github.io/app-ads.txt. Файл должен лежать в сайте пользователя — в репозитории с именем username.github.io, — либо у проекта должен быть собственный домен.

Та же ловушка с редиректом: после настройки собственного домена GitHub Pages перенаправляет адрес github.io на него. Указывайте тот адрес, который отдаёт файл без перехода.

Вариант 3: хостинг страниц для соответствия требованиям магазинов

Если вам также нужны политика конфиденциальности, страница поддержки или URL удаления аккаунта — а приложению с рекламой почти всегда нужна первая, — тот же хост может отдавать их все. Именно это делает AppFoyer: каждое приложение получает собственный поддомен, который отдаёт app-ads.txt как простой текст без редиректа, рядом со страницами, которые требуют магазины. AdMob сообщает “app-ads.txt file found and verified” для приложений в обоих магазинах, у которых сайт разработчика — адрес AppFoyer (проверено в октябре 2026 года). Собственных результатов обхода от других рекламных сетей у нас пока нет.

Проверьте раньше краулера

curl -i https://your-host.example/app-ads.txt

Вам нужны HTTP/2 200 (или HTTP/1.1 200 OK), content-type: text/plain, отсутствие заголовка location: и ваши строки в теле ответа. 301 или 302 здесь — самая частая незаметная причина сбоя.

Затем подождите. AdMob пишет: “it can take up to 24 hours for AdMob to crawl and verify your app-ads.txt files” (AdMob может потребоваться до 24 часов, чтобы обойти и проверить ваши файлы app-ads.txt). Статус находится в Apps → View all apps → app-ads.txt; если через сутки там всё ещё «не найден», руководство по ошибке «не найден» разбирает причины по порядку.

Первоисточники