COOKiES 同意管理
GDPR準拠のCookie処理とサードパーティサービス統合を実現する、完全にカスタマイズ可能で多言語対応のユーザーインターフェースを備えたDrupal用ユーザー同意管理モジュール。
cookies
インストール
composer require 'drupal/cookies:^1.2'
概要
COOKiESは、GDPRおよび類似のプライバシー規制に準拠する必要があるDrupalサイト向けの包括的なユーザー同意管理ソリューションです。このモジュールにより、既存のサードパーティ統合モジュールを引き続き使用しながら、Cookieがインストールされる前にユーザーの同意を得ることができます。
cookiesJSR JavaScriptライブラリをベースに構築されたCOOKiESは、サービスカテゴリ(トラッキング、マーケティング、ソーシャル、機能、動画、パフォーマンス)を細かく制御できる、完全レスポンシブで翻訳可能なCookie同意バナーを提供します。サイト管理者は、詳細な処理者情報、プライバシーポリシーリンク、コンテンツがブロックされた際に表示されるカスタムプレースホルダーテキストを含む個々のサービスを設定できます。
このモジュールは、設定されたすべてのサービスとそのデータ処理の詳細を一覧表示するGDPR準拠のドキュメントを自動生成します。このドキュメントは、専用ページとして表示したり、Blockを介して埋め込んだり、[cookies:docs]トークンを使用して挿入したりできます。認証済みユーザーの場合、同意設定をデータベースに保存し、異なるブラウザやセッション間で復元できます。
重要:GDPRへの準拠に関する責任は一切負いません。サイト管理者は、適切な設定と法的コンプライアンスを確保する責任があります。
Features
- すべて許可、すべて拒否、および詳細設定オプションを備えた完全レスポンシブのCookie同意バナー
- DrupalのConfiguration Translation システムによるすべてのUIテキストの完全な翻訳サポート
- 設定可能なサービスグループ(トラッキング、マーケティング、ソーシャル、機能、動画、パフォーマンス)によるグループレベルまたは個別サービスの同意管理
- 処理者の詳細、プライバシーポリシー、Cookie情報を表示する自動生成のGDPR準拠ドキュメント
- ブラウザやセッションをまたいだ認証済みユーザーの永続的な同意保存
- cookies_filterサブモジュールによる外部コンテンツ(iframe、埋め込み、動画)のツークリックソリューション
- CSS変数またはスタイルシート全体の置き換えによるカスタマイズ可能なCSSスタイリング
- コンテンツにCookieドキュメントを埋め込むためのトークンサポート([cookies:docs])
- CDNまたはローカルインストールからのJavaScriptライブラリ読み込み
- ページ速度向上のためのスクロールトリガーによるバナー表示オプション
- 名前、有効期限、ドメイン、Secureフラグ、SameSite属性を含むCookie設定の構成
- Cookie設定ダイアログを開くためのToolsメニュー内の動的メニューリンク
Use Cases
基本的なGDPR Cookie同意
COOKiESをインストールし、テーマにCookies UI Blockを配置します。サイトのサードパーティ統合に合わせてサービスグループとサービスを設定します。プライバシーポリシーと運営者情報ページへのリンクを追加します。ユーザーは初回訪問時に同意バナーを見て、設定ダイアログからいつでも設定を調整できます。
Google Tag Manager統合
google_tagモジュールと一緒にcookies_gtagサブモジュールを有効にします。「gtag」サービスが自動的に作成されます。ユーザーがトラッキングCookieを許可するまでGTMスクリプトは読み込まれません。ドキュメント用にGoogle LLCの情報を含む処理者の詳細を設定します。
同意付き動画埋め込み
cookies_videoサブモジュールを有効にします。動画メディア埋め込み(YouTube、Vimeo)は、すぐに読み込まれる代わりに同意ボタン付きのプレースホルダーを表示します。ユーザーは動画Cookieのみを許可するか、すべてのCookieを許可することができます。
カスタムサードパーティサービス統合
カスタム統合用の新しいCOOKiESサービスエンティティを作成します。モジュール内でcookies.knock_outサービスを使用してブロッキングが必要かどうかを確認します。cookiesjsrUserConsent JavaScriptイベントをリッスンして、同意が得られたときにサービスを初期化します。cookiesOverlay() jQueryプラグインを使用してプレースホルダーを表示します。
多言語Cookie同意
すべてのCOOKiESテキストはDrupalのConfiguration Translation経由で翻訳可能です。/admin/config/system/cookies/texts/translateに移動して、各言語の翻訳を追加します。サービスドキュメントとグループの説明も翻訳をサポートしています。
シンプルなUIのためのグループレベル同意
COOKiES設定で「グループ同意」を有効にします。ユーザーには個別のサービストグルなしでサービスグループ(トラッキング、マーケティングなど)のみが表示されます。「Cookieドキュメントリンクを表示」と組み合わせて、別ページで詳細なサービス情報を提供します。
認証済みユーザーの同意の永続化
コールバックオプションで「認証済みユーザーの同意を保存」を有効にします。ログインユーザーの設定はデータベースに保存されます。別のブラウザでログインすると、同意設定が自動的に復元されます。
テキストコンテンツのツークリックソリューション
cookies_filterサブモジュールを有効にします。テキストフォーマットにCOOKiES Filterを追加します。iframe、埋め込み、または外部画像を含むコンテンツは同意プレースホルダーを表示します。外部コンテンツが読み込まれる前に、ユーザーはクリックしてCookieを許可する必要があります。
Tips
- CSS変数を使用して、スタイルシートを完全に置き換えることなくCookieバナーの外観をカスタマイズできます。利用可能な変数についてはcookiesJSRのドキュメントを参照してください。
- [cookies:docs]トークンをコンテンツで使用して、プライバシーポリシーページなど任意の場所にCookieドキュメントを埋め込むことができます。
- スクロール制限を1以上の値に設定すると、ライブラリの読み込みを遅延させてページ速度スコアを向上させることができます。
- イタリアでのGDPR準拠のために、「レイヤーを閉じた際にすべてのサービスを拒否」を有効にしてXボタンを拒否アクションとして扱います。
- カスタムサービス統合を作成する際は、サービスエンティティとJavaScriptサービスキーの間で一貫したマシン名を使用してください。
- 処理者会社の詳細(プライバシーポリシーURL、連絡先)を追加して、包括的なGDPRドキュメントを自動的に提供します。
- 多くのサービスがある場合は、グループ同意モードとドキュメントリンクを組み合わせてユーザーインターフェースを簡素化します。
Technical Details
Admin Pages 6
/admin/config/system/cookies
基本設定、ウィジェットテキスト、サービスグループ、個別サービスを含むすべてのCOOKiES設定セクションへのアクセスを提供する概要ページ。
/admin/config/system/cookies/config
Cookieのプロパティ、バナーの動作、設定ダイアログオプション、JavaScriptライブラリ設定、スタイリング、コールバックオプションを含むCOOKiES同意管理システムのコア設定を構成します。
/admin/config/system/cookies/texts
Cookie同意UIに表示されるすべての翻訳可能なテキストラベル、メッセージ、リンクを設定します。すべてのテキストは多言語サイト向けにDrupalのConfiguration Translationシステムをサポートしています。
/admin/config/system/cookies/cookies-service-group
個々のCookieサービスをカテゴリ(例:トラッキング、マーケティング、ソーシャル)に整理するサービスグループを管理します。グループは設定ダイアログでタブとして表示され、Cookieドキュメントを整理します。
/admin/config/system/cookies/cookies-service
ユーザーの同意を必要とするサードパーティ統合を表す個々のCookieサービスを管理します。各サービスはグループに属し、詳細な処理者情報、カスタムプレースホルダーテキスト、ドキュメントを設定できます。
/cookies/documentation
グループ別に整理された、設定されたすべてのCookieサービスの包括的なドキュメントを表示する公開ページ。GDPRで必要とされる処理者の詳細、プライバシーポリシーリンク、サービスの説明を表示します。
権限 3
Hooks 1
hook_cookies_user_consent
ユーザーがCookie同意設定を変更したときに呼び出されます。このhookを使用して、サイトのキャッシャビリティを維持しながら同意変更に基づくバックエンド操作を実行します。
Troubleshooting 6
「Cookies UI」ブロックがテーマのBlock配置に配置され、表示されていることを確認します(Blockの表示設定を確認)。Blockが正しいテーマに割り当てられていることを確認します。ブラウザコンソールでJavaScriptエラーを確認します。
「Cookies JSRをCDNから読み込む」を無効にした場合、ライブラリは/libraries/cookiesjsr/dist/cookiesjsr.min.jsにインストールされている必要があります。https://github.com/jfeltkamp/cookiesjsrからダウンロードして正しい場所に配置してください。
サービスエンティティの「同意が必要」が有効になっていることを確認します。統合コードがcookies.knock_outサービスを使用してブロッキングを判断していることを確認します。ブロッキングが発生するべきページでCOOKiES UI Blockがアクセス可能であることを確認します。
COOKiESはConfiguration Translationを使用します。/admin/config/system/cookies/textsに移動して「翻訳」をクリックし、各言語の翻訳を追加します。翻訳を追加した後はキャッシュをクリアしてください。
メニューリンクが正しいハッシュ形式を使用していることを確認:#editCookieSettings(または設定した値)。ダイアログを開くにはページにCOOKiES UI Blockが存在している必要があります。
/admin/config/system/cookies/configのコールバックオプションで「認証済みユーザーの同意を保存」を有効にします。これにより同意がKey-Valueストレージに保存され、ログイン時に復元されます。
Security Notes 5
- GDPRへの準拠に関する責任は一切負いません。サイト管理者は適切な設定と法的コンプライアンスを確保する責任があります。
- CookieのSameSite属性を適切に設定してください:「Strict」が最もセキュリティが高いですが、クロスサイト機能に影響を与える可能性があります。
- 本番サイトでは「セキュアモード」(HTTPS専用)を有効にして、暗号化されていない接続でのCookie送信を防止します。
- 同意設定を保存するCookieには個人を特定できる情報は含まれていません - サービスの許可フラグのみです。
- 認証済みユーザーの同意を保存する場合、設定はユーザーIDに紐付けられ、DrupalのKey-Valueストレージに保存されます。