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 がローカルストレージとセッションストレージに保存した識別子とマーカーを削除します。ただし、撤回後に同意管理ツールがスクリプトを完全にブロックし、スクリプトが起動しなくなった場合、それらはブラウザーデータが消去されるまで残りますが、使用されません
  • 接続が開いている間に撤回をサーバーへ通知して記録し、その事実を後から証明できるようにします

プロジェクト設定

次の場所で、 プロジェクト → 設定 → 同意と地域 サーバーが同意シグナルのある録画のみを受け付けるか(推奨)、明示的に許可された地域ではシグナルなしでも受け付けるかを指定します。スクリプト自体は同意シグナルなしに接続を開きません。地域の許可で緩和されるのはサーバー側の確認だけで、この制約は変わりません。EU/EEA、英国、スイス、ブラジル、カナダは許可対象にできません。これらの地域では、法律上、事前の同意が必要です。地域はサーバー側で IP アドレスから判定します。IP アドレスは最後のオクテットまたはブロックを除いた短縮形のみを、国とともに保存します。

プライバシーポリシーに記載すべき内容

  • 処理者としての MousePlayer と、その目的:セッション録画とヒートマップによる利用行動の分析
  • 録画には同意が必要であること、および訪問者が同意を撤回する方法
  • 合意した録画の保存期間

そのまま使える文面を用意しています。 サイト向けプライバシーポリシーの文面 には、貼り付け用の短い説明と詳しい説明、Cookie の一覧用の表、設定を変えると説明が実態に合わなくなる三つの箇所を掲載しています。

録画が届かない場合

  • カテゴリー属性を CMP のドキュメントと照合してください。誤っているとスクリプトが継続的にブロックされます
  • 同意を通知する行が、実行されないブロック内ではなく、スニペットの前または後で実行されることを確認してください
  • 訪問者のブラウザーの Global Privacy Control は、世界中で無条件に、あらゆる同意より優先されます
  • 除外リストにあるページは、同意の有無にかかわらず一切記録しません