Детекція ботів
Як ми відрізняємо скрипт від людини
Детектор не вгадує. З кожного візиту знімається набір сигналів, кожен має вагу, сума дає оцінку. У журналі поруч із візитом написана причина словами — не «підозрілий трафік», а «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 визнає недійсними менше кліків, ніж позначає ваш детектор?
Скрипт підробить рядок браузера — і все?
Мої співробітники й підрядники потраплять у фрод?
Боти зміняться. Що тоді?
Чи можна подивитись спірний візит очима?
Подивіться на свій трафік
Акаунт створюється безкоштовно, без картки — платна підписка сама не вмикається. Ми нічого не блокуємо, просто показуємо, хто до вас приходить.