Детекция ботов

Как мы отличаем скрипт от человека

Детектор не гадает. С каждого визита снимается набор сигналов, каждый имеет вес, сумма даёт оценку. В журнале рядом с визитом написана причина словами — не «подозрительный трафик», а «IP в двух чёрных списках, выход за 1 секунду, нулевая прокрутка».

Оценка пересчитывается каждые 10 минут · причины видны по каждому визиту

12
признаков в профиле визита
6
источников чёрных списков IP
5
групп сигналов в каждой оценке
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 включают не только скликиватели, но и люди, которым просто не нравится слежка
  • Человек может уйти со страницы за три секунды, потому что сразу набрал номер с шапки сайта

Поэтому решение не автоматическое. Новый аккаунт неделю работает в режиме наблюдения: система показывает, кого бы отметила, но не трогает ничего. Порог подозрения двигается в настройках. Любой адрес снимается из списка одной кнопкой, и решение фиксируется.

Как читать журнал и не забанить клиента

Что происходит с плохим адресом дальше

Пометка в журнале — это ещё не блокировка. Путь от оценки до исключения в рекламном кабинете выглядит так.

  1. Причина пишется в журналВизит виден с адресом, сетью, устройством, временем на странице и списком сработавших признаков. Для рекламных визитов рядом лежит запись поведения.
  2. Адрес попадает в кандидатыКандидаты копятся, пока набирается история. Адреса, с которых были заявка или звонок, из кандидатов исключаются на 30 дней.
  3. Вы выгружаете списокНа тарифах от «Детектора» список плохих IP выгружается одним файлом — готовым к вставке в исключения кампании.
  4. Следите за потолкомGoogle Ads держит не больше 500 исключений IP на кампанию. Выше этой границы новые строки молча перестают действовать — поэтому список чистится от старых адресов, а не растёт бесконечно.

Автоматическая отправка исключений в Google Ads пока в разработке. Сегодня список формируем мы, а загружает его в кабинет человек. Выгрузка конверсий в Ads не работает. Обещать «блокируем автоматически» мы не будем, пока это не так.

Потолок в 500 исключений — ещё и ответ на «я это и руками сделаю». Руками вы упрётесь в него на второй месяц и не заметите, что блокировки перестали работать.

Что видно в панели Тарифы и лимиты

Вопросы про детекцию

Почему Google признаёт недействительными меньше кликов, чем помечает ваш детектор?
Это разные мерки. Google считает то, за что готов вернуть деньги, и не объясняет, какие именно клики списал. Мы считаем всё, что не похоже на человека, и показываем причину по каждому визиту. Цифры не спорят друг с другом — просто наша шире, а проверить её можно построчно.
Скрипт подделает строку браузера — и всё?
Подделает, это дёшево. Но он всё равно придёт из чужой сети, покажет один отпечаток с десятка адресов и не станет двигать мышью. Строка браузера — самая слабая из пяти групп, и вес у неё соответствующий.
Мои сотрудники и подрядчики попадут в фрод?
Нет, если добавить их адреса в белый список в настройках — такие визиты не оцениваются вовсе. Офисный адрес стоит внести в первый же день.
Боты изменятся. Что тогда?
Правила и пороги пересматриваются, чёрные списки тянутся из шести источников регулярно. Обещать, что ни один скрипт не пройдёт, мы не будем: это обещание нельзя выполнить.
Можно посмотреть спорный визит глазами?
Да, если это визит с рекламы: для них пишется движение указателя, прокрутка и клики. Запись открывается из журнала и воспроизводится как короткое видео.

Все вопросы

Посмотрите на свой трафик

Аккаунт создаётся бесплатно, без карты — платная подписка сама не включается. Мы ничего не блокируем, просто показываем, кто к вам приходит.