Как стать автором
Поиск
Написать публикацию
Обновить

Сам себе антифрод: как мы отсекли 48% трафика в Директе кастомным комбайном на Matomo

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.4K

В последние полгода я всё чаще натыкаюсь на статьи о борьбе с ботами и фродом в Яндекс.Директ. Это бич современного перфоманс-маркетинга и огромная "дыра" в эффективности агентств и бюджете рекламодателей. Многие маркетологи жалуются на неэффективность стандартных решений, а платные сервисы работают как «чёрный ящик» и пропускают большую часть подозрительного трафика.

Я предлагаю альтернативу — собственную систему разметки ботов и скликеров, которую можно быстро внедрить на любой сайт. Она гибкая, прозрачная и позволяет отсеивать до 48% некачественного трафика (по моей статистике).
Вы можете создать аналогичную систему у себя.

Почему сторонние сервисы не всегда эффективны?

Платные антифрод-решения (сервисы вроде Botfaqtor, ClickFraud и других) удобны. Но они, для вас работают по принципу «черного ящика»: вставил JS-код – и молись надейся, чтобы он сработал. По моему опыту, они пропускают слишком много подозрительного трафика. Возможно, из-за универсальности настроек под тысячи разных сайтов – перестраховываются, чтобы не зацепить живых.

  • Невозможность тонкой настройки — сервисы работают с тысячами сайтов и вынуждены балансировать между жесткостью фильтров и риском ложных срабатываний.

  • Ограниченный контроль — вы не знаете, по каким критериям блокируется трафик.

  • Пропуск части ботов — в моей практике они отсеивают далеко не всех скликеров.

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


Схема работы системы маркировки трафика
Схема работы системы маркировки трафика

Как работает система?

1. Основа — Matomo Tag Manager

Когда ведешь десятки проектов, настраивать индивидуальную защиту для каждого – большой труд. Отсюда пришла мысль о более универсальном решении.
Для быстрой интеграции на разные сайты я использую Matomo Tag Manager (MTM)**, развернутое на собственном сервере.

Почему именно Matomo TM, а не другие?

  • Google Tag Manager (GTM): Смущает неопределенный статус трансграничной передачи данных (152-ФЗ, РКН).

  • Яндекс.Тег-менеджер: Пока не умеет в «Собственный JS-код» (ключевая фишка для нашей системы), только костыли.

  • Matomo TM: Полный контроль, данные на вашем сервере. Для одиночных крупных проектов Matomo Analytics на том же домене решает и проблему блокировки «чужеродных» скриптов браузерами.

Архитектура системы:

  • Ядро: На хостинге ставим Matomo Analytics + Tag Manager.

  • Детекторы: Настраиваем теги для детекции ботов (о них ниже).

  • Маркировка: Скрипты передают данные в dataLayer, а оттуда — в Яндекс.Метрику, Google Analytics и другие системы (например, цель "бот" в счетчик Top@Mail.Ru, для исключения аудитории из рекламы ВК - такую возможность коммерческие сервисы пока не дают).

  • Универсальность: Можно гибко дорабатывать систему: изменил тег → опубликовал контейнер → изменения применились на всех сайтах.

Важно: Matomo Analytics ставится отдельно и не обязателен для работы антифрода. Но если подключить его, можно:

  • Собирать статистику по каждому сайту отдельно.

  • Или объединять данные для сквозного анализа фрода.

2. Способы интеграции

  • Прямое внедрение в код шаблона сайта.

  • Через другой тег-менеджер (например, Яндекс ТегМенеджер).

  • Единая система контейнеров (заменяющая другие ТегМенеджеры):

    • Для каждого сайта создаётся отдельный контейнер.

    • В него подключается основной контейнер с антифрод-скриптами.

    • Остальные теги настраиваются индивидуально.

Это ускоряет работу с новыми проектами — не нужно каждый раз настраивать систему с нуля.


Схема: технические признаки определения ботов
Схема: технические признаки определения ботов

Как определяем ботов?

Нет смысла приводить тут полный код таких тегов. В любом случае каждый систему пишет под себя. А с пониманием, что именно нужно, для кода конкретного тега вам напишет код практически любой современный ИИ.
Тут я перечислю основные методы, которые могут применяться для выявления ботов:

1. Технические признаки

  • FingerPrint / Evercookie / ETag — если с одного «отпечатка» слишком много посещений → бот.

  • Ловушка для ботов — скрытые ссылки, на которые кликают только скрипты.

  • Скорость мыши/скролла — неестественно быстрые движения → подозрение.

  • Headless-браузеры -браузеры без GUI

  • Режим инкогнито / виртуальные машины.

  • Несоответствия, например когда:

    • Timezone по IP ≠ timezone браузера.

    • Язык браузера ≠ языку сайта (если он не мультиязычный).

    • Разрешение экрана ≠ типу устройства в User-Agent.

  • Сторонние библиотеки: Интеграция OpenSource решений вроде Botd от FingerprintJS (смотрите на github)

Панель настройки тегов Matomo Tag Manager
Панель настройки тегов Matomo Tag Manager

2. Проверка через сторонние сервисы

Доверяй, но проверяй. Если свои детекторы не нашли ничего подозрительного, можно запустить последовательную проверку через API сторонних сервисов, например:

  • ipinfo.io

  • ip-api.com

  • Scamalytics.com

  • fingerprint.com

Важно: учитывайте 152-ФЗ и трансграничную передачу данных.

Как это работает?

  • Сервисы проверяются последовательно.

  • Если хоть один показывает "красный флаг" (например, как прокси или хостинг) → прекращаем проверки для экономии лимитов сервисов.

Что проверяем, через сторонние сервисы?

  • Proxy/VPN: Помечаем ли? Мое правило – ДА. Среди них могут быть живые, но процент плохих намерений (боты, склики) будет больше. Экономия бюджета Директа важнее.

  • IP от хостера / «плохие» ASN: Анализируем ASN (сеть провайдера) из данных Метрики или сервисов. Блокируем ASN, генерирующие мусор. Существуют ASN с которых идет только некачественный трафик - им нужно "вешать" параметр блокировки. Списки некачественных ASN можно составить самому, анализируя статистику или воспользоваться готовыми списками которые "гуляют" и в интернете (обычно они составляются для использования в Cloudflare).

  • Определяем регион по IP: Записываем в параметр визита Я.Метрики. Потом по ним создаем сегменты для отключения ненужных регионов в Директе.

Пример профиля посетителя в Matomo, с разметкой событий. Пользователь детектирован как бот по нескольким причинам: обнаружена виртуальная машина, скрипт Botd обнаружил автоматизацию, Язык браузера не русский, а ASN в списке блокировок.
Пример профиля посетителя в Matomo, с разметкой событий. Пользователь детектирован как бот по нескольким причинам: обнаружена виртуальная машина, скрипт Botd обнаружил автоматизацию, Язык браузера не русский, а ASN в списке блокировок.

Чистый трафик = ценный трафик

Посетитель, прошедший все проверки без подозрений? Это «белый и пушистый» – помечаем как валидный. Таких мало, но зато это идеальная аудитория для ретаргетинга или повышения ставок в похожих аудиториях.

Бонус: обогащаем аналитику
Дополнительно к этой "универсальной" системе, можно добавить и полезные для маркетинга и аналитики фичи в контейнер - события универсальные для всех сайтов:

  • Глубина скролла

  • События: отправка форм, клики на телефон/email

  • Сохранение GET/UTM-параметров

  • Дата/время визита (день недели, час и т.д. – для анализа сезонности)

  • Даже погода в регионе посетителя (например, через weatherapi.com) – если бизнес зависит от нее и т.д. - все, что будет полезно для анализа.

Пример профиля посетителя в Яндекс Метрике. Фиксация параметров посетителя для аналитики. Обнаружение бота - виртуальной машины (одним из тегов).
Пример профиля посетителя в Яндекс Метрике. Фиксация параметров посетителя для аналитики. Обнаружение бота - виртуальной машины (одним из тегов).

Шифруем контейнеры

Что-бы спрятать весь страх который вы понаписали (или за вас это сделал ИИ) контейнер можно обсифицироввть. (Шифровать).

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


3. Что делать с ботами?

Суть системы: не защита сайта, а защита бюджета Директа
Важно! Наш комбайн не блокирует ботов на сайте (это задача WAF/анти-DDoS систем). Его цель – маркировать трафик для Яндекс.Директ.

Как использовать данные?

  1. Передаём метку «бот» в Яндекс.Метрику → создаём сегмент

  2. В Директе ставим корректировку -100% для этого сегмента. Реклама боту не показывается, бюджет не сливается.

  3. Можно создать несколько сегментов по типом обнаруженных угроз (например, отдельно для VPN, виртуальных машин, Proxy и т. д.) и точечно управлять ставками

Результат:

  • Меньше показов для ботов → повышение CTR и уменьшение CPA валидных лидов

  • Более «чистый» трафик → быстрее обучаются стратегии


Статистика: какие боты встречаются чаще?

Статистика с одного из проектов (в очень конкурентной нише, с ценой клика до 3-5 тыс руб в Москве) показала: ~48% переходов с рекламы – некачественный трафик. Цифры плюс-минус около 40-50% дают и различные сторонние исследования.

Процитирую телеграмм-канал Ботфактор: "Согласно оценке верификатора Fraudscore, доля недействительного трафика в цифровой рекламе на российских платформах в 2024 году составила 41,5%".

Но тут же нужно сделать поправку, что алгоритмы определения ботов и скликеров не точны и в моем случае настроены так, что-бы отсеивать при малейшем подозрении, о чем я писал выше. И конечно показатель будет сильно завесить от рекламной ниши, региона и конкуренции.

Ниже показаны основные причины блокировки ботов на этом проекте - от 100% обнаруженных ботов.

Топ-причины блокировки (Точные цифры не привожу, чтобы не давать фродерам подсказки.)
Топ-причины блокировки (Точные цифры не привожу, чтобы не давать фродерам подсказки.)

Что дальше?

Собранные в Matomo Analytics детальные данные о каждом посещении (включая наши метки "бот/не бот", параметры сессии, технические характеристики и т.д.) – это ценное сырье.
Например, сырые данные можно выгрузить в формате CSV (в отличие от Я.Метрики) и использовать для обучения специальных ML-моделей.

Эти модели, например, смогут прогнозировать:
1. Вероятность того, что новый визит – это бот (еще до срабатывания всех наших правил);
2. Формировать аудитории для точечных корректировок ставок в Яндекс.Директ: снижать их для "подозрительных" визитов и повышать для посетителей с высокой вероятностью целевого действия.

На сколько это будет иметь смысл и эффект - нужно проверять.
В этом и есть весь цифровой маркетинг.


Вывод

Боты и скликиры в Директе — это дыра в бюджете. Универсальные сервисы часто недотягивают: их "черный ящик" не дает контроля, а настройки — недостаточно гибкие.
Собственная система посильна большинству специалистов и агентств, более универсальна и предоставляет гораздо больше возможностей:

  • Полный контроль над критериями блокировки

  • Адаптация под каждый конкретный проект

  • Гибкость — можно быстро дорабатывать под новые угрозы

  • Экономию бюджета — меньше показов ботам = ниже CPA

  • Сбор данных для дальнейшего анализа

Теги:
Хабы:
+3
Комментарии2

Публикации

Ближайшие события