同意バナーとして有名なOneTrust( https://www.onetrust.com/ )ですが、実装時にいくつか「???」という点が出てきたのでどう対応したかを備忘録として記載しておきます。
発生した課題
- 日本の代理店から提供された方法だと、Googleの同意モードと連携していない
- 同意を拒否した場合、CookieだけでなくAnalyticsの発生イベントそのものをブロックしてしまう
- そもそも同意の状況を取得するタイミングが遅く、同意していてもタグ発行やイベント発火のタイミング設定が難しい
という問題がありました。
対応
色々調べて下記の方法にたどり着きました。
https://tanelytics.com/integrate-onetrust-with-google-tag-manager/
こちらの設定で行うとTag Assistantでも同意の状況が簡単に確認できるようになり、イベントもブロックしないので拒否したCookie関連情報のみ排除してAnalyticsにデータを送ってくれるようになりました。
実際の挙動としては、GTMの「同意の初期化」のタイミングで、CookieとdataLayerから現在の同意状況を抜き出し、Googleの同意モード用に変換してセットしています。
そのため以降の処理について適切に同意の状態を反映させることができるようになります。
これらはさきほどのURLに記載のあるテンプレートを見てみると、どのように読み込まれているかがわかります。
OptanonConsentというCookieと、OptanonActiveGroups,OnetrustActiveGroupsというdataLayerから現在の同意状況を読み取っています。
これらをOneTrustの同意タイプ(analyticsの同意なら"C0002")に割り当て、同意の初期化トリガー発生時に読み込むようにするわけです。
上記画像ではanalytics以外の同意タイプも変数を作ってセットしています。こちらもさきほどのURLに記載されています。
実装後の確認方法
同意設定が正しく行われているかをTag Assistantで確認したい場合は、GTMでは「Consent」の欄でanalytics_storageがgrantedになっているかと、GA4のタブではHits SentのPage View欄のパラメータを確認すればわかります。
analytics_storageがgrantedになっているのは、Cookie取得を許可した状態です。
またHit Detailsでは、Cookie Consent StateがG111になっているはずです。
こちらのG111はad_storage と analytics_storage の両方を同意した状態です。詳しくは下記URLを参照してください。
https://developers.google.com/tag-platform/security/guides/consent?hl=ja