JS-челлендж и скоринг
Промежуточная проверка браузера в клоаке: какие сигналы собираются, как принимается решение и что получает посетитель.
JS-челлендж — вторая ступень клоаки: посетитель, прошедший серверные проверки, сначала получает промежуточную страницу, и только после оценки браузера — оффер или лендинг. Проверку включает флажок JS-челлендж (поведение + headless-детект) на вкладке Клоака в кампании.
Когда срабатывает челлендж
Челлендж получает клик, для которого выполнено всё сразу:
- в кампании включена клоака и отмечен флажок JS-челлендж (поведение + headless-детект);
- клик прошёл серверные проверки: не бот, подходит по click-id, стране, устройству и типу соединения;
- выбранный поток отдаёт адрес или страницу.
Клик, отсеянный серверными проверками, до челленджа не доходит и сразу получает вайт.
Посетитель видит пустую страницу с заголовком вкладки «Loading…». Страница около секунды собирает сигналы, отправляет их трекеру и переходит по адресу из ответа. Если ответа нет или в нём нет адреса, отправка повторяется — всего до трёх попыток. Посетитель с выключенным JavaScript остаётся на пустой странице и дальше не идёт.
Клик записывается в статистику выбранного потока до проверки. Возврат после челленджа второй клик не создаёт. Клик посетителя, не прошедшего челлендж, остаётся в статистике этого потока.
Собираемые сигналы
Из браузера:
- признак автоматизации
navigator.webdriver; - число языков браузера и число плагинов;
- число ядер процессора и объём памяти;
- ширина и высота экрана;
- поддержка касаний;
- часовой пояс;
- название видеокарты;
- действия на странице: движение мыши или указателя, касание, прокрутка, нажатие клавиши, колесо мыши;
- время от открытия страницы до отправки ответа;
- отпечаток устройства.
Из первого запроса по ссылке кампании: тип устройства по User-Agent, тип соединения по базе IP2Proxy, наличие заголовков Accept-Language и Sec-CH-UA, страна и часовой пояс по IP.
Баллы и коды причин
Каждый сработавший признак добавляет баллы. Когда сумма достигает порога, визит считается ботом. В окне клика сумма показана в строке Скоринг, коды сработавших признаков — в строке Причины. Строка Детали начинается с суммы и порога через косую черту.
Любого из этих признаков достаточно, чтобы визит считался ботом:
| Код причины | Когда срабатывает |
|---|---|
no_js | Ответ пришёл без отметки о выполненном скрипте страницы. Остальные признаки не оцениваются |
webdriver | Браузер сообщил, что им управляет средство автоматизации |
software_gpu | Видеокарта программная или виртуальная: SwiftShader, llvmpipe, Mesa OffScreen, VirtualBox, VMware, Microsoft Basic Render |
no_screen | Ширина или высота экрана равна нулю |
Остальные признаки делают визит ботом только в сочетании друг с другом:
| Код причины | Когда срабатывает |
|---|---|
tiny_screen | Очень маленькая ширина или высота экрана |
mobile_ua_desktop_screen | User-Agent мобильный, а экран по ширине как у десктопа |
desktop_ua_mobile_screen | User-Agent десктопный, а экран узкий и поддерживает касания |
mobile_no_touch | User-Agent мобильный, а поддержки касаний нет |
no_languages | Список языков браузера пуст |
no_cores | Браузер не сообщил число ядер процессора |
no_timezone | Браузер не сообщил часовой пояс |
no_interaction | Действий на странице не было, и ответ пришёл почти сразу после её открытия |
no_accept_language | В запросе по ссылке кампании нет заголовка Accept-Language |
no_client_hints | В запросе по ссылке кампании нет заголовка Sec-CH-UA, а User-Agent не мобильный |
datacenter | Соединение через прокси, VPN или Tor при снятом флажке Блокировать дата-центры / прокси / VPN. Адреса дата-центров и клики при отмеченном флажке отсеиваются раньше, серверными проверками |
Мобильным считается User-Agent телефона или планшета.
Ещё два кода делают визит ботом при любой сумме баллов:
| Код причины | Когда срабатывает |
|---|---|
timezone_mismatch | Часовой пояс браузера расходится с поясом по IP |
device_fp_other_country | Устройство с таким отпечатком уже заходило из другой страны |
Сверка часового пояса
Сверка работает всегда, когда включён челлендж; отдельного флажка у неё нет. Трекер сравнивает смещение от UTC у часового пояса браузера и у пояса, который геобаза определила по IP. Расхождение больше чем на час даёт причину timezone_mismatch.
Если геобаза не дала пояс для IP или браузер его не сообщил, расхождение не засчитывается. Оба значения пояса показаны в окне клика в строке Детали.
Фингерпринт устройства
Проверку включает флажок Фингерпринт устройства (анти-модерация) на вкладке Клоака. Он доступен только при отмеченном JS-челлендже.
- Отпечаток считается из размеров и глубины цвета экрана, числа ядер, объёма памяти, часового пояса, видеокарты, языков, платформы и числа точек касания.
- При первом визите трекер запоминает страну, из которой пришло устройство.
- Если устройство с тем же отпечатком приходит из другой страны, визит получает причину
device_fp_other_countryи считается ботом, даже когда сумма баллов ниже порога. Запомненная страна при этом не меняется. - Запись хранится 30 суток. Каждый визит из той же страны продлевает срок.
Память отпечатков общая для всех кампаний установки с включённым фингерпринтом. Устройство, которое зашло из одной страны в одной такой кампании, будет отсеяно при заходе из другой страны в любой из них, пока хранится запись.
Что получает посетитель
Живой посетитель возвращается на адрес кампании и получает ответ того же потока, с тем же оффером и лендингом, что записаны в статистике клика. К адресу возврата добавляется служебный параметр _cp. Трекер его вырезает: в параметры клика, в статистику и на лендинг он не попадает.
Бот получает ответ замыкающего потока:
- если действие потока даёт адрес перехода, браузер сразу переходит по нему;
- в остальных случаях браузер возвращается на адрес кампании и получает ответ потока: HTML, текст, 404 или пустой ответ;
- если подходящего замыкающего потока нет, ответ — 404.
Оффер и лендинг целевого потока бот не получает.
Сроки
| Что | Срок |
|---|---|
| Приём ответа браузера после выдачи промежуточной страницы | 5 минут |
| Возврат на адрес кампании после проверки | 2 минуты, один раз |
| Решение клоаки в окне клика | 7 суток |
| Память отпечатка устройства | 30 суток с последнего визита из той же страны |
Повторное открытие адреса возврата или переход по нему позже 2 минут считается новым кликом и проходит проверку заново.
Если трекер не смог начать проверку
Если трекеру не удалось сохранить данные для проверки, челлендж для этого клика пропускается: посетитель сразу получает обычный ответ потока. Серверные проверки клоаки при этом продолжают работать.
Где смотреть результат
- Откройте кампанию и нажмите Статистика.
- Перейдите на вкладку Лог кликов.
- Нажмите на строку клика.
Решение челленджа показано в секции Клоака открывшегося окна:
- Результат — «прошёл на money» или «завёрнут на whitepage». Значение «отправлен на JS-проверку» означает, что браузер ещё не ответил или не ответил совсем.
- Этап — «JS-проверка (поведение/фингерпринт)», если решение принял челлендж.
- Скоринг — сумма баллов и итог: «живой» или «бот».
- Причины — коды сработавших признаков через запятую.
- Детали — сумма и порог, пояс по IP и пояс браузера, результат проверки отпечатка, основные сигналы.
Группировка Клоака и фильтр Клоака (прошёл) в отчётах отражают только серверные проверки: клик, не прошедший челлендж, остаётся в них прошедшим. Остальные строки окна клика и записи журнала Трафик разобраны на странице Диагностика: почему клик ушёл на вайт.