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

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

Почему AdMob пишет, что ваш app-ads.txt не найден

Как краулеры рекламных сетей находят файл, шесть обычных причин, по которым они его не находят, и как отличить реальную проблему от ещё не прошедшего обхода.

Результат «не найден» почти всегда вызван технической причиной: в странице в магазине нет сайта разработчика, URL ведёт туда, где файла нет, стоит редирект, неверный тип содержимого, ошибка в строке или обход ещё не прошёл — AdMob отводит на это 24 часа. Файлы на поддоменах AppFoyer AdMob проверяет.

1:09
Видео 1:09 · откроется на YouTube

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

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

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

Когда сеть сообщает, что app-ads.txt не найден, почти всегда дело в одной из шести технических причин: в странице в магазине нет сайта разработчика, URL сайта ведёт туда, где файла нет, перед файлом стоит редирект, неверный тип содержимого, ошибка в строке или обход просто ещё не прошёл. Ни одна из них не связана с вашим приложением, аккаунтом или рекламными блоками.

app-ads.txt — стандарт IAB, который позволяет рекламной сети убедиться, что тот, кто продаёт рекламный инвентарь вашего приложения, имеет на это право. Сеть находит файл через URL сайта, указанный на странице вашего приложения в магазине, — поэтому все перечисленные причины касаются этого URL, а не приложения.

Как краулер находит файл

Цепочка состоит из трёх звеньев, и разрыв в любом из них даёт одно и то же сообщение:

  1. Сеть читает URL сайта разработчика со страницы в магазине.
  2. Она запрашивает /app-ads.txt в корне этого домена.
  3. Она ищет строку с названием сети и вашим идентификатором издателя.

То есть файл ищут не через приложение, не через имя пакета и не через аккаунт 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

Мы отдаём файл как простой текст, без редиректа и с заголовками, которых требует спецификация, даём готовые шаблоны для распространённых сетей и проверяем каждую строку по мере ввода. Мы не обещаем, что конкретная сеть его примет, — см. абзац выше.

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