<b>Собственная фильтрация трафика на ClickHouse и Python: схема без магии и ручного ада</b>
Давайте поднимем логи и посмотрим правде в глаза. Если у вас нет своей точки принятия решения, бюджет принимает её за вас — в пользу ботов. Базовая архитектура проста: сырые события пишем в ClickHouse, а Python держит слой правил и скоринга поверх SQL-агрегаций.
Схема работы такая:
— на входе фиксируете click_id, ip, ua, referrer, timestamp, geo, device_hash;
— нормализуете IP/UA, режете мусорные поля, считаете повторы по окнам 5/30/120 минут;
— в ClickHouse строите витрины по ASN, подсетям, частоте кликов, глубине сессии и расхождению между кликом и конверсией;
— Python забирает результаты, применяет правила и возвращает verdict: allow, soft_block, hard_block.
Самые полезные сигналы не лежат на поверхности. Ботнеты эволюционируют, но паттерны их поведения остаются прежними: одинаковые подсети, рваные интервалы, пустые рефереры, несовместимость UA с accept-language, слишком ровный time-to-convert. Если видите серию кликов с одним и тем же device_hash и разными IP — это не «лояльная аудитория», это фабрика ротации.
Практический минимум: храните сырые события без агрегации, делайте отдельную таблицу флагов, не смешивайте антифрод-логику с бизнес-метриками. И обязательно ставьте пороги не по одному признаку, а по комбинации: один слабый сигнал даёт шум, три согласованных сигнала уже режут мусор почти без ложных срабатываний. Вот технический разбор того, как именно уплывает ваш рекламный бюджет: через слабые правила и отсутствие памяти у системы.
Если у фильтра нет истории и контекста, у фрода есть преимущество по умолчанию. Сначала соберите логи, потом — правила, и только после этого доверяйте результатам.
Защита от фрода в рекламе
@ad_fraud_shield_arb
<b>Собственная фильтрация трафика на ClickHouse и Python: схема без магии и ручного ада</b>
Этот пост опубликован в Telegram-канале Защита от фрода в рекламе. Подписаться можно по ссылке: @ad_fraud_shield_arb.