Собственная фильтрация трафика: ClickHouse и Python против мусорных кликов
Давайте поднимем логи и посмотрим правде в глаза. Если у вас есть только postback-лог и отчёт из кабинета, фрод уже успел проехать по бюджету. Нужна своя линия обороны: сырые события в ClickHouse, обогащение в Python и жёсткие правила, которые режут не “подозрительное”, а конкретные паттерны.
Схема простая: ingest → нормализация → скоринг → блок/allow. В ClickHouse храните timestamp, ip, ua, referrer, click_id, landing, isp, geo, time_to_convert, session_count. В Python считайте признаки: частота кликов с /24, повторяемость UA, нулевую глубину сессии, неестественный лаг до конверсии, совпадение отпечатков. Ботнеты эволюционируют, но паттерны их поведения остаются прежними.
Минимальный набор правил:
— >N кликов с одного /24 за короткое окно;
— один UA на десятки разных IP;
— переход без реферера + мгновенный bounce;
— конверсии только в “идеальные” интервалы времени;
— клик и конверсия с несовместимыми geo/isp. 🔍
Не пытайтесь строить “умный” фильтр на одной метрике. Смотрите на связку сигналов и храните решение не только как blacklist, но и как score: 0–39 — пускаем, 40–69 — режем атрибуцию, 70+ — в бан. Вот технический разбор того, как именно уплывает ваш рекламный бюджет: через повторяющиеся кластеры, а не через один громкий аномальный клик.
Финал простой: сначала логируйте всё, потом режьте по кластерам, и только затем автоматизируйте блокировки — иначе вы научите свой фильтр стрелять по своим же пользователям.
Защита от фрода в рекламе
@ad_fraud_shield_arb
Собственная фильтрация трафика: ClickHouse и Python против мусорных кликов
Этот пост опубликован в Telegram-канале Защита от фрода в рекламе. Подписаться можно по ссылке: @ad_fraud_shield_arb.