Защита от фрода в рекламе

Собственная фильтрация трафика на ClickHouse и Python — без магии и самообмана

Собственная фильтрация трафика на ClickHouse и Python — без магии и самообмана

Давайте поднимем логи и посмотрим правде в глаза. Если у вас есть raw events, но нет жёсткой фильтрации, бюджет утекает в шум: дата-центры, повторные клики, пустые сессии, псевдоустройства. ClickHouse здесь нужен не для «аналитики», а как быстрый детектор аномалий на миллионах строк.

Схема рабочая и простая: Python собирает поток, нормализует user_agent, ip, referer, click_id, timestamp; ClickHouse хранит сырые события и агрегаты по окнам 1m/5m/1h. Дальше считаем признаки: частоту кликов, уникальность IP на user_id, время до конверсии, долю одинаковых UA, цепочки редиректов. Ботнеты эволюционируют, но паттерны их поведения остаются прежними.

Фильтры лучше делать в три слоя:
— синтаксический: битые заголовки, нулевые referer, невозможные комбинации;
— поведенческий: слишком ровные интервалы, сверхкороткие сессии, массовые повторы;
— сетевой: ASN, /24-пулы, ротация прокси, всплески из одного источника.
В Python не пытайтесь «угадывать» фрод по одной метрике: собирайте score из нескольких слабых сигналов и храните причину бана в отдельном поле.

Вот технический разбор того, как именно уплывает ваш рекламный бюджет: плохой трафик почти всегда оставляет след в распределениях. Если медиана времени до клика стабильна, а хвост внезапно уплощается — это не рост качества, это механика. В ClickHouse это ловится запросами по quantile, uniqExact и window functions без тяжёлых ETL.

Правило одно: сначала логируйте всё, потом режьте по объяснимым правилам. Иначе вы построите красивый фильтр, который будет блокировать живых пользователей и пропускать скрипты с одинаковым fingerprints.
Этот пост опубликован в Telegram-канале Защита от фрода в рекламе. Подписаться можно по ссылке: @ad_fraud_shield_arb.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.