нажмите, чтобы пропустить
ACCESS FILE · 02ГЛ. 00/07~15 МИН
БОТ-ТРАФИК
30%
НАГЛЯДНО · НЕ СТАТИСТИКА

Файл 02 · Директ

Боты вЯндекс.Директе

Как защитить форму и обучить рекламу на реальных клиентов

7 глав~15 мин чтениякалькулятор и демо внутри
Начать

Гайд состоит из двух частей. Первая рассчитана на десять минут: проблема, самопроверка и список действий. Вторая объясняет, как всё устроено, и содержит инструкции, код и таблицы.

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


Часть 1. Быстрый старт

В чём проблема

Автостратегии Директа обучаются на тех конверсиях, которые вы им передали. Если конверсией считается заявка из формы, а часть заявок оставляют боты, стратегия начинает искать посетителей, похожих на этих ботов. Заявок становится больше, клиентов нет, а цена лида при этом может выглядеть отлично.

Автор рилса оценивает долю бот-трафика в Директе в 30% (оценка). Один из практиков проверил около миллиона посетителей собственным скриптом и получил 35% ботов при 10% ошибочных срабатываний на реальных людях (практики). Эти числа нельзя переносить на свой проект без проверки, поэтому ниже есть тест.

Три слоя защиты

Три слоя защитыРекламаДирект приводитпосетителейЩИТСайт и форма:не пустить ботаФИЛЬТРМетрика:отличить ботаУЧИТЕЛЬЦель для Директа:на чём учитьсяДирект учится на той конверсии, которую вы ему передали

Защита состоит из трёх слоёв. Щит не пускает бота в форму. Фильтр отличает бота от человека в данных Метрики. Учитель определяет, на какой конверсии учится Директ. Большинство ограничивается щитом, а самый сильный эффект даёт третий слой.

Самопроверка за десять минут

Откройте Метрику и CRM, отметьте то, что у вас совпадает, и нажмите кнопку.

Что сделать

Отмечайте выполненное: полоса бот-трафика вверху будет падать.

Сегодня (около часа)

На этой неделе

В течение месяца

Чего не делать

  • Ставить капчу без проверки токена на сервере. Бот её обойдёт, а живой клиент уйдёт.
  • Учить стратегию на целях «время на сайте», «скролл», «открытие формы». Практики видели, что они увеличивают долю некачественных конверсий.
  • Добавлять новые цели в работающую кампанию без необходимости. Обучение при этом начинается заново (справка).
  • Радоваться низкой цене лида, пока не проверили, что лиды настоящие.

Часть 2. Подробно

01

Как боты портят обучение

Как бот ломает обучение и как это остановитьЦель «заявка из формы»Директ ищетконверсииБот отправляетформуКонверсиязасчитанаДирект закупаетпохожихБотов становится больше, клиентов нетЦель «квалифицированная заявка»Директ ищетконверсииБот не проходитпроверкуКонверсии толькоот людейДирект закупаетпохожих

Цепочка выглядит так. Стратегия оптимизирует конверсию «заявка». Бот отправляет форму, конверсия засчитывается. Алгоритм делает вывод, что посетители с такими признаками хорошо конвертируются, и закупает похожих. Бюджет уходит на трафик, который выглядит как люди, а клиентов в CRM не прибавляется.

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

Что делает сам Яндекс. Антифрод Директа отсеивает фродовый трафик на трёх уровнях: до показа объявления, в момент клика (при подозрении может появиться капча) и после перехода на сайт. Отфильтрованные события не участвуют в обучении кампании и не списываются, их объём виден в Мастере отчётов, строка «Недействительные клики и конверсии» (справка).

Чего Яндекс не делает. Антифрод очищает статистику Директа и не знает, что произошло с заявкой в вашей CRM. Бота, который заполнил форму чужими настоящими данными, он может не отличить (практики).

02

Диагностика в Метрике

Один признак ничего не доказывает. Действовать стоит, когда совпали минимум три.

Шаг 0. Фильтр роботов. В настройках счётчика есть опция «Фильтровать роботов по поведению». Она убирает из данных визиты роботов, определённых по поведению, начиная с момента включения. Уже собранные данные не пересчитываются. Перед включением сохраните отчёты, чтобы было с чем сравнивать. Отчёт «Роботы» (Отчёты, Мониторинг, Роботы) остаётся доступным (справка).

Шаг 1. Сравнение сегментов. Создайте два сегмента: проверяемый источник и весь остальной трафик (или органика). Сравните их по показателям из таблицы. Ориентиры взяты из методики ppc.world и зависят от ниши (практики).

Шпаргалка диагностики в МетрикеПоказательНормаТревогаРоботностьдо 10%выше 10%, скачки по часамМобильные визиты60–80%95%+ (или ПК больше 50%)Браузеры вне тройкидо 5% в суммебольше 5%, редкие браузерыРегионы вне целидо 10%заметная доля чужих регионовВизитов у одного человека—50+ в месяц и менее минутыВремя при нулевых микроцеляхрастёт со скролламимного времени, нет скролловЗаявки «не оставлял»единицыдоля растёт по каналуДействуйте, когда совпали минимум три признака. Ориентиры зависят от ниши.
Источники, сводкамакет, цифры условные
ИсточникВизитыОтказыВремяМобильныеРоботность
Директ, поиск «Ремонт»4 21031%2:1464%4%
Директ, РСЯ «Квиз»3 870
Органика6 12038%2:4161%3%
Директ, бренд1 04024%3:0559%2%

Нажмите на красные ячейки, чтобы увидеть, что в них не так.

Дополнительные проверки (практики).

  • В Вебвизоре отфильтруйте визиты с нулевой длительностью. Боты нередко приходят с равными интервалами, и такой ритм заметен.
  • Сверьте сегмент из Метрики с логами сервера. Известны случаи, когда в логах находили ботов с поддельным User-Agent, которых Метрика не показывала.
  • Посчитайте в CRM долю заявок, по которым клиент говорит, что ничего не оставлял. Если по каналу она растёт, это самый прямой сигнал.

Нулевое время на сайте само по себе не признак бота: бывают незакрытые вкладки. Смотрите на сочетание признаков.

03

Защита формы

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

Способ Сложность Против каких ботов Риск потерять живых клиентов
Нестандартное поле низкая простые низкий
Ловушка и таймер низкая простые низкий
Слайдер средняя простые, частично сложные средний
Квиз или чат-бот высокая простые и средние средний
Невидимая капча средняя простые и средние низкий
Проверка и скоринг на сервере высокая разные зависит от настройки
Защита кликов по контактам средняя боты, кликающие мессенджеры низкий
Как выглядит форма с ловушкой и слайдеромИмяТелефонКакой сегодня день недели?→Проведите, чтобы отправитьwebsite (скрытое поле)Человек его не видит.Заполнено, значит бот.Таймер: отправка быстрее3–5 секунд, значит бот1. Нестандартное поле2. Ловушка3. Слайдер
Попробуйте самиживая демонстрация защиты формы
→
Проведите, чтобы отправить
> ожидание отправки…

Нестандартное поле (практики). Добавьте вопрос, который автомат не поймёт: текущий день недели или простую арифметику. В одном из проектов после вопроса про день недели бот-заявки перестали поступать. Если вопрос связан с делом, он заодно улучшает реальные заявки. Например, «длина, ширина, высота помещения» останавливает бота и даёт менеджеру цифры.

Ловушка и таймер (практики). Скрытое поле, которое человек не видит, а бот заполняет. Таймер измеряет время от загрузки формы до отправки: если оно меньше трёх-пяти секунд, форму отправил не человек. Поле называйте нейтрально (website, а не honeypot), скрывайте его без ущерба для доступности (tabindex="-1", aria-hidden) и периодически меняйте имя. Готовый код в приложении А.

Слайдер (практики). Вместо кнопки «Отправить» ползунок «Проведите, чтобы подтвердить». Простые боты не умеют проводить. Продвинутый бот простой слайдер обойдёт, поэтому серьёзные решения проверяют траекторию, скорость и характер движения: программный клик, рывок или движение в неверную сторону помечает визит как бот и блокирует отправку. Проверку нужно дублировать на сервере.

Квиз или чат-бот (практики, оценка). Многошаговая форма с нестандартными вопросами сложнее для бота и отсеивает неподходящие заявки. Участник встречи директологов из строительной ниши сообщил, что обычный квиз даёт 60–70% целевых обращений, а воронка «реклама, одноэкранный лендинг, чат-бот, мини-квиз, заявка» около 95%. Это данные одного проекта. Проверяйте на части трафика.

Невидимая капча (справка Yandex Cloud). В режиме невидимой капчи SmartCaptcha кнопки «Я не робот» нет, задание показывается только подозрительным пользователям. Токен обязательно проверять на сервере: сервер отправляет POST-запрос на https://smartcaptcha.cloud.yandex.ru/validate с параметрами secret, token и ip и принимает заявку только после положительного ответа. Если проверка пропускает всё подряд, проверьте, не включён ли «ограниченный режим» сервиса: в нём на все запросы валидации приходит ответ ok.

Проверка и скоринг на сервере (практики). Складывайте сигналы: заполнена ловушка, слишком быстрая отправка, подозрительное устройство, повторяющиеся данные, много заявок с одного IP. Три сигнала и больше означают «вероятно бот». Удобный вариант: подозрительную заявку не блокировать, а не засчитывать как конверсию в Метрике. Если сработало ложно, живой клиент всё равно останется в CRM, а Директ не научится на боте.

Защита кликов по контактам (практики). Боты кликают иконки мессенджеров и номер телефона, и в Метрику уходит конверсия. Не отправляйте цель, пока клик не подтверждён слайдером или проверкой.

Минимальный набор. Для небольшого бюджета достаточно нестандартного поля, ловушки и таймера: это бесплатно и делается за вечер. Для среднего добавьте слайдер и невидимую капчу с проверкой на сервере. Для крупного бюджета подключите скоринг на сервере, составную цель (раздел 4) и тест квиза или чат-бота на части трафика.

04

Обучение Директа на реальных клиентах

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

Лесенка целей: чем выше ступень, тем меньше влияние ботов0Заявкаиз формыбот влияет сильно1Человеки заявкабот влияет слабее2Квалифицированнаязаявкабот почти не влияет3Дозвон, сделка,оплатабот не влияетПоднимайтесь по ступеням, когда по цели набирается около 10 конверсий в неделю

Практики поднимаются по этим ступеням по мере накопления данных. Директу нужно около десяти конверсий в неделю на кампанию. Если не набирается, кампания может перейти в статус «Обучение остановлено». Ориентир по бюджету: недельный бюджет примерно равен цене конверсии, умноженной на десять (справка, практики).

Рабочий порядок (практики). На старте запустить рекламу на пакетной стратегии кликов, пока данных нет. Параллельно настроить передачу «квалифицированной заявки» в Метрику. Когда наберётся около десяти таких конверсий в неделю, переключить кампанию на цель «квалифицированная заявка», пропустив цель «заявка».

Офлайн-конверсии из CRM в Метрику (справка)

Путь офлайн-конверсии: от формы до обучения ДиректаСайтgetClientID, yclidФормаClientID в скрытомполеCRMзаявка + ClientIDв сделкеМенеджерстатус сделки:квалифицированЗагрузкаCSV, API иликоннекторМетрикацельqualified_leadДиректучится на цели,~10 в неделюОкно привязки: 21 день от визита до загрузки конверсии
  1. Сохраняйте ClientID Метрики в каждой заявке и в карточке сделки в CRM. Для привязки к кликам Директа сохраняйте и yclid, который приходит в URL объявления. Код в приложении А.
  2. В Метрике создайте цель типа «Целевое событие», например qualified_lead.
  3. В настройках счётчика на вкладке «Загрузка данных» включите «Учёт офлайн-конверсий».
  4. Передавайте конверсию, когда менеджер меняет статус сделки. Способы: CSV вручную (годится для проверки), API Метрики, готовый коннектор CRM или коллтрекинга, платформа интеграций. В рилсе показана связка «amoCRM: смена статуса сделки, Метрика: офлайн-конверсия».
  5. Учитывайте окно привязки: 21 день. Конверсия привязывается к визиту, если с визита прошло не больше 21 дня и визит был раньше конверсии. Если сделка идёт дольше, передавайте промежуточный этап, например «квалифицированный лид».
  6. Проверьте отчёт: цель должна набирать данные. Самая частая ошибка называется «визит не найден»: идентификатор неверный или конверсия датирована раньше визита.

Шаблон файла. Точные названия столбцов сверьте с шаблоном на странице загрузки.

ClientId,Target,DateTime
1234567890123456789,qualified_lead,2026-11-10 14:35:00

Пример (ppc.world). Клиника в узкой нише передала в Метрику офлайн-конверсии (оплаченные приёмы и обращения из мессенджеров) через коннектор коллтрекинга. Конверсий стало 15 в неделю вместо 5, кампании перестали выпадать из обучения.

Составная цель «Человек и заявка» (практики, справка)

Составная цель «Человек и заявка»Шаг 1Определён человекШаг 2Отправлена заявкаЦель достигнутаДирект учитсяОпределён ботцель «бот»Заявка отправленаботомЦель не достигнутаобучения нетДо пяти шагов в цепочке. Выбирайте шаги так, чтобы следующий был невозможен без предыдущего.

Механика обсуждалась на встрече директологов. Скрипт на сайте определяет, человек посетитель или бот (поведение, ловушки, отпечаток браузера). Если это человек, в Метрику уходит цель «Определён человек». Если бот, уходит отдельная цель «бот». В Метрике создаётся составная цель из шагов: определён человек, отправлена заявка, конверсия. Если заявку отправил посетитель, помеченный как бот, цель не достигается. Директ учится только на заявках, прошедших проверку.

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

Какие цели не брать для обучения (практики)

«Клик по кнопке», «переход в мессенджер», «время на сайте», «открытие формы». В отдельных проектах оптимизация на них увеличивала долю некачественных конверсий. Лучше показывали себя «отправка формы», «страница благодарности» и квалифицированная заявка.

Несколько целей и стратегии (справка)

В единой перфоманс-кампании в стратегии «Максимум конверсий» можно выбрать несколько целей, например заявку, звонок и обращение в чат. При добавлении новой цели в работающую кампанию обучение начинается заново. Названия стратегий менялись («Оптимизация конверсий» объединили с «Целевой долей рекламных расходов» в «Максимум конверсий»), поэтому сверяйтесь с интерфейсом.

05

Ставки и площадки

Аудитория «боты» (практики). Трекер передаёт в Метрику цель «бот», из неё собирается аудитория, на которую понижают ставки. Когда сложился портрет покупателя (пол, возраст, доход, операционная система), ставки на эту аудиторию повышают. По справке Директа корректировки по аудиториям доступны в кампаниях всех типов и применяются последовательно, а не суммируются. Допустимые диапазоны проверьте в интерфейсе.

Площадки (практики). В отчёте «По площадкам» и в Мастере отчётов исключайте площадки и приложения с нулевой конверсией в квалифицированную заявку. Универсального чёрного списка нет. Оставьте только города, где вы продаёте.

06

Как понять, что это работает

Следите за четырьмя показателями. Доля пустых заявок снижается. Цена квалифицированной заявки не растёт. Конверсия из лида в продажу растёт. Роботность в Метрике ниже 10%. По словам автора поста на встрече практиков, после перехода на оптимизацию по реальным клиентам цена лида снижалась на 20–25%, а конверсия из лида в продажу росла на 15–20%. Это ориентир, а не обещание (оценка).

07

Сколько денег это экономит: расчёт

Ниже простая математика. Цифры в примере условные: подставьте свои из Метрики и CRM. Расчёт показывает порядок величин и не обещает результат: деньги экономит внедрение защиты, а не само вступление куда-либо.

Формулы

Прямые потери в месяц = Бюджет × Доля бот-визитов в оплаченном трафике
Потери менеджеров     = Пустые заявки × Минуты на звонок / 60 × Стоимость часа
Экономия в месяц      = (Прямые потери + Потери менеджеров) × Снижение потерь
Окупаемость           = Экономия ÷ Стоимость подписки

Доля бот-визитов в оплаченном трафике это то, что осталось после фильтра Яндекса. Автор рилса оценивает бот-трафик в Директе до 30% (оценка), но часть Яндекс отсеивает сам, поэтому для расчёта берите свою цифру из «Источники, сводка» и CRM, а не общую.

Пример на условных цифрах

  • Бюджет в Директе: 300 000 ₽ в месяц.
  • Доля бот-визитов в оплаченном трафике: 20%.
  • Заявок в месяц: 200, из них 40% пустые (боты и чужие данные), то есть 80 штук.
  • Менеджер тратит на пустую заявку 10 минут, час работы стоит 500 ₽.

Прямые потери: 300 000 × 0,20 = 60 000 ₽ в месяц. Потери менеджеров: 80 × 10 / 60 × 500 = 6 667 ₽ в месяц. Всего уходит: 66 667 ₽ в месяц.

Пусть защита формы, офлайн-конверсии и чистка источников снизили потери на 50%. Тогда экономия составит 33 333 ₽ в месяц, или около 400 000 ₽ в год. Подписка в клубе стоит 2 200 ₽ в месяц, то есть экономия в этом примере больше стоимости примерно в 15 раз.

Здесь не учтено главное: Директ перестаёт учиться на ботах и начинает искать реальных клиентов. Этот эффект растёт со временем и в расчёт не вошёл, поэтому пример консервативный.

Как меняется экономия от бюджета и доли ботов (снижение потерь на 50%, менеджеры не учтены)

Бюджет в месяц Доля ботов 10% Доля ботов 20% Доля ботов 30%
100 000 ₽ 5 000 ₽ 10 000 ₽ 15 000 ₽
300 000 ₽ 15 000 ₽ 30 000 ₽ 45 000 ₽
1 000 000 ₽ 50 000 ₽ 100 000 ₽ 150 000 ₽

Каждая сумма в таблице экономии в месяц. Для сравнения: подписка в клубе стоит 2 200 ₽ в месяц.

Когда это окупается. Чтобы подписка вернула свою стоимость, достаточно вернуть 2 200 ₽ потерь. Формула: стоимость подписки ÷ (доля ботов × снижение потерь). При доле ботов 20% и снижении на 50% это бюджет от 22 000 ₽ в месяц. При доле 10% и снижении 50% от 44 000 ₽. При доле 30% и снижении 25% от 29 300 ₽.

Калькулятор. Подставьте свои цифры.

loss_calculator.exe
Прямые потери в месяц0
Потери менеджеров в месяц0
Экономия в месяц0
Экономия в год0
Во сколько раз экономия больше подписки0

Закрытый клуб Петроченкова

Это был один гайд. В клубе таких десятки

Пространство для тех, кто живёт маркетингом: сильные специалисты, агентства и предприниматели. Каждую неделю новые разборы, эфиры и рабочие материалы.

  • Закрытые разборы проектов участников и кейсов Антона: с цифрами, ошибками и победами, которых нет в открытом доступе.
  • Живые эфиры с экспертами: ИИ в бизнесе, продажи, реклама, найм ассистента и не только.
  • Инструменты под задачу: скрипты, чек-листы, шаблоны и таблицы, которые можно внедрять сразу.
  • Сильное окружение: здесь находят подрядчиков, партнёров и обратную связь быстрее, чем на конференциях.

Подписка стоит дешевле одной ошибки в воронке, а она обычно обходится в десятки тысяч рублей.

Подписка2 200 ₽в месяц
Выбрать тариф и зайти в клуб →

Продление автоматическое. Карту можно отвязать в любой момент.

Конец файла. Спасибо, что дочитали.

Приложения

А. Код: ловушка, таймер, ClientID и yclid

HTML внутри формы:

<form id="lead" method="post" action="/lead">
  <input name="name" placeholder="Имя">
  <input name="phone" placeholder="Телефон">

  <!-- ловушка: человек её не видит, бот заполняет -->
  <div style="position:absolute;left:-9999px" aria-hidden="true">
    <label>Сайт <input name="website" tabindex="-1" autocomplete="off"></label>
  </div>

  <input type="hidden" name="t0" id="t0">
  <input type="hidden" name="cid" id="cid">
  <input type="hidden" name="yclid" id="yclid">
</form>

JavaScript (номер счётчика Метрики: XXXXXXXX):

<script>
  // момент загрузки формы, нужен для проверки скорости заполнения
  document.getElementById('t0').value = Date.now();

  // ClientID Метрики для привязки офлайн-конверсий из CRM
  ym(XXXXXXXX, 'getClientID', function (cid) {
    document.getElementById('cid').value = cid;
  });

  // yclid из адреса для привязки конверсий к кликам Директа
  var y = new URLSearchParams(location.search).get('yclid');
  if (y) { localStorage.setItem('yclid', y); }
  document.getElementById('yclid').value = localStorage.getItem('yclid') || '';
</script>

Проверка на сервере (логика, язык любой):

если заполнено поле "website"        -> бот: заявку не принимать, цель не отправлять
если now - t0 < 3000 мс              -> вероятно бот
иначе                                 -> принять заявку, сохранить ClientID и yclid в CRM,
                                         после этого отправить цель:
                                         ym(XXXXXXXX, 'reachGoal', 'human_lead')

Цель в Метрику отправляйте только после ответа сервера, а не при нажатии на кнопку. Иначе бот попадёт в конверсии, какой бы хорошей ни была ловушка.

Б. Юридическая заметка

Скрипты, которые собирают технические параметры посетителя (отпечаток браузера, fingerprint), могут считаться обработкой персональных данных по закону 152-ФЗ. Для обычного сайта это политика конфиденциальности, согласие на cookie и аналитику, уведомление Роскомнадзора, хранение данных россиян на серверах в России. Позицию регулятора именно по браузерному отпечатку я не нашёл, поэтому схему перед внедрением покажите юристу. Это не юридическая консультация.

В. Источники

Официальные материалы: справка Директа о недействительном трафике, курс ЯРД по антифроду, роботы в Метрике, офлайн-конверсии, yclid, составная цель, аудитории в Директе, SmartCaptcha, проверка токена, невидимая капча.

Блоги и практики: 8 шагов поиска фрода в Метрике, офлайн-конверсии для автостратегий, оплата за конверсии, несколько целей в ЕПК, антифрод в Директе, площадки РСЯ, cookie и 152-ФЗ.

Личный опыт: автор рилса и материалы встречи практикующих директологов. Это наблюдения конкретных специалистов, а не независимая статистика.