MousePlayer и согласие

Для записи сеансов нужно согласие. Как установить MousePlayer, чтобы до согласия посетителя ничего не записывалось, и как доказать это впоследствии.

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

MousePlayer записывает движения мыши, клики, прокрутку и изменения DOM. Это наблюдение за поведением по преамбуле 24 GDPR и доступ к устройству по §25 TDDDG и аналогам. Нужно согласие. Законный интерес недостаточен.

Обязанность доказать действительное согласие лежит на вас как контролёре. Поэтому MousePlayer записывает не только то, что согласие было, но и источник сигнала, момент получения и действовавшую конфигурацию.

По умолчанию отказ. Без сигнала MousePlayer не создаёт ID сеанса, ничего не сохраняет, не ставит cookie и не соединяется. Ни тайм-аут, ни ошибка, ни отсутствие ответа не превращаются в «разрешено».

1Вариант 1 — блокировка скрипта инструментом согласия

Сниппет встраивается с type="text/plain" и атрибутом категории CMP. До согласия он вообще не выполняется. Ранние действия невозможны, поскольку ничего не работает. Только этот вариант не зависит от правильного получения сигнала.

Инструмент согласияАтрибут тега script
Usercentricstype="text/plain" data-usercentrics="MousePlayer"
Cookiebottype="text/plain" data-cookieconsent="statistics"
OneTrusttype="text/plain" class="optanon-category-C0002"
Consentmanagertype="text/plain" class="cmplazyload" data-cmp-purpose="1"
Borlabsdata-borlabs-cookie-blocker type="text/template"
Complianztype="text/plain" data-category="statistics"
<script type="text/plain" data-cookieconsent="statistics">
window.mp_config = {
    channel: 'YOUR-CHANNEL-ID',
    mode: 'web_only'
};

window.mp = window.mp || function() { (window.mp.q = window.mp.q || []).push(arguments); };
(function(w, d, s, id) {
    w.mp_channelid = id;
    var f = d.getElementsByTagName(s)[0], j = d.createElement(s);
    j.async = true; j.src = 'https://www.mouseplayer.com/mp.js';
    f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'YOUR-CHANNEL-ID');
</script>

Имена атрибутов меняются между основными версиями. Проверьте написание в документации CMP: неверный атрибут означает отсутствие записей, но будет казаться нашей ошибкой.

2Вариант 2 — ваш баннер

Используйте стандартный сниппет и сообщайте MousePlayer сами. Строка ниже работает до и после загрузки скрипта, порядок на странице не важен. Отзыв возможен в любое время, даже через несколько минут.

После согласия посетителя:

(window.mp_q = window.mp_q || []).push(['consent', true]);

При отзыве в любое время:

(window.mp_q = window.mp_q || []).push(['consent', false]);

Всегда используйте форму (window.mp_q = window.mp_q || []) . Простое window.mp_q = [] заменит массив и сломает отзыв.

3Вариант 3 — автоопределение

Только стандартный сниппет. MousePlayer сам определяет Google Consent Mode v2, IAB TCF v2 и семь инструментов (Consented.eu, Usercentrics, Cookiebot, OneTrust, Consentmanager, Borlabs, Complianz), безусловно соблюдая Global Privacy Control. Используйте лишь при невозможности вариантов выше: определение зависит от ожидаемого поведения другого инструмента, и сбой вы не заметите.

Что происходит при отзыве

Остановка сразу, а не в конце страницы:

  • все обработчики записи удаляются, оба наблюдателя отключаются; остаётся лишь ожидание нового согласия
  • таймеры очищаются, соединение закрывается без переподключения
  • буфер отбрасывается, а не отправляется — иначе закрытие вкладки передало бы именно отклонённые данные
  • идентификаторы и метки записи MousePlayer в local и session storage удаляются; если после отзыва CMP полностью блокирует запуск скрипта, они остаются до очистки браузера, но не используются
  • отзыв передаётся серверу ещё при открытом соединении и регистрируется, сохраняя доказуемость

Настройки проекта

В разделе Проект → Настройки → Согласие и регионы задаётся приём сервером записей только с согласием (рекомендуется) или также без него в явно разрешённых регионах. Сам скрипт без сигнала не соединяется: разрешение ослабляет только серверную проверку. ЕС/ЕЭЗ, Великобританию, Швейцарию, Бразилию и Канаду разрешить нельзя — по закону нужно предварительное согласие. Регион определяется сервером по IP; IP хранится сокращённо, без последнего октета или блока, вместе со страной.

Что включить в политику конфиденциальности

  • MousePlayer как обработчик с целью анализа поведения через записи сеансов и тепловые карты
  • необходимость согласия для записи и способ его отзыва
  • согласованный срок хранения записей

Есть готовая формулировка. Текст политики конфиденциальности для вашего сайта содержит краткий и подробный абзацы для вставки, таблицу обзора cookie и три случая, когда после смены настройки текст перестаёт быть верным.

Записи не поступают?

  • Сверьте атрибут категории с документацией CMP: неверный навсегда блокирует скрипт
  • Проверьте выполнение строки согласия до или после сниппета, а не внутри никогда не запускаемого блока
  • Global Privacy Control в браузере посетителя отменяет любое «да» везде и безусловно
  • Страницы списка исключений никогда не записываются независимо от согласия