Руководство по интеграции согласия на cookie для записи сессий Microsoft Clarity на 2026 год
Microsoft Clarity запущен в 2020 году как бесплатная, без квот альтернатива Hotjar и Smartlook для записи сессий, тепловых карт и аналитики взаимодействий. Пять лет спустя он стоит на значимой доле сайтов среднего и малого бизнеса по всему миру, отчасти потому что он действительно полезен, а отчасти потому что установка — это одна строка JavaScript, которую большинство операторов вставляют без дальнейших раздумий. С точки зрения приватности эта лёгкость установки и есть проблема. Clarity записывает движения мыши, поведение прокрутки, клики, нажатия клавиш, взаимодействия с формами и полные снимки DOM страницы — самую плотную поведенческую полезную нагрузку из всех распространённо развёрнутых инструментов аналитики — и пересылает всё на серверы Microsoft в момент загрузки скрипта. Для любого развёртывания, затрагивающего трафик ЕС, Великобритании, ЕЭЗ, Бразилии или Калифорнии, установка по умолчанию несоответствует, и регуляторы, наиболее активные в исполнении по записи сессий — CNIL, итальянский Garante, британский ICO — были явны, что анализ применяется независимо от ценового уровня инструмента или вендора. Это руководство проходит через то, что записывает Clarity, как работает граница согласия и паттерн интеграции, который переживает аудит.
Что Clarity на самом деле записывает
SDK Clarity (загружаемый из www.clarity.ms/tag/{project_id}) инициализирует глобальный объект clarity и идентифицирует посетителей с помощью принадлежащего Microsoft cookie под названием _clck, наряду с сессионным cookie _clsk. С этого момента скрипт захватывает плотный поведенческий поток:
- Ввод мыши и касаний — каждое движение, клик, тап, прокрутка и жест записываются с временной меткой и координатами.
- Взаимодействия с формами — события focus, blur и ввода в каждом поле формы, плюс текст нечувствительных полей, если маскирование не настроено.
- Снимки DOM — периодические полные снимки DOM страницы, чтобы воспроизведение сессии могло реконструировать точное визуальное состояние в любой момент.
- Пользовательские события — любые события, которые приложение явно испускает через вызовы clarity("event", "name").
- Данные о производительности и ошибках — ошибки JavaScript, сетевые сбои и тайминги core web vitals.
- Идентификационные данные — принадлежащий Clarity cookie плюс геолокация на основе IP и снятие отпечатков по user-agent.
Комбинация — в частности, снимки DOM и захват полей формы — делает Clarity функционально эквивалентным видеозаписи сессии посетителя. Регуляторная классификация по GDPR проста: это обработка персональных данных, cookie неосновные, данные пересекают границы к американской инфраструктуре Microsoft, а требуемое законное основание — согласие. Руководство CNIL 2024 года по записи сессий однозначно по этому вопросу и явно называет инструменты в категории Clarity.
Риск чувствительных данных
Инструменты записи сессий имеют специфическую опасность приватности, которой нет у других инструментов аналитики: они могут захватывать чувствительные персональные данные случайно. Пользователь, вводящий номер кредитной карты, состояние здоровья, религиозную принадлежность или национальный идентификатор в любое поле формы, записывается Clarity, если поле не явно замаскировано. По GDPR это обработка чувствительных персональных данных Статьи 9, которая требует явного opt-in согласия и редко покрывается общим решением о маркетинговом согласии.
Clarity поддерживает конфигурацию маскирования контента, которая скрывает конкретные поля от записи, но поведение по умолчанию захватывает всё. Защищаемый при аудите подход — маскировать агрессивно — предполагать, что каждое поле формы чувствительно, пока не доказано обратное — и документировать решения о маскировании явно.
Нативные средства управления приватностью Clarity
Microsoft инвестировал в средства управления приватностью Clarity за последние два года. Платформа теперь предоставляет несколько примитивов, которые интеграция CMP может использовать.
Атрибут mask
Добавление data-clarity-mask="true" к элементу DOM скрывает его содержимое от записи сессии. Добавление data-clarity-unmask="true" к дочернему элементу переопределяет маску для этого поддерева. Правильное значение по умолчанию для любого поля формы, которое может содержать персональные данные, — маскировать, затем явно размаскировать там, где это безопасно.
API согласия
Clarity предоставляет вызов clarity("consent"), который при вызове сигнализирует, что согласие предоставлено и SDK должен продолжить. Без этого вызова SDK можно настроить на остановку после начальной загрузки. Это правильный примитив для интеграции CMP на стороне активации.
Маскирование IP и обработка идентификаторов
Настройки проекта Clarity предоставляют опции для усечения IP и маскирования идентификаторов. Их включение — это мера защиты в глубину поверх гейтинга CMP; она не заменяет согласие.
Авто-маскирование чувствительного контента
Недавние релизы Clarity пытаются авто-обнаруживать чувствительные поля (паттерны кредитных карт, поля паролей, поля с именем "ssn" или подобным) и маскировать их по умолчанию. Обнаружение эвристично и неполно; не полагайтесь на него как на единственную линию защиты.
Пошаговая интеграция CMP
Надёжная архитектура — полностью отложить SDK Clarity до предоставления согласия, затем активировать его явно через API согласия.
1. Удалите тег по умолчанию из head документа
Сниппет установки Clarity — это один встроенный скрипт, который инициализирует SDK при загрузке страницы. Замените его элементом скрипта-заполнителя, чей type равен text/plain, а data-category — analytics или marketing в зависимости от того, как ваша CMP категоризирует инструменты записи сессий.
2. Решите о сопоставлении категорий
Запись сессий — спорная категория. CNIL трактовал её по-разному как аналитику (когда данные используются для внутренних исследований UX) и как маркетинг (когда данные питают решения о персонализации или внешний обмен). Консервативное сопоставление — маркетинг; защищаемая при аудите позиция требует, чтобы вы были конкретны в том, как записи фактически используются.
3. Настройте агрессивное маскирование до активации
Добавьте data-clarity-mask="true" к каждому элементу формы, каждому полю ввода, каждому контейнеру, который может содержать персональные данные. Политика по умолчанию — маскировать-по-умолчанию с явными исключениями размаскирования для элементов, известных как безопасные (заголовки страниц, метки навигации, блоки публичного контента).
4. Активируйте Clarity из колбэка согласия
Когда CMP запускает соответствующее событие принятия категории, перепишите тег скрипта-заполнителя и вызовите clarity("consent"), чтобы предоставить SDK разрешение продолжить. Поставленные в очередь события, которые буферизировались в период до согласия, затем сбросятся.
5. Обрабатывайте отзыв явно
Если пользователь отзывает согласие, SDK Clarity не имеет чистого вызова "остановить запись", эквивалентного API активации. Практический паттерн — вызвать clarity("consent", false), если поддерживается в вашей версии SDK, и дополнительно очистить cookie Clarity на стороне клиента. Для полного удаления исторических записей используйте рабочий процесс удаления данных в админ-интерфейсе Clarity или API удаления.
Распространённые ловушки
Четыре ошибки интеграции составляют большинство находок аудита по развёртываниям Clarity.
Установка Clarity "просто чтобы посмотреть, что делают посетители"
Самый распространённый паттерн: продукт-менеджер устанавливает Clarity для исследования проблемы UX, никогда не включает гейтинг согласия, никогда не настраивает маскирование и забывает о скрипте. Поверхность записи продолжает накапливаться. Исправление — либо полностью удалить Clarity, либо привести его под ту же архитектуру согласия, что и все остальные трекеры.
Доверие авто-маскированию
Эвристическое обнаружение чувствительных полей Clarity ловит очевидные случаи, но пропускает специфичные для домена — текстовое поле "симптомы" на сайте здравоохранения, поле "номер счёта" на финансовом сайте с идиосинкразическим именем. Маскируйте явно; не полагайтесь на обнаружение.
Трактовка записи сессий как аналитики
CNIL был явен, что категория записи сессий ближе к маркетингу, чем к первичной аналитике с точки зрения согласия. Гейтинг Clarity под только аналитическим согласием защитим только если записи используются исключительно для внутренних исследований UX и никогда не передаются за пределы организации.
Забывание о полезных нагрузках пользовательских событий
Код приложения, который вызывает clarity("event", "name", customProperties), может утечь персональные данные в поток Clarity через полезную нагрузку customProperties. Проверьте каждое место вызова и избегайте передачи идентификаторов пользователей, адресов электронной почты или любых персональных данных в свойствах событий.
Чек-лист аудита
Шесть конкретных вопросов, на которые нужно ответить для любого развёртывания Clarity, затрагивающего трафик ЕС, Великобритании, Бразилии или Калифорнии.
- Ждёт ли Clarity согласия? Откройте страницу в приватном окне и подтвердите, что никакие запросы clarity.ms не срабатывают до принятия баннера.
- Агрессивно ли маскирование? Подтвердите, что к каждому полю формы и каждому контейнеру с потенциально персональным контентом применён data-clarity-mask.
- Задокументировано ли сопоставление категорий? Подтвердите наличие письменной записи о том, гейтится ли Clarity под аналитикой или маркетингом, с обоснованием.
- Подключён ли API согласия? Подтвердите, что колбэк CMP вызывает clarity("consent") при предоставлении и эквивалент при отзыве.
- Проверены ли пользовательские события? Подтвердите, что вызовы clarity("event", ...) не передают идентифицирующие или чувствительные данные в полезных нагрузках свойств.
- Автоматизировано ли удаление? Подтвердите, что запросы DSAR запускают рабочий процесс удаления Clarity, а не ручной тикет поддержки.
Где Clarity вписывается в стек с приоритетом согласия
Запись сессий — поверхность поведенческого отслеживания наивысшей информационной плотности в распространённом развёртывании, и Clarity — инструмент, который демократизировал её наиболее агрессивно. Бесплатный ценовой уровень и установка без трения делают его путём наименьшего сопротивления для любой команды, которая хочет видимости в поведение UX. Та же установка без трения и делает Clarity наиболее часто неправильно настроенным инструментом аналитики в аудитах 2026 года. Правильная архитектура трактует Clarity как любой другой идентифицирующий трекер: гейтить его за явным согласием, маскировать поля формы агрессивно по умолчанию, документировать сопоставление категорий и подключать API согласия, чтобы собственные примитивы SDK обеспечивали то, что записала CMP. Сделанное правильно, ценность исследования UX, ради которой инструмент был куплен, сохраняется, в то время как регуляторная подверженность падает до доли того, что несёт установка по умолчанию.