Почему AdMob пишет, что ваш app-ads.txt не найден
Как краулеры рекламных сетей находят файл, шесть обычных причин, по которым они его не находят, и как отличить реальную проблему от ещё не прошедшего обхода.
Результат «не найден» почти всегда вызван технической причиной: в странице в магазине нет сайта разработчика, URL ведёт туда, где файла нет, стоит редирект, неверный тип содержимого, ошибка в строке или обход ещё не прошёл — AdMob отводит на это 24 часа. Файлы на поддоменах AppFoyer AdMob проверяет.
Сделайте это за несколько минут
AppFoyer размещает страницы, о которых это руководство, — политику конфиденциальности, условия использования, поддержку, удаление аккаунта и app-ads.txt — на отдельном поддомене, без собственного домена и сервера. Одно приложение — бесплатно, и ничто из того, что требует магазин, никогда не бывает платным.
Проверено 12 октября 2026 г. Правила магазинов меняются, иногда без предупреждения. Всё ниже ссылается на официальную документацию, и авторитетна именно она, а не эта страница. Если они расходятся, прав магазин. Это руководство переведено с английского; цитаты из документации магазинов приведены в оригинале на английском.
Когда сеть сообщает, что app-ads.txt не найден, почти всегда дело в одной из шести технических
причин: в странице в магазине нет сайта разработчика, URL сайта ведёт туда, где файла нет, перед
файлом стоит редирект, неверный тип содержимого, ошибка в строке или обход просто ещё не прошёл. Ни
одна из них не связана с вашим приложением, аккаунтом или рекламными блоками.
app-ads.txt — стандарт IAB, который позволяет рекламной сети убедиться, что тот, кто продаёт
рекламный инвентарь вашего приложения, имеет на это право. Сеть находит файл через URL сайта,
указанный на странице вашего приложения в магазине, — поэтому все перечисленные причины касаются
этого URL, а не приложения.
Как краулер находит файл
Цепочка состоит из трёх звеньев, и разрыв в любом из них даёт одно и то же сообщение:
- Сеть читает URL сайта разработчика со страницы в магазине.
- Она запрашивает
/app-ads.txtв корне этого домена. - Она ищет строку с названием сети и вашим идентификатором издателя.
То есть файл ищут не через приложение, не через имя пакета и не через аккаунт AdMob. Его ищут через URL сайта, указанный на странице в магазине. Если он неверен, всё остальное не имеет значения.
Шесть обычных причин
На странице в магазине нет URL сайта. Самая частая. Если у страницы нет сайта разработчика, краулеру не с чего начать. В App Store это необязательное поле Marketing URL, а не обязательный Support URL — см. app-ads.txt для iOS-приложений.
URL ведёт туда, где файла нет. На странице указано example.com, а файл лежит на
www.example.com или по пути страницы, а не в корне домена.
Редирект. Спецификация предполагает, что файл отдаётся напрямую. Цепочка редиректов — даже
http → https или с корневого домена на www — частая причина сбоя. Отдавайте файл с кодом 200 по
тому адресу, который указан на странице.
Неверный тип содержимого. Файл должен отдаваться как простой текст. Файл с типом text/html или
хостинг, который оборачивает его в страницу, не будет разобран.
Опечатка в самой строке. Формат строгий —
domain, publisher id, relationship, certification id — и пропущенная запятая или лишний пробел
ломают строку.
Обход просто ещё не прошёл. Сети повторно обходят файлы по собственному расписанию, обычно речь идёт о днях, а не минутах. Файл, загруженный час назад и показанный как отсутствующий, обычно просто ещё рано проверять.
Как проверить самому за десять секунд
curl -i https://your-domain.example/app-ads.txt
Вам нужны 200 OK, Content-Type: text/plain, отсутствие заголовка Location: и ваши строки в теле
ответа. Если с curl всё в порядке, а сеть по-прежнему недовольна, проблема выше по цепочке: URL на
странице в магазине или расписание обхода.
Замечание о поддоменах
Спецификация говорит о корне домена, заявленного на странице в магазине, а у поддомена есть свой
корень. Поэтому отдавать файл с yourapp.example.page/app-ads.txt допустимо по спецификации, если
именно этот адрес заявлен на странице.
AdMob документирует правило, на которое это опирается: его краулер “probe[s] up to one subdomain level from the developer website” (проверяет до одного уровня поддоменов от сайта разработчика), и он называет хостинг платформ, например Firebase Hosting, допустимым местом для файла.
AdMob проверяет файлы на поддоменах AppFoyer. В октябре 2026 года AdMob сообщил “app-ads.txt file found and verified” для приложений в обоих магазинах, у которых сайт разработчика — адрес AppFoyer. Более ранний обход, 23 сентября 2026 года, показал одно из этих же приложений как не найденное; сейчас оно проходит проверку, хотя с нашей стороны ничего не менялось. Если AdMob пишет «not found» для вашего адреса AppFoyer, пройдитесь по причинам выше и дайте обходу его 24 часа. Собственных результатов обхода от других рекламных сетей у нас пока нет.
Что здесь делает AppFoyer
Мы отдаём файл как простой текст, без редиректа и с заголовками, которых требует спецификация, даём готовые шаблоны для распространённых сетей и проверяем каждую строку по мере ввода. Мы не обещаем, что конкретная сеть его примет, — см. абзац выше.
Первоисточники
- Set up app-ads.txt — справка AdMob
- app-ads.txt / ads.txt specification — IAB Tech Lab