MousePlayer 与同意

会话录制需要同意。以下说明如何安装 MousePlayer,确保访客同意前不录制任何内容,以及如何事后提供证明。

为什么需要同意

MousePlayer 记录鼠标移动、点击、滚动和 DOM 变化。这属于 GDPR 序言第 24 段所述的行为观察,以及 TDDDG 第 25 条及其对应法规所述的访问访客设备。它需要同意。合法利益不足以作为依据。

作为控制者,您承担证明同意有效的责任。因此,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 为录制而存储在本地存储和会话存储中的标识符与标记;如果同意工具在撤回后彻底阻止脚本,使其不再启动,这些内容会保留至浏览器数据被清除,但不再使用
  • 在连接仍打开时向服务器报告撤回并记录,使此事件仍可被证明

项目设置

在 项目 → 设置 → 同意与地区 中,可决定服务器是否仅接受带有同意信号的录制(推荐),或也接受来自明确放行地区的不带同意信号的录制。脚本本身在没有同意信号时不会建立连接;放行仅放宽服务器端的检查,不放宽脚本的这项检查。欧盟/欧洲经济区、英国、瑞士、巴西和加拿大不能放行——法律要求事先同意。地区在服务器端根据 IP 地址确定;IP 地址仅以截断形式(去掉最后一个八位组或地址块)与国家一起存储。

隐私政策中应包含什么

  • 将 MousePlayer 列为处理者,目的为:通过会话录制和热力图分析使用行为
  • 说明录制需要同意,以及访客如何撤回
  • 约定的录制保留期限

已有可直接使用的文本。 网站隐私政策文本 提供可粘贴的段落——简版与详细版——以及 Cookie 概览表,并列明更改设置后会有哪三处不再符合实际情况。

没有收到录制?

  • 对照 CMP 文档检查类别属性——错误属性会永久阻止脚本
  • 确保同意语句在代码片段之前或之后运行,而非放在从不执行的代码块内
  • 访客浏览器的 Global Privacy Control 在全球范围无条件优先于任何同意
  • 排除列表中的页面始终不录制,无论是否同意