Cookieスキャン
当サーバーが、まったく初めての訪問者としてあなたのページを開きます:Cookieなし、バナーのボタンも一切押していない状態です。そのうえで、それでも現れたCookieと、すでに読み込まれている外部サービスを一覧にします。
すべてのCookieバナーの元にあるルール
Cookieは、サイトがブラウザに保存しておき、次回以降の訪問で送り返すよう頼む、名前の付いた小さな値です。ネットショップがカートの中身を覚えているのはこの仕組みです。広告ネットワークが何千ものサイトをまたいで同じ人を見分けるのも、この仕組みです。
欧州連合と英国では、ePrivacyのルール(英国版はPECRと呼ばれます)により、訪問者の端末に何かを保存したり読み取ったりするには、その人が求めたサービスに厳密に必要な場合を除き、まず同意が必要です。そしてGDPRが同意の条件を定めています:明確な行動であること、自由に行われること、目的が示されていること、与えるのと同じくらい簡単に撤回できること。最初からチェックの入ったボックスは同意になりませんし、スクロールを続けることも同意にはなりません。
ほかの地域では考え方が違います。米国のいくつかの州(最初はカリフォルニア州)では、解析や広告は初期状態で動いてよく、その代わり人々にはオプトアウトの権利があります。ブラウザが送るGlobal Privacy Controlの信号によるオプトアウトも含まれます。どちらの方式でも最初に訪れた瞬間が重要で、このスキャンが見るのはまさにその瞬間です。
スキャンが読むもの
- サーバーが送るCookie。リダイレクトの各段階にあるすべての
Set-Cookieヘッダーを、その有効期間とともに読みます。名前は3つに分けます:既知のトラッカー(_ga、_gid、_fbp、_hjSessionUser、_clck、hubspotutk…)、サイトの動作に必要なCookie(PHPSESSID、csrftoken、__cf_bm、カート、言語、バナー自身の記憶)、そして不明なものです。不明な名前については、プライバシーポリシーを探し、そのCookieが説明されているかを確認します。 - HTMLの中の外部サービス。スクリプトのアドレス、
gtag('config', 'G-…')やfbq('init')のようなインラインのコード片、iframe、スタイルシート、preconnectの指定、画像を、約40のサービスの一覧と照らし合わせます。 - ブロックしている印。
type="text/plain"で書かれたスクリプトや、アドレスをdata-srcに持つiframeは、同意ツールが書き換えるまで何もしません。これらは「同意待ち」と表示します。 - 同意ツール。Cookiebot、OneTrust、CookieYes、Complianz、Didomi、Usercentrics、iubenda、Klaroなど20以上を名前で認識します。承諾と拒否のボタンを持つ自作のバナーも認識します。
各行の判定方法
| 訪問時に読み込まれるもの | 判定 | 理由 |
|---|---|---|
| アクセス解析(Google Analytics、Tag Manager、Hotjar、Clarity、HubSpot) | 赤 | 訪問者を識別し、追いかけるために作られています。 |
| 広告(Meta Pixel、Google Ads、LinkedIn、TikTok、広告ネットワーク) | 赤 | 同じく、しかもサイト間で共有されます。 |
Set-Cookieヘッダーにある追跡用Cookie | 赤 | ページが描画される前に保存されます。 |
| 埋め込み動画、地図、SNSのウィジェット、Webフォント、ライブチャット | 黄 | 提供元が訪問者のIPアドレスを受け取り、Cookieを設定することもあります。 |
CAPTCHA、公開スクリプトのCDN、youtube-nocookie.com | 参考 | 全体像がわかるように載せています。 |
赤い行が1つあれば、結果全体が赤になります。2つの場合は黄に和らげます。スクリプトは読み込まれても、動作を控えている可能性があるからです:ページがanalytics_storageまたはad_storageをdeniedにしたConsent Modeを宣言しているときのGoogleのタグと、Cookiebotが自動ブロックモードで動いているときのあらゆるトラッカーです。
トラッカーに「はい」を待たせる
どの同意ツールも同じ仕掛けを使います。タグはブラウザが無視する形でページに残しておき、クリックのあとでツールがそれを有効にします。
<script type="text/plain" data-category="analytics"
src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"></script>属性の名前はツールによって違います(data-cookieconsent、data-category、data-service)。タグをGoogle Tag Managerで管理しているなら、各タグの発火条件を「すべてのページ」ではなく、バナーの同意イベントにしてください。黄色の行については、フォントファイルを自分のドメインから配信し、動画プレーヤーをクリックで読み込むプレビューに置き換え、チャットのウィジェットは誰かがチャットボタンを押したときに起動するようにします。
このスキャンはJavaScriptを実行しません。トラッカーのスクリプトタグは見えますが、そのスクリプトが書き込むCookieや、タグマネージャーがあとから差し込むものは見えません。また、多くのサイトは国によって違うバナーを表示しますが、当サーバーに見えるのは1つの版だけです。全体像を知るには、プライベートウィンドウでページを開き、開発者ツールの「ネットワーク」タブと「アプリケーション」タブを見てください。これは技術的な読み取りであり、法的な助言ではありません。
よくある質問
自分のウェブサイトにCookieバナーは必要ですか?
厳密に必要ではないものを保存したり読み取ったりしていて、EUや英国のように同意が必要な地域からの訪問者がいる場合だけです。セッションCookieだけを使い、解析も広告も埋め込みもないサイトなら、バナーは要りません。
同意の要らないCookieはどれですか?
求められたサービスがそれなしでは動かないものです:ログインのセッション、ショッピングカート、セキュリティトークン、負荷分散、言語の選択、そしてバナーへの回答を記録するCookieです。解析用や広告用のCookieはここに入りません。
Google Analyticsを同意なしで使えますか?
EUや英国では、標準の設定のままでは使えません。_gaというCookieを書き込むからです。Consent Modeをdeniedにすると、代わりにCookieなしの通信を送りますが、これについては規制当局の見解が分かれています。用途を絞って設定した利用者数計測ツールを対象外にしている当局もあるので、対象とする国のルールを確認してください。
Google Fontsには同意が必要ですか?
Google FontsはCookieを設定しませんが、訪問のたびに訪問者のIPアドレスがGoogleに送られます。2022年1月、ミュンヘンの裁判所はこれを理由にサイト運営者に不利な判決を下しました。フォントファイルを自分のサーバーに置けば、この問題はなくなります。
ブラウザではたくさんCookieが見えるのに、スキャンで1つも見つからないのはなぜですか?
ほとんどのCookieはページの読み込み後にスクリプトが書き込むもので、スキャンはスクリプトを実行しないからです。それらを書き込むはずのスクリプトは「読み込み時の外部サービス」に表示し、Cookieとしてはサーバーが直接設定したものだけを報告します。
「すべて拒否」ボタンは必須ですか?
GDPRでは、拒否は承諾と同じくらい簡単でなければなりません。フランス、英国、その他いくつかの国のデータ保護当局は、これをバナーの最初の画面に、承諾ボタンと同じくらい目立つ拒否の選択肢を置くことだと解釈しています。