ibiza
CPM · CTR …
/

ads.txt и app-ads.txt: формат строки и где разместить файл

≈ 3 мин чтения · обновлено

Кто вправе продавать рекламу на сайте или в приложении, владелец сообщает публично — текстовым файлом. Для сайтов это ads.txt (Authorized Digital Sellers) в корне домена, для приложений — app-ads.txt на сайте разработчика. Каждая строка называет рекламную систему и номер аккаунта в ней. Покупатель сверяет с файлом пару «система + аккаунт» из запроса ставки и отсеивает продажи без разрешения.

Из чего состоит строка

# app-ads.txt разработчика games.example
ssp.example, 4815162342, DIRECT, a1b2c3d4e5f6
exchange.example, pub-0099, RESELLER
CONTACT=adops@games.example
OWNERDOMAIN=games.example
Поле Что содержит
1 Домен рекламной системы — тот, к которому подключены покупатели
2 ID аккаунта продавца в этой системе
3 Тип связи: DIRECT или RESELLER
4 Необязательный ID системы в органе сертификации, сейчас это TAG

Строки вида ИМЯ=значение — переменные. CONTACT дает контакт владельца файла, SUBDOMAIN отсылает к файлу на поддомене. Версия 1.1 (2022) добавила OWNERDOMAIN — домен компании-владельца — и MANAGERDOMAIN — домен основного партнера по монетизации.

Значение поля 2 должно совпадать с seller_id в файле sellers.json этой системы и с sid ее узла в цепочке schain. На этом совпадении держится вся проверка.

Куда положить файл

Сайт. Адрес вида https://example.ru/ads.txt на корневом домене, ответ в формате text/plain. Редиректы внутри того же корневого домена допустимы, а на чужой домен спецификация разрешает лишь один переход — чтобы файл мог храниться у подрядчика.

Приложение. Путь к файлу краулер строит сам:

  1. Из запроса или каталога берет ссылку на страницу приложения в магазине (app.storeurl) или bundle ID.
  2. Со страницы магазина считывает сайт разработчика.
  3. Отбрасывает у хоста префиксы www. и m. и дописывает /app-ads.txt.

Если в карточке указан https://www.games.example/about, файл будут искать по адресу https://games.example/app-ads.txt. Если сайт разработчика живет на поддомене, сначала проверяют поддомен, затем корневой домен.

Зачем это нужно

Без такого файла мошенник может выдать дешевый трафик за известное приложение: подставить чужой bundle в запрос — популярная схема рекламного фрода. Переписать чужой app-ads.txt он не может, поэтому строки, которых нет в файле владельца, выдают подмену. Продавцу файл возвращает спрос: часть DSP не ставит на неподтвержденный инвентарь вовсе.

Частые ошибки

  • Новый партнер без строки. Медиацию расширили, а app-ads.txt не обновили — запросы идут, ставок нет. Сверка файла входит в чек-лист монетизации.
  • Не тот домен в поле 1. Корпоративный сайт компании вместо домена рекламной системы.
  • Файл не на том сайте. Лежит на лендинге, а в карточке магазина указан другой адрес.
  • HTML вместо текста. Сайт отдает страницу-заглушку с кодом 200, и краулер видит мусор.

Проверка ads.txt в Ibiza

Биржа Ibiza периодически скачивает ads.txt подключенных сайтов и ищет строку со своим доменом и seller_id площадки; по результату площадка получает статус «подтверждена» или «не подтверждена». Для приложений автоматической проверки app-ads.txt пока нет, их статус остается «не проверено».

Частые вопросы

Где разместить app-ads.txt, если у приложения нет сайта?

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

Чем DIRECT отличается от RESELLER?

DIRECT — аккаунт в рекламной системе принадлежит владельцу площадки, и он сам им управляет. RESELLER — владелец разрешил посреднику продавать свой инвентарь через аккаунт посредника.

Что будет, если SSP нет в моем app-ads.txt?

Покупатели, проверяющие авторизацию, сочтут такие запросы неразрешенной продажей и многие не будут на них ставить. В OpenRTB для этого случая предусмотрен код отказа 12.