Разделы документации

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_screenUser-Agent мобильный, а экран по ширине как у десктопа
desktop_ua_mobile_screenUser-Agent десктопный, а экран узкий и поддерживает касания
mobile_no_touchUser-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 минут считается новым кликом и проходит проверку заново.

Если трекер не смог начать проверку

Если трекеру не удалось сохранить данные для проверки, челлендж для этого клика пропускается: посетитель сразу получает обычный ответ потока. Серверные проверки клоаки при этом продолжают работать.

Где смотреть результат

  1. Откройте кампанию и нажмите Статистика.
  2. Перейдите на вкладку Лог кликов.
  3. Нажмите на строку клика.

Решение челленджа показано в секции Клоака открывшегося окна:

  • Результат — «прошёл на money» или «завёрнут на whitepage». Значение «отправлен на JS-проверку» означает, что браузер ещё не ответил или не ответил совсем.
  • Этап — «JS-проверка (поведение/фингерпринт)», если решение принял челлендж.
  • Скоринг — сумма баллов и итог: «живой» или «бот».
  • Причины — коды сработавших признаков через запятую.
  • Детали — сумма и порог, пояс по IP и пояс браузера, результат проверки отпечатка, основные сигналы.

Группировка Клоака и фильтр Клоака (прошёл) в отчётах отражают только серверные проверки: клик, не прошедший челлендж, остаётся в них прошедшим. Остальные строки окна клика и записи журнала Трафик разобраны на странице Диагностика: почему клик ушёл на вайт.

Обновлено Нужна помощь? ↗