Руководство по интеграции согласия на cookie для тепловых карт и записей сессий Hotjar: план 2026 года для издателей

Hotjar занимает уникальное место в стеке инструментов. Это не платформа веб-аналитики, как Google Analytics, не платформа продуктовой аналитики, как Amplitude или Mixpanel, и не тег-менеджер. Это инструмент исследования пользовательского опыта, существующий специально для записи того, что отдельные пользователи делают на странице — куда они двигают мышь, на что нажимают, где прокручивают, где колеблются и, в случае записи сессий, что именно они набирали и видели отображённым на экране. Эта гранулярность — это продукт. Это также причина, почему регуляторы выделили воспроизведение сессий как одну из категорий поведенческой обработки с наивысшим риском, и почему неосторожное развёртывание Hotjar — один из самых лёгких способов для иначе соответствующего веб-сайта выпасть из соответствия. CNIL, Garante и EDPB все опубликовали руководство, специально нацеленное на поведение воспроизведения сессий, а целевая группа EDPB по баннерам cookie 2026 года рассматривает это как приоритетную категорию. Хорошая новость в том, что Hotjar — один из лучше спроектированных инструментов в категории для развёртывания, ставящего согласие на первое место — при условии, что издатель действительно использует существующие элементы управления.

Почему Hotjar требует явного согласия

Профиль сбора Hotjar — это то, что запускает обязательства согласия во всех важных рамках. При инициализации по умолчанию скрипт отслеживания Hotjar записывает как минимум три первичных cookie — _hjSessionUser_{siteId}, _hjSession_{siteId} и серию cookie подавления и входного источника — в браузер в течение миллисекунд после загрузки страницы. Затем скрипт начинает непрерывно передавать запись координат курсора, координат нажатия, позиции прокрутки, размера вьюпорта и, если запись сессий включена, полный отображённый DOM, сравнённый с базовой линией.

По статье 5(3) Директивы ePrivacy каждый из этих cookie является операцией хранения и доступа, требующей предварительного, свободно данного, конкретного, информированного и однозначного согласия в ЕЭП, Великобритании, Швейцарии и любой юрисдикции, импортировавшей тот же стандарт. По GDPR поведенческий поток составляет обработку персональных данных, потому что комбинация следа курсора, IP-адреса, цифрового отпечатка устройства и идентификатора сессии достаточна для выделения лица. По CCPA и CPRA тот же сбор считается продажей или обменом, если издатель не имеет соответствующего контракта поставщика услуг с Hotjar — который Hotjar предлагает через свой CCPA-совместимый DPA, но он вступает в силу только когда интеграция настроена правильно. По руководству EDPB по воспроизведению сессий планка ещё выше: воспроизведение должно быть привязано к конкретной законной цели исследования UX, период хранения должен быть минимально необходимым, а субъект данных должен быть проинформирован не только о том, что записи существуют, но и о том, что его собственная сессия может быть воспроизведена аналитиком.

Что Hotjar собирает до согласия — и что должно быть подавлено

Самая распространённая ошибка реализации — это та, что поставляется с собственным быстрым стартом Hotjar: вставка скрипта отслеживания напрямую в <head> страницы. Это работает, но загружает Hotjar до того, как баннер cookie даже отобразился, что означает, что cookie устанавливаются и поведенческая запись начинается при самом первом просмотре страницы — независимо от того, что пользователь позже решит. Каждый регулятор ЕС, принявший решение по этому шаблону, принял одно и то же решение: cookie, установленные до согласия, незаконны, и издатель несёт ответственность.

Соответствующая интеграция должна поэтому предотвращать загрузку скрипта Hotjar вообще, пока соответствующая категория согласия не будет дана. Самый чистый способ сделать это — обернуть фрагмент Hotjar в <script> тег, обусловленный согласием, который CMP внедряет только после того, как пользователь выбрал категорию аналитики или продуктового исследования. Если скрипт загружается через тег-менеджер, эквивалент — установить триггер на событие предоставления согласия, а не на All Pages. Собственная документация Hotjar теперь явно рекомендует этот шаблон, и платформа раскрывает API hj('consent', 'grant') для случаев, когда скрипт должен присутствовать, но оставаться спящим, пока согласие не записано.

Cookie и хранилище, которое записывает Hotjar

Код отслеживания Hotjar 6.x записывает следующие идентификаторы, все из которых необязательны и требуют согласия: _hjSessionUser_{siteId} со сроком 365 дней, содержащий идентификатор пользователя, _hjSession_{siteId} со сроком 30 минут, содержащий идентификатор сессии, _hjFirstSeen, _hjIncludedInSessionSample_{siteId}, _hjAbsoluteSessionInProgress и ряд cookie атрибуции кампаний, когда опросы или виджеты обратной связи активны. Сами записи сессий хранятся на серверах Hotjar и привязаны к идентификатору сессии — поэтому отзыв согласия должен также сигнализировать запрос на удаление через API Hotjar или внутрипродуктовый поток удаления пользователя.

Сопоставление Hotjar с рамками согласия

Hotjar нативно не интегрируется с IAB TCF или IAB Global Privacy Platform. Это не рекламно-технологический поставщик и никогда не задумывался быть им. Однако он интегрируется с Google Consent Mode v2 через сигнал analytics_storage и раскрывает собственный нативный API согласия, с которым может связаться любая CMP. Шаблон, переживающий проверку регулятора, рассматривает каждую возможность Hotjar как отдельные ворота согласия.

Шаблон интеграции, который работает

Эталонное развёртывание имеет четыре части: CMP, раскрывающий событие изменения согласия в реальном времени, отложенный загрузчик скрипта, внедряющий фрагмент Hotjar только после срабатывания согласия на аналитику, слой подавления записи сессий, по умолчанию отключающий запись, пока не откроются отдельные ворота, и конфигурация маскирования ввода, жёстко подавляющая любое поле, которое регулятор счёл бы чувствительным, даже когда согласие дано. Четвёртый пункт часто упускается: маскирование ввода не является заменой согласия, но является заменой катастрофы, когда согласие дано для законного исследования, а пользователь случайно вставляет чувствительные данные в свободное текстовое поле.

Веб-реализация

В вебе самый чистый шаблон — подписаться на событие изменения согласия CMP, затем условно внедрить фрагмент Hotjar, когда цель аналитики переключается с false на true. Используйте document.createElement('script') для внедрения кода отслеживания с установленным атрибутом async и прикрепите обработчик onload, который вызывает hj('identify', userId, properties) только если существует проверенный сервером идентификатор пользователя. Когда согласие отозвано, вызовите hj('consent', 'revoke'), истеките все _hj cookie через document.cookie и отправьте запрос на удаление через Hotjar Data API для предыдущих записей сессий пользователя. Не инициализируйте Hotjar лениво в том же проходе отрисовки, что и баннер — скрипт должен ждать явного предоставления, а предоставление должно быть записано с временной меткой и строкой согласия до того, как скрипт когда-либо сработает.

Маскирование ввода и подавление чувствительных данных

Записывающее устройство сессий Hotjar поставляется с тремя режимами маскирования: режим подавления, который является стандартным для полей пароля и любого элемента, помеченного атрибутом data-hj-suppress; режим белого списка, где записываются только явно опт-ин вводы; и режим маски, где нажатия клавиш записываются как звёздочки. По правилам специальных категорий GDPR и определению чувствительной персональной информации CCPA, любое поле, которое может захватить информацию о здоровье, финансовые детали, государственные идентификаторы, биометрические данные, точную геолокацию или содержимое частных коммуникаций, должно использовать режим подавления независимо от состояния согласия пользователя. Установка data-hj-suppress на уровне формы, а не на уровне поля, является самым безопасным шаблоном — это подавляет всю форму, даже если разработчик позже добавит новое поле, которое забудет пометить отдельно.

Одностраничные приложения и изменения маршрута

Для SPA (React, Vue, Angular, Svelte) фрагмент Hotjar по умолчанию привязывается только к первоначальной загрузке страницы. Чтобы отслеживать виртуальные переходы страниц, загрузка должна вызывать hj('stateChange', newPath) при каждом изменении маршрута. Этот вызов уважает любое состояние согласия, которое Hotjar держит в это время, поэтому логику обусловливания CMP не нужно дублировать — но изменение маршрута не должно само запускать свежую загрузку скрипта, если согласие было отозвано между просмотрами страниц.

Проверка интеграции

Шаг проверки — это то, что проверяют регуляторы и что издатели чаще всего пропускают. Правильно интегрированное развёртывание Hotjar должно пройти четыре теста по порядку. Во-первых, свежая сессия браузера с показанным баннером, но без сделанного выбора, должна производить ноль запросов к static.hotjar.com, script.hotjar.com или vars.hotjar.com и ноль _hj cookie в document.cookie. Во-вторых, отказ от аналитики должен сохранять это состояние — без загрузки скрипта, без записи, без cookie. В-третьих, принятие аналитики должно производить загрузку скрипта и ожидаемые cookie _hjSessionUser и _hjSession с правильными атрибутами SameSite, а запись тепловой карты должна появиться на панели Hotjar в течение пяти минут. В-четвёртых, отзыв согласия после факта должен немедленно остановить дальнейшую запись, истечь cookie и запустить запрос на удаление — задержанная очистка является находкой.

Аудиторский след имеет значение отдельно. Регуляторы ожидают, что издатель сможет доказать для любой данной записи в аккаунте Hotjar, что пользователь, сгенерировавший её, дал действительное согласие в момент захвата. Стандартный шаблон — встроить версию согласия и временную метку как пользовательский атрибут в запись пользователя Hotjar через hj('identify', userId, { consent_version: 'v3', consent_ts: ts }). Это делает любую конкретную запись отслеживаемой назад к конкретной записи журнала согласия, что является стандартом, установленным EDPB, и стандартом, который издатели должны принять независимо от того, где они работают. Правильно обусловленное развёртывание в сочетании с маскированием ввода, подавляющим по умолчанию, и путём удаления, активирующимся при отзыве, — это то, что делает Hotjar защитимой частью исследовательского стека, а не угрозой соответствия.

← Блог Читать все →