
Браузер давно умеет подстраивать оформление сайта под настройки пользователя: тёмная тема, уменьшенная анимация для тех, кого укачивает от движения, повышенный контраст, режим принудительных цветов для слабовидящих. Всё это задумывалось как забота о доступности. Побочный эффект оказался неприятным для тех, кто работает с большим парком профилей: набор этих настроек читается любой страницей мгновенно, без разрешений, буквально одной строкой кода, и складывается в устойчивый признак, по которому визиты склеиваются между собой.
У живой аудитории картина пёстрая: заметная доля людей сидит в тёмной теме, часть включила уменьшенную анимацию, часть работает с повышенным контрастом, у кого-то сенсорный ввод без наведения курсора, у кого-то мышь. У парка профилей всё стоит по умолчанию и одинаково — светлая тема, полная анимация, обычный контраст, одна и та же плотность пикселей. Ниже — какие именно параметры читаются, как они превращаются в ключ кластеризации и как построить правдоподобное распределение настроек по парку. Тема примыкает к материалам про аппаратный отпечаток железа и про Canvas и WebGL.
Что именно читает сайт
Механизм тривиален: страница спрашивает браузер, выполняется ли то или иное условие оформления, и получает ответ. Никаких разрешений, никаких задержек, никаких следов. Снимаются, как минимум:
- Предпочитаемая цветовая схема. Светлая или тёмная. Самый массовый и самый информативный из группы, потому что тёмную тему включает существенная часть аудитории, и доля эта продолжает расти.
- Уменьшенная анимация. Настройка доступности, которую включают люди, чувствительные к движению на экране, и те, кто экономит ресурсы слабой машины.
- Предпочтение по контрасту. Повышенный, пониженный или без предпочтений. Включается в системных настройках доступности.
- Режим принудительных цветов. Системная схема высокой контрастности, полностью переопределяющая палитру сайта.
- Тип указателя и возможность наведения. Точный указатель мыши, грубый указатель пальца или его отсутствие; наличие или отсутствие состояния наведения. Эти два параметра прямо разделяют настольные машины и сенсорные устройства.
- Разрешение и плотность пикселей. Ширина и высота области просмотра, коэффициент масштабирования, глубина цвета. Самая старая часть набора и по-прежнему одна из самых информативных.
- Ориентация экрана и соотношение сторон. Дополнительный слой, особенно значимый для мобильных профилей.
По отдельности каждый параметр даёт немного. В сумме они формируют вектор, который отлично работает и как признак класса устройства, и как ключ для склейки визитов.
Настройки оформления задумывались как забота о пользователе, а превратились в бесплатный опросник. Тёмная тема, уменьшенная анимация, повышенный контраст — это не про дизайн, это про то, что у человека есть привычки, а у парка профилей их нет.
Почему значения по умолчанию выдают парк
Тёмная тема как основной разделитель
Цветовая схема — главный параметр этой группы просто потому, что её меняют массово. Переключение на тёмное оформление стало обычной практикой: кто-то включает его на ночь, кто-то держит постоянно, у части устройств оно вовсе задано по умолчанию системой. Живая аудитория делится на два больших лагеря с ощутимыми долями. Парк профилей, где все до единого приходят в светлой теме, воспроизводит только один лагерь — и это заметно на любой сколько-нибудь заметной выборке визитов.
Настройки доступности как редкий, но значимый слой
Уменьшенная анимация, повышенный контраст и принудительные цвета встречаются реже, но встречаются регулярно: их включают не только люди с особенностями восприятия, но и владельцы слабых машин, и те, кто просто не любит движение на экране. Полное отсутствие таких профилей в парке означает, что ваша аудитория устроена не так, как настоящая. Это тонкий, но устойчивый статистический признак.
Указатель и наведение как проверка класса устройства
Эта пара параметров ценна не разбросом, а согласованностью. Мобильное устройство отдаёт грубый указатель и отсутствие полноценного наведения, настольное — точный указатель и наличие наведения. Профиль, который заявляет смартфон в user-agent, но сообщает о точном указателе и рабочем наведении, противоречит сам себе на уровне одной проверки. Это та же категория ошибок, что и рассинхрон в других слоях, разобранный в материале про часовой пояс и язык.
Разрешение и плотность пикселей
Старый добрый параметр, который многие считают закрытым, но закрывают его небрежно. Типовые ошибки: круглые «идеальные» разрешения у всего парка, плотность пикселей строго единица у всех, нулевые отступы под системные панели, размер окна, в точности равный размеру экрана. У живого человека окно браузера почти никогда не совпадает с экраном идеально: есть панель задач, есть закладки, есть немного изменённый размер окна. Набор из точных круглых чисел — сам по себе маркер синтетики.
Таблица: параметры оформления и что они выдают
| Параметр | Что показывает | Картина у парка без настройки |
|---|---|---|
| Цветовая схема | привычка пользователя, иногда настройка системы | светлая у всех без исключения |
| Уменьшенная анимация | особенности восприятия или слабая машина | выключена у всех |
| Предпочтение по контрасту | настройки доступности системы | без предпочтений у всех |
| Принудительные цвета | режим высокой контрастности | отсутствует у всех |
| Указатель и наведение | класс устройства: сенсор или мышь | настольные значения при мобильной легенде |
| Разрешение и плотность | экран и масштабирование системы | круглые числа, плотность строго единица |
Самая дорогая строка здесь предпоследняя. Разброс по цветовой схеме можно отладить постепенно, а вот противоречие между указателем и заявленным классом устройства ломает профиль сразу и целиком, потому что проверяется дешевле всего остального в таблице.
Как антифрод использует эти параметры
- Снятие вектора. Скрипт опрашивает все доступные условия оформления и складывает ответы в короткую битовую строку, дополняя её размерами и плотностью.
- Кластеризация. Визиты группируются по совпадению вектора. Параметров немного, поэтому сам по себе вектор редко уникален, но в связке с прочими отпечатками он резко сужает группу.
- Статистический контроль. Сравниваются доли значений в вашем трафике и в трафике ресурса в целом. Полное отсутствие тёмной темы на заметном объёме визитов — статистическая аномалия, не требующая анализа отдельных сессий.
- Проверка согласованности. Указатель, наведение, ориентация и разрешение сверяются с user-agent, набором медиаустройств и аппаратным отпечатком.
- Поиск невозможных сочетаний. Например, принудительные цвета без повышенного контраста, или мобильная ориентация при настольном разрешении и точном указателе.
- Проверка стабильности. У живого профиля эти настройки почти не меняются. Смена цветовой схемы возможна, но она либо привязана ко времени суток при автопереключении, либо происходит редко.
Почему этот сигнал недооценивают
Причина в том, что он выглядит слишком простым. Одно логическое значение не кажется серьёзной уликой на фоне графических отпечатков с их десятками параметров. Но работает он иначе: не как идентификатор конкретной машины, а как индикатор популяции. Антифроду не нужно вычислить, что визит номер триста двадцать сделан ботом; ему достаточно увидеть, что в потоке из тысяч визитов на ресурс доля тёмной темы внезапно проваливается в ноль. Дальше вопрос лишь в том, чтобы отделить эту подгруппу от остальных, а для этого уже используются все прочие признаки. Логика ровно та же, что с аномалиями в поведенческих метриках, разобранными в материале про сегмент роботности в метрике.
Таблица: живая аудитория против парка профилей
| Признак | Живая аудитория | Парк без настройки |
|---|---|---|
| Доля тёмной темы | значительная и устойчивая | нулевая |
| Уменьшенная анимация | небольшая, но ненулевая доля | отсутствует полностью |
| Повышенный контраст | редко, но регулярно встречается | не встречается ни разу |
| Плотность пикселей | множество значений, в том числе дробных | строго единица у всех |
| Размер окна | почти никогда не равен экрану точно | совпадает с экраном идеально |
| Указатель и наведение | согласованы с классом устройства | настольные значения при любой легенде |
Как настраивать оформление правильно
Распределение по парку как в реальной популяции
Основной принцип тот же, что и в остальных параметрах этой группы: цель — не уникальность профиля, а правильная форма статистики по парку. Значит, части профилей назначается тёмная схема, части светлая, причём доли выбираются так, чтобы напоминать картину живой аудитории. Небольшой доле включается уменьшенная анимация, ещё меньшей — повышенный контраст, единицам — принудительные цвета. Экзотика должна быть редкой, но присутствовать: её полное отсутствие так же неестественно, как её изобилие.
Логичные сочетания внутри профиля
Настройки связаны между собой. Принудительные цвета обычно идут вместе с повышенным контрастом, потому что включаются одним системным режимом. Уменьшенная анимация чаще встречается там, где машина слабая, а значит, должна коррелировать с более скромным аппаратным отпечатком. Тёмная схема у мобильного профиля вероятнее, чем у настольного, потому что на телефонах её включают охотнее. Профиль обязан выглядеть как один человек с одним набором привычек, а не как случайная выборка галочек.
Согласованность с классом устройства
Указатель, наведение, ориентация, разрешение и плотность обязаны описывать тот же аппарат, что user-agent, набор медиаустройств и аппаратный отпечаток. Мобильный профиль — грубый указатель, отсутствие полноценного наведения, вертикальная ориентация, дробная плотность пикселей, разрешение из реального модельного ряда. Настольный — точный указатель, наведение, горизонтальная ориентация. Эта проверка занимает секунды, а стоит ошибка дорого, поэтому её место — в предстартовом контроле, вместе со сверкой языка и региона выхода.
Реалистичные размеры окна
Отдельная и часто забываемая деталь. Размер области просмотра у живого пользователя всегда меньше размера экрана: часть занимает системная панель, часть — интерфейс браузера, часть теряется, если окно не развёрнуто на весь экран. Разница между экраном и областью просмотра должна быть, она должна быть разной у разных профилей и правдоподобной по величине. Совпадение размеров до пикселя — типовой признак безголового окружения, о котором подробнее шла речь в материале про навигатор и признаки автоматизации.
Стабильность с редкими осмысленными изменениями
Настройки оформления у человека стабильны месяцами. Допустимое исключение — автоматическое переключение цветовой схемы по времени суток: оно существует и встречается, но тогда переключение обязано быть привязано к вечерним часам в часовом поясе профиля, а не происходить в случайный момент. Любая другая динамика подозрительна: люди не меняют настройки контраста между двумя визитами на один сайт.
Чек-лист проверки
- Снимите вектор параметров оформления с пяти-шести профилей и сравните между собой.
- Посчитайте по всему парку долю профилей с тёмной схемой — нулевая доля означает отсутствие настройки.
- Проверьте, что параметры доступности встречаются хотя бы у небольшой части профилей.
- Сверьте указатель и наведение с классом устройства, заявленным в user-agent.
- Проверьте плотность пикселей: строго единица у всего парка — признак шаблона.
- Сравните размер экрана и размер области просмотра: они не должны совпадать до пикселя.
- Повторите замер через несколько дней: вектор у профиля должен остаться прежним.
Разбор кейса: парк, в котором не было ночи
Проект продвигался по конкурентным запросам и был неплохо подготовлен технически: подменённая графика, аккуратный сетевой слой, долгоживущие профили с прогретыми адресами, вариативное поведение. Тем не менее эффект оказался ниже ожидаемого, а со временем часть визитов явно перестала учитываться. Разбор по стандартному чек-листу отпечатков ничего не выявил: профили были уникальны и согласованы по всем привычным параметрам.
Расхождение нашли, когда посмотрели на парк не по отдельным профилям, а статистически. Выяснилось, что у всех профилей без исключения светлая цветовая схема, ни у одного не включена уменьшенная анимация и ни у одного нет предпочтений по контрасту. Плотность пикселей у всего парка была ровно единицей, а размер области просмотра совпадал с размером экрана до пикселя, потому что браузеры запускались развёрнутыми и без учёта системных панелей. По отдельности каждая из этих деталей мелочь, а вместе они описывали аудиторию, которой не существует.
Правку сделали за несколько дней и она оказалась дешёвой. Профилям раздали цветовые схемы в пропорции, приближённой к живой картине, небольшой части включили уменьшенную анимацию и повышенный контраст, плотность пикселей развели по реальным значениям под легенды устройств, а размеры окна стали задавать со случайным, но правдоподобным вычетом относительно экрана. Указатель и наведение увязали с классом устройства и внесли проверку в предстартовый контроль. Динамика начала восстанавливаться в течение нескольких недель. Урок здесь не в самих настройках: парк проверяют не только по отдельным профилям, но и по статистике целиком, поэтому смотреть на свой трафик глазами аналитика полезнее, чем перебирать параметры по одному.
Частые ошибки
- Оставлять все настройки по умолчанию. Светлая тема, полная анимация и обычный контраст у всего парка сразу создают статистическую аномалию.
- Игнорировать указатель и наведение. Точный указатель при мобильной легенде — противоречие, ловящееся одной проверкой.
- Ставить плотность пикселей единицей всем. У реальных устройств она разная и часто дробная, единый коэффициент выдаёт шаблон.
- Делать окно равным экрану. У живого пользователя область просмотра всегда меньше экрана из-за панелей и интерфейса браузера.
- Раздавать настройки случайно. Сочетания связаны между собой, случайный жребий даёт комбинации, которых у людей не бывает.
Частые вопросы
Неужели один логический параметр вроде тёмной темы имеет значение? Сам по себе — почти нет. Значение имеет его доля в вашем трафике: полное отсутствие тёмной схемы на заметном объёме визитов выглядит как аномалия популяции, а дальше подгруппа отделяется по прочим признакам.
Какую долю тёмной темы задавать? Точную цифру называть не берусь, и слепо копировать чужие числа не стоит. Правильный путь — посмотреть на распределение в собственной аналитике сайта, который продвигается, и ориентироваться на его реальную аудиторию, а не на абстрактный средний показатель.
Закрывают ли эти параметры антидетект-браузеры? Разрешение и плотность закрывают почти все, указатель и наведение — многие, а вот цветовую схему и настройки доступности трогают заметно реже. Как обычно, ориентироваться нужно на собственный замер, а не на описание инструмента.
Снимают ли проблему реальные устройства? В значительной степени да: у живых аппаратов настройки оформления настоящие и разные, особенно если устройства принадлежат разным людям. Но при работе с фермой одинаково настроенных устройств проблема возвращается, поэтому распределение настроек стоит контролировать и там.
Вывод
Медиапараметры оформления читаются любой страницей мгновенно и без разрешений, а сообщают они не про машину, а про человека: предпочитает ли он тёмную тему, нужна ли ему уменьшенная анимация, включён ли повышенный контраст, чем он тыкает в экран — мышью или пальцем, какой у него экран и с каким масштабированием. У живой аудитории эти значения дают устойчивое пёстрое распределение с большой долей тёмной темы и небольшими, но ненулевыми долями настроек доступности, а у парка профилей всё стоит по умолчанию и одинаково, плотность пикселей строго единица, а область просмотра совпадает с экраном до пикселя. Опасность здесь не в уникальности отдельного значения, а в статистике: ноль тёмной темы на тысячах визитов — аномалия популяции, которую видно без анализа отдельных сессий. Лечится это дёшево и быстро — распределением схем и настроек доступности по парку в пропорциях, близких к реальной аудитории продвигаемого сайта, логичными сочетаниями внутри каждого профиля, жёсткой увязкой указателя, наведения, ориентации, разрешения и плотности с заявленным классом устройства, правдоподобной разницей между экраном и окном и стабильностью вектора во времени. И общий принцип, который стоит вынести за пределы этой темы: свой парк полезно регулярно рассматривать не как набор профилей, а как аудиторию — именно так на него смотрит антифрод.
Больше о поведенческом продвижении и других услугах — на главной странице ProfSEO24.
Закажите накрутку ПФ в ProfSEO24
Выводим сайты в ТОП-1 Яндекса за счёт поведенческих факторов на базе ИИ — без риска фильтров. Более 300 сайтов в ТОП-1, первые сдвиги по позициям за 3 дня. Рассчитаем стоимость под вашу нишу и регион.
Заказать накрутку ПФ Написать в TelegramКомментарии
Захар Мельничук
Выгрузил вектор по всему парку: светлая тема у ста процентов профилей, анимация полная у ста процентов, плотность единица у ста процентов. Три ровных единицы подряд — это же готовая подпись.
Admin
Именно так это и выглядит со стороны. Начните с плотности пикселей и размеров окна — они правятся быстрее всего и дают самый заметный эффект на статистике. Цветовую схему можно разводить постепенно, порциями, чтобы доля тёмной темы в вашем трафике росла плавно, а не скачком за одну ночь.
Аглая Ветрова
Размер окна, равный размеру экрана, — вот это отрезвляет. У меня же браузер всегда запускается развёрнутым, и панель задачи никак не учитывается. У живого человека такого не бывает почти никогда.
Ростислав Панкратов
Точный указатель при мобильном user-agent — классика, которую я почему-то пропускал. Телефон не умеет наводить курсор, это физика, а не настройка.
Марьяна Дубровская
Вопрос: какую долю тёмной темы ставить? В интернете гуляют очень разные цифры, боюсь промахнуться в любую сторону.
Admin
Не берите чужие цифры вообще. У вас есть точный источник — аналитика самого продвигаемого сайта: посмотрите, какая доля тёмной схемы в его живом трафике, и целиться надо в неё. Аудитория интернет-магазина инструментов и аудитория сервиса для разработчиков отличаются по этому параметру заметно, средняя цифра не подойдёт ни той, ни другой.
night_mode_on
Настройки доступности — совсем неочевидный слой. Уменьшенная анимация и повышенный контраст встречаются редко, но регулярно. Ноль таких профилей на большом парке действительно странно выглядит.
Илья Бочкарёв
Мысль про то, что парк надо смотреть глазами аналитика, а не отладчика, для меня главная в статье. Я всегда проверял профили по одному и в упор не видел статистику целиком.
Виолетта Загорулько
А можно сделать автопереключение тёмной темы по времени суток, как в системе? Или это лишняя динамика?
Admin
Можно, такое поведение существует и у людей. Но привязывать переключение нужно к часовому поясу профиля, а не к времени вашего сервера. Профиль, который переходит в тёмную схему в три часа дня по своему заявленному региону, вызывает больше вопросов, чем профиль без всякого переключения. И делать это стоит не всем, а части парка.
Марк Островерхов
Связь уменьшенной анимации со слабой машиной — тонко подмечено. Если профиль заявляет мощное железо и при этом просит убрать анимацию, сочетание странноватое.
Раиса Гончаренко
Плотность пикселей у реальных телефонов почти всегда дробная, а у нас у всех ровная единица. Это же было видно невооружённым глазом, просто никто не смотрел.
Аскар Джумагулов
Если раздать настройки случайно, разброс появится. Но статья предупреждает, что сочетания связаны. Какие связки критичнее всего не нарушать?
Admin
Три связки в порядке важности. Первая — указатель, наведение, ориентация и разрешение с классом устройства: нарушение видно сразу и стоит дороже всего. Вторая — принудительные цвета вместе с повышенным контрастом, они включаются одним системным режимом. Третья — разрешение и плотность должны давать размер экрана, который существует у реальных моделей, а не любое число из головы.
Лев Тумаков
Понравилось, что параметр описан не как идентификатор машины, а как индикатор популяции. Это принципиально другой способ детекта, и защищаться от него надо иначе.
Эвелина Сташевская
Добавлю от себя: удобно держать набор готовых профилей оформления под конкретные модели устройств. Один раз собрал связку разрешение плюс плотность плюс указатель и потом просто назначаешь её профилю.
Гавриил Луценко
Проверил размеры на своих: вычет относительно экрана есть, но одинаковый у всех до пикселя. То есть одну аномалию поменял на другую. Пошёл делать разброс.
Admin
Классическая ловушка: любое константное значение на весь парк работает как ключ склейки, даже если само по себе оно правдоподобное. Разброс делайте не чисто случайным, а вокруг нескольких типовых величин — панель задач, панель закладок, свёрнутое или развёрнутое окно дают разные, но повторяющиеся вычеты. Тогда и разнообразие появится, и каждое отдельное значение останется осмысленным.
Виргиния Домбровская
Сотрудничаю с ProfSEO24 не первый месяц и ценю прежде всего спокойный тон: не обещают мгновенных результатов, объясняют, от чего зависит срок, и сразу называют риски. После нескольких подрядчиков с бодрыми лозунгами такое общение воспринимается как глоток воздуха.