Простого бота выдаёт то, что он не выполняет JavaScript. Но рекламу давно проверяют не скриптами на curl, а настоящими браузерами под управлением программ. Такой headless-браузер загружает страницу, выполняет код, ждёт, кликает — и для наивной защиты ничем не отличается от посетителя. Отличить его помогает отпечаток браузера, или fingerprint, и следы автоматизации, которые программа оставляет в окружении.
Что такое headless-браузер
Headless означает «без головы» — без графического окна. Это тот же движок Chrome или Firefox, только запущенный в фоне и управляемый программой. Популярные инструменты автоматизации — Puppeteer, Playwright, Selenium — умеют открывать страницы, заполнять формы, делать скриншоты и проходить по цепочке переходов.
Кто использует headless-браузеры по отношению к вашему лендингу:
- рекламные площадки — проверяют посадочную страницу так, как её увидит пользователь;
- спай-сервисы — сохраняют лендинги целиком (подробнее — в статье защита от спай-сервисов);
- фрод-трафик — накручивают клики и даже конверсии;
- парсеры конкурентов — собирают тексты, цены, структуру.
Главная проблема для фильтра: headless-браузер проходит проверку на выполнение JavaScript. Поэтому нужны более тонкие признаки.
Что такое отпечаток браузера (fingerprint)
Отпечаток браузера — совокупность характеристик, которые браузер раскрывает сайту. Часть из них отправляется сама, часть измеряется скриптом.
| Компонент | Что это | Что может выдать |
|---|---|---|
| User-agent | строка с названием и версией браузера и ОС | шаблонную или устаревшую версию |
| Язык и локаль | список языков браузера | язык, не совпадающий с гео |
| Часовой пояс | пояс системы | пояс, не совпадающий со страной IP |
| Экран | разрешение, глубина цвета, плотность пикселей | серверные «круглые» размеры |
| Графика | видеокарта, рендерер, особенности отрисовки | программный рендерер вместо реальной видеокарты |
| Шрифты | набор установленных шрифтов | «голая» серверная система |
| Аппаратные данные | число ядер, память, сенсорный экран | десктопные характеристики у «телефона» |
| Возможности API | какие интерфейсы браузера доступны | отсутствие того, что есть у настоящего браузера этой версии |
Отпечаток используют двумя способами. Для узнавания — чтобы понять, что разные визиты пришли с одного устройства. И для проверки подлинности — чтобы понять, похож ли этот набор на реальное устройство. Для защиты от ботов важнее второе — на нём держится любой антибот для сайта.
Признаки headless и автоматизации
Флаг webdriver
По стандарту браузер, которым управляет программа через интерфейс автоматизации, выставляет свойство navigator.webdriver. Это самый известный признак — и самый легко скрываемый: его подменяют одной строкой. Поэтому серьёзная защита на него одного не опирается.
Следы управления
Инструменты автоматизации оставляют в окружении свои объекты, переменные и характерные изменения поведения отдельных функций. Их много, они меняются с каждой версией инструментов, и спрятать все сразу трудно.
Несоответствие заявленному
Headless-браузер часто выдаёт себя противоречиями:
- user-agent говорит «Chrome на Windows», а набор API — как у headless-сборки на Linux;
- заявлен iPhone, но поддерживаются интерфейсы, которых нет в Safari;
- экран «мобильный», а сенсорного ввода нет;
- видеокарта определяется как программный рендерер, типичный для серверов.
Серверное окружение
Минимальный набор шрифтов, отсутствие медиаустройств, «круглое» разрешение экрана, неестественные значения аппаратных характеристик — всё это признаки браузера, запущенного на сервере без реального пользователя.
Время и поведение
Программа действует либо мгновенно, либо с одинаковыми паузами. Нет движений мыши, нет касаний, нет прокрутки — или они идеально ровные. Подделанное время на странице тоже можно заметить: когда то, что сообщает скрипт, не сходится с реальными таймингами.
Совет. Ни один признак из этого списка не доказывает бота сам по себе. Доказывает сочетание: три-четыре независимых противоречия у одного визита почти не встречаются у настоящих браузеров.
Антидетект-браузеры: где граница
Антидетект-браузер подменяет отпечаток так, чтобы каждый профиль выглядел как отдельное реальное устройство. В арбитраже это обычный рабочий инструмент: байеры держат в нём рекламные аккаунты, чтобы площадка не связала их между собой.
Для фильтра трафика важно различать два случая:
- антидетект под управлением человека — для лендинга это, по сути, обычный посетитель: человек двигает мышью, читает, кликает;
- антидетект под управлением программы — та же автоматика, только в лучшей маскировке; её выдают несогласованность подмены и поведение.
Иначе говоря, отпечаток — не единственная линия обороны. Хорошо замаскированного бота выдаёт то, что он делает, а не то, как выглядит.
Ложные срабатывания: встроенные браузеры и WebView
Самая частая ошибка при фильтрации по отпечатку — отсекать встроенные браузеры приложений. Facebook, Instagram, TikTok открывают ссылки во встроенном браузере на базе WebView. У него:
- необычный user-agent с названием приложения;
- урезанный набор возможностей по сравнению с полноценным браузером;
- признаки, которые совпадают со следами автоматизации;
- часто — потерянный реферер.
При этом именно через встроенные браузеры приходит большая часть живого трафика из соцсетей. Поэтому признак автоматизации у WebView нельзя трактовать как явного бота — только как один из сигналов в общей оценке. Подробнее о том, как метка клика площадки помогает отличить такой визит от бота, — в статье fbclid, gclid, ttclid.
Как работает проверка браузера в ArtisanClo
В ArtisanClo проверка браузера — отдельный шаг после сетевых проверок. Скрипт выполняется в браузере посетителя и сообщает, что он увидел; страница прячется, пока не пришло решение. За это отвечают несколько переключателей защиты:
- Блокировка headless-браузеров — ловит ботов и автокликеры, которые притворяются браузером. При явных следах автоматизации отсекает сразу, в журнале причина «Явный headless-браузер».
- Обязательное выполнение JS — посетитель без JavaScript получает сильный штраф и отправляется на проверку. Простые боты и парсеры на этом спотыкаются.
- Проверка живого взаимодействия — смотрит, как двигаются мышь и палец: человек ведёт себя естественно, бот — нет. Добавляет небольшое ожидание, поэтому её включают для строгих площадок.
- Минимальное время на странице — посетитель, пробывший меньше заданного, отправляется на страницу ожидания и проверяется заново.
Встроенные браузеры Facebook, Instagram и TikTok и WebView в приложениях распознаются отдельно: признак автоматизации у них не отсекает визит сразу, а учитывается в оценке доверия вместе с сетью, временем и реферером. Для кампаний, где почти весь трафик идёт из встроенного браузера, рекомендуется строгость «Баланс».
Роботы-браузеры с доказанными признаками и подделка времени на странице попадают в общий список ботов с первого раза: следующий визит с этого адреса в любой поток любого клиента сразу получает White Page.
В статистике отказы этого шага собраны в долю «Проверка браузера», а визиты, которые не выполнили скрипт и не вернулись, — в «Проверка не вернулась». Если растёт именно доля «Проверка браузера», это сигнал проверить строгость: на этом шаге фильтр ошибается чаще всего.
Проверка браузера работает при подключении JS-тегом и PHP-файлом. О разнице способов — в статье как подключить клоаку к сайту, а полный перечень проверок — на странице возможностей.
Как выстроить защиту от headless: практические шаги
- Начните с сети. Большинство headless-ботов запускаются на серверах — блокировка дата-центров отсекает их до проверки браузера. См. VPN, прокси и IP дата-центров.
- Требуйте JavaScript там, где это безопасно. Если площадка передаёт метку клика и трафик идёт из обычных браузеров, обязательный JS отсекает парсеры без потерь.
- Включите блокировку headless-браузеров на всех потоках.
- Проверку живого взаимодействия держите для дорогого трафика и источников, где много продвинутой автоматики.
- Не ужесточайте встроенные браузеры. Для соцсетей не включайте лишних жёстких правил.
- Смотрите причины. Если «Явный headless-браузер» массово срабатывает на мобильный трафик одной площадки — это повод разобраться, а не радоваться.
Общая логика многослойной защиты описана в статье как отфильтровать ботов, а список типичных примет — в материале бот-трафик: признаки.
Отпечаток браузера и приватность: что важно знать
Слово «fingerprint» часто связывают со слежкой: рекламные системы используют отпечатки, чтобы узнавать пользователя без cookie. В антифроде задача другая. Фильтру не нужно знать, кто посетитель, — ему нужно понять, настоящий ли это браузер и ведёт ли он себя как человек. Поэтому для защиты от ботов важны не уникальные идентификаторы, а согласованность характеристик между собой.
Отсюда практическое следствие. Браузеры постепенно урезают то, что можно измерить скриптом: добавляют шум в отрисовку, унифицируют строки user-agent, скрывают детали оборудования. Для узнавания пользователей это проблема, для проверки подлинности — меньшая: противоречия между заявленным и реальным никуда не деваются. А вот защита, построенная на одном-двух «волшебных» признаках, со временем перестаёт работать — и это ещё один аргумент за оценку по сумме сигналов.
Пример: как выглядит разбор подозрительного визита
Допустим, в журнале визит с причиной, связанной с автоматизацией браузера. В карточке клика видно:
- сеть — облачный хостинг;
- браузер заявлен как свежий Chrome, а устройство — компьютер;
- метки рекламного клика нет;
- проверка браузера вернулась с признаками управления программой.
Здесь всё сходится: серверная сеть, отсутствие рекламного перехода, следы автоматизации. Это классический робот проверки или спай.
А вот другой визит: мобильный оператор, встроенный браузер соцсети, метка клика есть, признак автоматизации слабый. Такой визит отсекать по одному признаку нельзя — скорее всего, это обычный человек, открывший рекламу в приложении.
Разница между этими двумя визитами и есть суть оценки по сумме признаков: у первого противоречат друг другу сразу несколько независимых сигналов, у второго — один, да и тот объясним особенностями встроенного браузера. Если таких «вторых» в журнале много и они уходят на White Page, ослабьте строгость для этой площадки.
Итог
Headless-браузер проходит простые проверки, но оставляет следы: флаги и объекты автоматизации, противоречия в отпечатке, серверное окружение, неестественное поведение. Отпечаток браузера помогает понять, похож ли визит на реальное устройство, а поведенческие проверки — ведёт ли себя он как человек. Главное правило то же, что и везде в антифроде: решает сочетание признаков, а не один, иначе вместе с ботами уйдёт трафик из встроенных браузеров соцсетей.



