Одна-единственная ошибка форматирования в файле ads.txt может запустить подавление ставок со стороны DSP и уничтожить значимую долю ваших программатик-доходов — молча, без сообщений об ошибках на сайте. ads.txt — текстовый файл со строгими правилами разбора, и большинство издателей обнаруживают проблемы лишь по необъяснимым падениям CPM в рекламном дашборде. Это руководство охватывает все способы проверки файлов ads.txt, самые важные ошибки и способы поддержания файла в здоровом состоянии на долгий срок.
Что такое ads.txt?
ads.txt расшифровывается как Authorized Digital Sellers (авторизованные цифровые продавцы). Это текстовый файл в корне вашего домена — `yourdomain.com/ads.txt` — который перечисляет все рекламные биржи, сети и платформы со стороны предложения (SSP), уполномоченные продавать рекламный инвентарь вашего сайта. Лаборатория IAB Tech Lab ввела стандарт в 2017 году специально для борьбы с подменой домена: видом рекламного мошенничества, когда злоумышленники продают инвентарь, выдавая его за инвентарь премиального домена издателя, которым не владеют.
Когда платформа спроса (DSP) или рекламодатель размещает программатик-ставку, их система проверяет файл ads.txt издателя перед тратами. Если продающая сущность из запроса ставки отсутствует в файле ads.txt, покупатель либо пропускает ставку полностью, либо применяет значительный дисконт. Отсутствующий файл, неверно настроенная запись или устаревшая запись напрямую ведут к снижению fill rate и падению эффективных CPM.
Формат строки ads.txt
Каждая строка корректного файла ads.txt следует точному четырёхполевому формату. Понимание структуры необходимо для выявления ошибок — большинство проблем валидации возникает из-за строк, отклоняющихся от этого точного шаблона.
# Format: domain, publisher-account-id, account-type, authority-id
# account-type must be DIRECT or RESELLER
# authority-id (TAG-ID) is optional but strongly recommended
google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
appnexus.com, 1234, RESELLER, f5ab79cb980f11d1
openx.com, 540191398, RESELLER, 6a698e965929
# Lines starting with # are comments - ignored by parsers
# [email protected]
# SUBDOMAIN=sub.yourdomain.com- domain: Корневой домен рекламной системы (напр. `google.com`, а не `ads.google.com`).
- publisher-account-id: Ваш ID аккаунта или издателя в этой рекламной сети.
- account-type: Либо `DIRECT` (у вас прямой договор), либо `RESELLER` (продажа через посредника).
- authority-id: Необязательный, но рекомендуемый TAG-ID или Seller Account ID от Trustworthy Accountability Group. Его отсутствие снижает доверие покупателей.
Note
Почему ошибки ads.txt стоят денег
Применение ads.txt в программатик-экосистеме неоднородно — разные DSP обрабатывают невалидные файлы по-разному, из-за чего влияние на доход трудно предсказать и легко пропустить до заметного падения CPM. Понимание того, как покупатели реагируют на ошибки, объясняет, почему регулярная проверка ads.txt того стоит.
Как DSP реагируют на проблемы ads.txt
- Отсутствующий файл (404): Большинство крупных DSP считают отсутствующий ads.txt «непроверенным инвентарём». Одни полностью пропускают ставки; другие ставят с сильно заниженным порогом.
- Неверный формат строки: Строки с неправильным числом полей или недопустимыми значениями типа аккаунта молча пропускаются — запись считается несуществующей.
- Несовпадение DIRECT vs RESELLER: Если сеть продаёт как DIRECT, а ваш файл указывает её как RESELLER (или наоборот), покупатели помечают расхождение и снижают доверие к инвентарю.
- Отсутствует authority-id: Программа TAG Certified Channels требует authority-ids. Покупатели, соблюдающие сертификацию TAG, пропускают записи без них.
- Редирект на главную: Редирект 301 или 302 с /ads.txt на главную страница считается отсутствующим файлом у большинства краулеров.
Покупатели цифровой рекламы могут использовать ads.txt, чтобы определить, авторизована ли издателем возможность покупки цифрового медиа и разрешено ли реселлерам продавать инвентарь издателя.
Google AdSense и предупреждения ads.txt
Google AdSense особенно строго относится к применению ads.txt. Если ваш ID издателя AdSense некорректно указан в файле ads.txt, AdSense показывает предупреждение в дашборде и может сократить показы по одобренным рекламным блокам. Требуемая запись AdSense следует точному формату: `google.com, pub-XXXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0`. Authority-id `f08c47fec0942fa0` — фиксированный TAG-ID Google, он должен выглядеть в точности как написано.
Warning
Как проверить файл ads.txt
Проверка ads.txt требует двух отдельных верификаций: доступности (достижим ли файл по правильному URL?) и корректности (правильно ли отформатирована каждая строка?). Обе проверки быстрые и выполняются менее чем за две минуты с нужными инструментами.
Убедитесь, что файл доступен в корне домена
Откройте браузер в режиме инкогнито и перейдите на `yourdomain.com/ads.txt`. Файл должен загрузиться как чистый текст без HTML-обёртки, без запроса входа и без редиректа. Если вы видите 404 или файл редиректит на главную, ads.txt недоступен для краулеров рекламных платформ — независимо от того, существует ли файл на сервере. Проверьте конфигурацию веб-сервера: многие сайты WordPress случайно перенаправляют все неопределённые пути на главную через правила `.htaccess`.
Вставьте файл в валидатор Ads.txt от Aback Tools
Скопируйте полное содержимое вашего файла ads.txt — из браузера или прямо с сервера — и вставьте в валидатор Ads.txt. Инструмент разбирает каждую строку по спецификации IAB, помечает неверное число полей, недопустимые значения типа аккаунта и дубликаты, и сообщает каждую ошибку с номером строки. Ваши данные обрабатываются полностью в браузере — ничего не загружается на сервер.
Сверьте со списком рекламных партнёров
Сравните проверенные записи с текущими строками ads.txt, предоставляемыми каждой используемой вами рекламной сетью. Большинство сетей публикуют требуемые записи ads.txt в документации для издателей или в дашборде. Сети время от времени обновляют требуемые записи — смена домена или новый authority-id — и издатели пропускают обновление. Расхождение между тем, что перечисляет ваш файл, и тем, что сеть требует сейчас, вызывает то же подавление ставок, что и отсутствующая запись.
Исправьте ошибки и перепроверьте доступность
Исправьте каждую обнаруженную ошибку, заново загрузите файл в корневой каталог сервера и снова откройте `yourdomain.com/ads.txt`, чтобы убедиться, что обновлённый файл в проде. Дайте крупным рекламным платформам 24-48 часов на повторный обход файла, прежде чем ожидать восстановления дохода. Прогоните валидатор второй раз на живом файле, чтобы убедиться, что ошибки загрузки не привнесли новых проблем.
Валидатор Ads.txt
Проверяйте файлы ads.txt на ошибки формата, недопустимые типы аккаунтов, дубликаты и отсутствующие обязательные поля — локально в браузере, без загрузки.
Частые ошибки и их исправление
Большинство проблем ads.txt укладываются в небольшое число повторяющихся паттернов. У каждого — конкретная причина и конкретное решение; когда знаешь, что искать, исправление занимает минуты.
Неверное число полей
Самая частая ошибка — строка с неправильным количеством полей, разделённых запятыми. В строке должно быть ровно три обязательных поля (домен, ID аккаунта, тип аккаунта) и одно необязательное (authority-id). Строки из двух полей (только домен и ID) и из пяти полей (лишние поля от ошибок копипаста) не проходят валидацию. Проверьте каждую строку, помеченную валидатором, — часто проблема в лишней или пропущенной запятой при ручном редактировании.
Недопустимое значение типа аккаунта
Поле типа аккаунта принимает только два значения: `DIRECT` и `RESELLER`. Парсеры без учёта регистра принимают `direct` и `reseller`, но спецификация IAB рекомендует заглавные буквы. Любое другое значение — `DIRECT/RESELLER`, `Partner`, `Network` или пустое — не проходит валидацию, и строка полностью пропускается соответствующими парсерами. Проверьте каждую помеченную строку и приведите значение точно к `DIRECT` или `RESELLER` в соответствии с вашими договорными отношениями с этой сетью.
Файл отдаётся с неверного пути или с неверным Content-Type
Файл ads.txt должен быть доступен строго по адресу `yourdomain.com/ads.txt` — не `/ads.txt.php`, не `/ads-txt`, не в подкаталоге. Сервер должен возвращать статус `200 OK` с `Content-Type` `text/plain`. Некоторые хостинги отдают `.txt`-файлы с `application/octet-stream`, что часть краулеров отклоняет. Используйте валидатор Robots вместе с проверкой ads.txt — если у robots.txt схожие проблемы доступности, вероятно, есть проблема конфигурации сервера, затрагивающая все `.txt`-файлы в корне.
| Ошибка | Что сообщает валидатор | Исправление |
|---|---|---|
| Неверное число полей | В строке 2 поля, ожидалось 3-4 | Добавьте отсутствующий домен, ID или тип |
| Недопустимый тип аккаунта | "partner" — не DIRECT и не RESELLER | Измените на DIRECT или RESELLER |
| Дубликат записи | Дубликат строки 12 | Удалите дублирующую строку |
| Редирект / 404 | Файл недоступен по /ads.txt | Исправьте роутинг сервера или .htaccess |
| Скрытые Unicode-символы | Неожиданный символ в позиции 8 | Перепечатайте строку — не копируйте из PDF |
| Неверная запись поддомена | Используйте директиву SUBDOMAIN= | Добавьте комментарий SUBDOMAIN=sub.domain.com |
| Отсутствует TAG authority-id | Authority-id рекомендуется | Добавьте TAG-ID из документации сети |
Скрытые символы и проблемы кодировки
Особенно коварная проблема ads.txt — строки, которые выглядят корректно, но не проходят разбор из-за скрытых Unicode-символов — неразрывных пробелов, пробелов нулевой ширины или типографских кавычек, — попавших при копировании из PDF, документа Word или письма с форматированием. Большинство текстовых редакторов эти символы не показывают. Если строка не проходит валидацию без очевидной ошибки формата, перепечатайте её вручную, а не копируйте. Инструмент ремонта Unicode и кодировок может удалить невидимые Unicode-символы из вставленного текста до помещения его в файл ads.txt.
app-ads.txt и sellers.json
ads.txt создавался для веб-издателей. Программатик-экосистема расширила стандарт двумя связанными спецификациями: app-ads.txt для инвентаря мобильных приложений и sellers.json для прозрачности цепочки поставок. Понимание всех трёх форматов помогает построить полную картину авторизации.
app-ads.txt для издателей мобильных приложений
Разработчики мобильных приложений используют app-ads.txt вместо ads.txt. Формат файла идентичен — та же четырёхполевая структура строки, те же типы аккаунтов DIRECT/RESELLER, то же поле authority-id. Различие в обнаружении: для приложений рекламные платформы находят URL сайта разработчика в карточке App Store или Google Play и проверяют наличие app-ads.txt в корне этого домена. app-ads.txt размещается на сайте разработчика, а не в самом приложении. Используйте валидатор App-ads.txt для проверки авторизации инвентаря мобильных приложений по тем же правилам.
sellers.json — дополнение цепочки поставок
sellers.json — дополнение к ads.txt с другой стороны: рекламные сети и SSP публикуют файл sellers.json на своём домене, перечисляя всех представляемых издателей (продавцов). Покупатель может сверить вашу запись RESELLER из ads.txt с sellers.json SSP, чтобы убедиться в легитимности цепочки поставок. Хотя издатель sellers.json не создаёт, понимание этого объясняет, почему корректные authority-ids в ads.txt важны — они используются для сопоставления ваших записей с записями sellers.json.
Note
Мониторинг состояния ads.txt
Однократной проверки ads.txt недостаточно — записи сетей меняются, подключаются новые партнёры, а доступность файла может сломаться после обновлений сервера или CMS. Лёгкая рутина мониторинга предотвращает тихие потери дохода между ручными аудитами.
Предупреждения в дашборде Google AdSense
Дашборд AdSense показывает баннер предупреждения ads.txt, если вашего ID издателя нет в файле ads.txt или файл недоступен. Проверяйте дашборд AdSense после любой миграции сервера, обновления CMS или изменения `.htaccess` — это три самых частых события, ломающие доступность ads.txt незаметно для издателя. Предупреждение появляется в разделе «Аккаунт» настроек AdSense.
Уведомления программатик-партнёров
Большинство крупных SSP и рекламных сетей отправляют email-уведомления при изменении требуемых записей ads.txt. Подпишитесь на уведомления об обновлениях в портале издателя каждого партнёра, если это доступно. Когда партнёр меняет домен или authority-id, обычно даётся окно миграции 30-90 дней, прежде чем старые записи перестанут приниматься — но вовремя заметит изменение лишь тот издатель, который следит.
Процесс технического аудита
Включите валидацию ads.txt в квартальный технический SEO-аудит наряду с robots.txt, проверкой sitemap и canonical-тегов. Используйте объяснитель конфликтов правил Robots.txt, чтобы убедиться, что ни одно правило robots.txt случайно не блокирует краулеров рекламных платформ, и валидатор Sitemap для проверки здоровья sitemap в той же сессии. Эти файлы лежат на одном уровне корня сервера и часто страдают от одних и тех же ошибок конфигурации.
Tip
Лучшие практики ads.txt
Следование этим практикам сохраняет файл ads.txt точным, доступным и действенным — максимизирует право на ставки и защищает инвентарь от несанкционированных реселлеров.
Держите файл лаконичным и актуальным
Удаляйте записи рекламных сетей, с которыми больше не работаете. Разросшийся ads.txt с десятками неактивных записей напрямую не вредит доходу, но увеличивает площадь для ошибок и затрудняет аудит файла. Расставаясь с сетью, удаляйте её записи одновременно со снятием её рекламных тегов со страниц — считайте оба шага частью одного процесса расставания.
Всегда используйте authority-ids, когда они доступны
TAG authority-id (также TAG-ID или Seller Account ID) формально опционален в спецификации ads.txt, но крупные DSP предпочитают записи с ним. Он позволяет покупателям проверять всю цепочку поставок от издателя до биржи через сверку sellers.json. Каждая крупная сеть публикует свой authority-id в документации для издателей — включайте его в каждую запись, где он доступен.
- Одна запись в строке: Никогда не объединяйте несколько сетей в одной строке — каждое авторизованное отношение продавца получает свою строку.
- Валидируйте перед каждой загрузкой: Запускайте валидатор Ads.txt на файле перед загрузкой, чтобы поймать ошибки, внесённые при редактировании.
- Кодировка UTF-8 без BOM: Сохраняйте файл как чистый UTF-8. BOM (Byte Order Mark) в начале файла может сломать парсинг у некоторых краулеров рекламных платформ.
- Без пробелов в конце строки: Многие редакторы добавляют невидимые завершающие пробелы. В строгих валидаторах они вызывают построчные сбои разбора.
- Версионный контроль ads.txt: Держите ads.txt в репозитории системы контроля версий сайта. История git позволяет точно установить, когда запись была добавлена или удалена, если доход неожиданно упал.
Валидатор App-ads.txt
Проверяйте файлы app-ads.txt для рекламного инвентаря мобильных приложений — те же правила формата, что и ads.txt, оптимизировано под контекст издателя мобильных приложений.
Key takeaways
- ads.txt перечисляет всех авторизованных продавцов вашего рекламного инвентаря — отсутствующие или недопустимые записи заставляют DSP пропускать ставки или снижать ваши CPM.
- Сначала проверьте доступность: откройте `yourdomain.com/ads.txt` и убедитесь, что файл загружается как чистый текст со статусом 200, без редиректа и HTML-обёртки.
- Используйте валидатор Ads.txt, чтобы проверить каждую строку на ошибки формата, недопустимые типы аккаунтов и дубликаты — вся обработка происходит в вашем браузере.
- Пять самых частых ошибок: неверное число полей, недопустимые значения типа аккаунта, файл на неверном пути, скрытые Unicode-символы и отсутствующие authority-ids.
- Google AdSense требует точную запись `google.com, pub-XXXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0` — authority-id `f08c47fec0942fa0` фиксирован и должен совпадать в точности.
- Для мобильных приложений используйте app-ads.txt того же формата, размещённый в корне сайта разработчика, обнаруживаемый по карточке в сторе.
- Перепроверяйте ads.txt после каждой миграции сервера, обновления CMS или смены хостинга — именно эти события чаще всего тихо ломают доступность файла.