Детекция ботов
Как мы отличаем скрипт от человека
Детектор не гадает. С каждого визита снимается набор сигналов, каждый имеет вес, сумма даёт оценку. В журнале рядом с визитом написана причина словами — не «подозрительный трафик», а «IP в двух чёрных списках, выход за 1 секунду, нулевая прокрутка».
Оценка пересчитывается каждые 10 минут · причины видны по каждому визиту
Пять групп сигналов
Ни одна группа не работает в одиночку. Скрипт, который подделал строку браузера, всё равно приходит из чужой сети и ведёт себя не как человек.
Сеть — откуда пришёл адрес
Адрес проверяется в шести чёрных списках и по типу сети. Отдельно помечаются дата-центры и хостинги: живой покупатель редко заходит в интернет из серверной стойки. Выходные узлы Tor помечаются всегда — через них к вам не идут за услугой.
- IP в чёрных списках — считаем, в скольких сразу
- Сеть дата-центра или хостинг-провайдера
- Выходной узел Tor
- Страна адреса против географии кампании
Отпечаток устройства
Браузер, версия, разрешение экрана, язык, часовой пояс, набор шрифтов складываются в отпечаток. Сам по себе он ничего не доказывает — важны совпадения. Один и тот же отпечаток, приходящий с десятка разных адресов за час, это не десять человек, а один скрипт через прокси.
- Один отпечаток — много IP за короткое окно
- Часовой пояс не совпадает со страной адреса
- Экран 0×0 или размер, которого не бывает
- Язык браузера против языка страницы
Поведение на странице
Самая честная группа: её сложнее всего подделать дёшево. Человек двигает указатель неровно, останавливается, прокручивает. Скрипт открывает страницу и уходит, не коснувшись её. Для рекламных визитов есть запись — спорный случай можно пересмотреть глазами.
- Выход быстрее двух секунд
- Нулевая прокрутка при длинной странице
- Ни одного движения указателя на десктопе
- Клик в ту же точку, что и в прошлый раз
Частота с одного адреса
Один клик по объявлению в день — обычное дело. Восемь кликов за час по одному и тому же объявлению с одного адреса — нет. Детектор считает повторы в окне, а не за всё время: у мобильных операторов адреса переезжают, и вчерашняя история к сегодняшнему человеку отношения не имеет.
- Число рекламных кликов с адреса за окно
- Повтор визита с тем же gclid
- Серия визитов с ровным интервалом
- Всплеск с одной подсети
Строка браузера
User-Agent — первое, на что смотрят, и последнее, чему стоит верить: строка подделывается одной строчкой кода. Поэтому она даёт вес только вместе с остальными группами. Зато явные случаи отсекает сразу.
- Известные краулеры и парсеры в строке
- Консольные клиенты и библиотеки: curl, python-requests
- Признаки headless-браузера
- Пустая строка или версия браузера, которой не существует
Списки
Шесть источников чёрных списков — и белый список для своих
Чёрные списки подтягиваются регулярно, адрес сверяется со всеми шестью. Вес растёт не от факта попадания, а от числа источников: адрес в одном списке — повод присмотреться, в четырёх — почти приговор.
| Tor | Выходные узлы анонимной сети |
| FireHOL | Сводный список сетей с плохой историей |
| IPsum | Адреса, замеченные в атаках и переборе паролей |
| Spamhaus | Рассылка и заражённые машины ботнетов |
| blocklist.de | Адреса, ломавшие чужие серверы |
| AbuseIPDB | Жалобы администраторов на конкретные адреса |
Googlebot, Bingbot, поисковые и служебные краулеры, боты предпросмотра ссылок в мессенджерах, мониторинги доступности сайта — это не скликивание. В журнале они помечаются отдельной категорией, в долю фрода не входят и в список исключений не попадают никогда.
- Имени в строке браузера мало — её подделывают. Рядом смотрим на сеть, из которой пришёл запрос
- Свои адреса — офис, дом, телефон подрядчика — добавляются в белый список в настройках и не оцениваются вовсе
- Адрес, с которого была заявка или звонок, не попадает в список исключений 30 дней
Признак, вес и что он значит
Вес — это вклад признака в итоговую оценку, а не вердикт. Высокий вес в одиночку ещё не закрывает визит; низкий вес рядом с двумя высокими решает исход.
| Признак | Вес | Что это значит на практике |
|---|---|---|
| Адрес в трёх и более чёрных списках | высокий | Машина уже светилась в атаках или рассылке. Человек за ней сидит редко |
| Сеть дата-центра или хостинга | высокий | Клик пришёл не из домашнего и не из мобильного интернета |
| Выходной узел Tor | высокий | Через Tor приходят не за услугой и не за ценой |
| Один отпечаток — много адресов за час | высокий | Прокси или антидетект-браузер: меняется IP, устройство прежнее |
| В строке браузера краулер, curl или библиотека | высокий | Программа даже не скрывается |
| Пять и более рекламных кликов с адреса за час | средний | Ручное скликивание или простой скрипт с повтором |
| Выход быстрее двух секунд | средний | Страница не успела показаться — читать было нечего |
| Нулевая прокрутка при длинной странице | средний | На короткой странице признак не считается |
| Ни одного движения указателя на десктопе | средний | На мобильном не учитывается: там указателя нет |
| Часовой пояс не совпадает со страной адреса | средний | Бывает у VPN — сам по себе не приговор |
| Повтор визита с тем же gclid | средний | Один оплаченный клик показан как несколько визитов |
| Пустой реферер на платном клике | низкий | Встречается и у живых людей, вес маленький |
Ни один признак сам по себе не закрывает визит. В журнале указаны все сработавшие причины — можно посмотреть, за что именно система поставила оценку, и не согласиться.
Границы метода
Оценка вероятностная. Последнее слово за человеком
Мы не умеем доказать, что за адресом сидел скрипт. Мы умеем показать, сколько признаков сошлось и каких именно. Разница принципиальная, и вот где она видна:
- Мобильный оператор меняет адрес каждые несколько минут — вчерашний бот и сегодняшний покупатель могут получить один и тот же IP
- За корпоративным NAT сидит сотня человек с одним внешним адресом
- VPN включают не только скликиватели, но и люди, которым просто не нравится слежка
- Человек может уйти со страницы за три секунды, потому что сразу набрал номер с шапки сайта
Поэтому решение не автоматическое. Новый аккаунт неделю работает в режиме наблюдения: система показывает, кого бы отметила, но не трогает ничего. Порог подозрения двигается в настройках. Любой адрес снимается из списка одной кнопкой, и решение фиксируется.
Что происходит с плохим адресом дальше
Пометка в журнале — это ещё не блокировка. Путь от оценки до исключения в рекламном кабинете выглядит так.
- Причина пишется в журналВизит виден с адресом, сетью, устройством, временем на странице и списком сработавших признаков. Для рекламных визитов рядом лежит запись поведения.
- Адрес попадает в кандидатыКандидаты копятся, пока набирается история. Адреса, с которых были заявка или звонок, из кандидатов исключаются на 30 дней.
- Вы выгружаете списокНа тарифах от «Детектора» список плохих IP выгружается одним файлом — готовым к вставке в исключения кампании.
- Следите за потолкомGoogle Ads держит не больше 500 исключений IP на кампанию. Выше этой границы новые строки молча перестают действовать — поэтому список чистится от старых адресов, а не растёт бесконечно.
Автоматическая отправка исключений в Google Ads пока в разработке. Сегодня список формируем мы, а загружает его в кабинет человек. Выгрузка конверсий в Ads не работает. Обещать «блокируем автоматически» мы не будем, пока это не так.
Потолок в 500 исключений — ещё и ответ на «я это и руками сделаю». Руками вы упрётесь в него на второй месяц и не заметите, что блокировки перестали работать.
Вопросы про детекцию
Почему Google признаёт недействительными меньше кликов, чем помечает ваш детектор?
Скрипт подделает строку браузера — и всё?
Мои сотрудники и подрядчики попадут в фрод?
Боты изменятся. Что тогда?
Можно посмотреть спорный визит глазами?
Посмотрите на свой трафик
Аккаунт создаётся бесплатно, без карты — платная подписка сама не включается. Мы ничего не блокируем, просто показываем, кто к вам приходит.