Как ловить аномальный трафик Isolation Forest, а не гадать по CTR
Давайте поднимем логи и посмотрим правде в глаза: фрод редко выглядит как «плохая кампания». Он выглядит как сдвиг распределений. И когда у вас есть session_id, ASN, user-agent, время до клика, глубина скролла и повторяемость IP/UA, Isolation Forest начинает работать лучше ручных фильтров, потому что ищет не «плохое значение», а редкость в многомерном пространстве.
Схема простая: собираете признаки на уровне сессии, нормализуете числовые поля, one-hot для категорий, отдельно считаете поведенческие фичи — dwell time, click-to-conversion lag, ratio уникальных URL, частоту возвратов с одного /24. Затем модель строит деревья и выталкивает в аномалии точки, которые требуют слишком короткого пути разбиения. Ботнеты эволюционируют, но паттерны их поведения остаются прежними: одинаковые тайминги, повторяющиеся заголовки, нелепо стабильные sequence of events.
Не кормите модель сырым шумом. Исключите сезонность, timezone-эффекты, тестовые площадки и внутренний трафик, иначе лес начнёт считать аномалией ваш собственный саппорт. Порог outlier score калибруйте по ручной валидации: 200–500 сессий из хвоста, сравнение с сырыми логами, сверка с fingerprint, прокси-метками и bounce-паттернами. Без этого вы просто автоматизируете ложные срабатывания.
Используйте модель как слой триажа: сначала скоринг, потом правила, потом ручная проверка. Вот технический разбор того, как именно уплывает ваш рекламный бюджет: не через один очевидный бот, а через пачку «почти нормальных» сессий, которые вместе рисуют красивую, но фальшивую воронку.
Защита от фрода в рекламе
@ad_fraud_shield_arb
Как ловить аномальный трафик Isolation Forest, а не гадать по CTR
Этот пост опубликован в Telegram-канале Защита от фрода в рекламе. Подписаться можно по ссылке: @ad_fraud_shield_arb.