Consent Mode v2のデバッグ手順 — 同意状態がタグに反映されないときの確認箇所
Consent Mode v2の実装トラブルは、default設定の実行タイミングとupdateの発火漏れにほぼ集約されます。Tag AssistantのConsentタブでの同意状態の読み方、4つの同意シグナルの確認方法、症状別の原因と確認箇所を整理したデバッグ手順を解説します。
文責:サードパーティートラスト編集部
Consent Mode v2を実装したのに「同意したはずなのに計測されない」「拒否したのにタグが飛んでいるように見える」という相談は、いまだに定常的にあります。デバッグの経験から先に結論を言うと、この種のトラブルの原因はほぼ2つに集約されます。defaultの同意状態がタグより後に実行されているか、CMPバナー操作後のupdateが飛んでいないか、です。
この記事は概念の解説ではなく、トラブルシュートの手順書です。上から順に確認していけば、大半のケースで原因に到達できるはずです。
前提:4つの同意シグナル
確認作業の前に、見るべきシグナルを整理します。Consent Mode v2で管理される主な同意タイプは次の4つです。
| シグナル | 制御対象 |
|---|---|
| analytics_storage | GA4などの分析系ストレージ |
| ad_storage | 広告系Cookieの読み書き |
| ad_user_data | 広告目的でのユーザーデータ送信(v2で追加) |
| ad_personalization | パーソナライズド広告(v2で追加) |
「v2対応済み」と言えるのは、後ろ2つ(ad_user_data / ad_personalization)がdefaultとupdateの両方で制御されている状態です。CMP側がv1時代の2シグナルしか送っていない実装は、今でも監査でよく見つかります。
手順1:Tag AssistantのConsentタブで状態遷移を読む
GTMのプレビューモード(Tag Assistant)を起動し、左側のイベント一覧の上部にある「Consent」タブを開きます。ここに、各同意タイプの状態がイベント時点ごとに表示されます。
正常な実装では、次の順序が観測できます。
- ページ読み込みの最初期に「Consent Default」の行が現れ、全シグナルがdenied(またはリージョン設定に応じた初期値)になっている
- CMPバナーで同意操作をすると「Consent Update」の行が現れ、同意されたシグナルがgrantedに変わる
この2行が「この順序で」出ているかが最初の確認点です。よくある異常は次の2つです。
Defaultの行がタグ発火より後に出ている。この場合、最初のページビューはdefault未設定の状態で送信されています。原因はほぼ実装順序で、gtag('consent', 'default', ...)がGTMコンテナスニペットや他のタグより後に書かれています。defaultはGTMスニペットより前、headの最上部近くで実行される必要があります。
Updateの行が出ない。バナーで同意してもConsentタブに変化がなければ、CMPがgtag('consent', 'update', ...)を発行していません。CMP側の設定(Google Consent Modeとの連携オプション)が無効になっているか、CMPテンプレートとカスタム実装が混在して片方しか動いていないケースが典型です。
手順2:タグ側の挙動を確認する
同意状態が正しく遷移していても、タグ側の設定で計測が止まっていることがあります。
Tag Assistantで対象タグ(GA4設定タグ等)を選択し、発火状況を確認します。Consent Mode下では、タグは「発火しない」のではなく「同意状態に応じて挙動を変えて発火する」点に注意してください。analytics_storageがdeniedでもGA4タグ自体は発火し、Cookieを使わないping(cookieless ping)が送られます。ネットワークタブでcollect リクエストのgcsパラメータを見ると、同意状態がリクエストに反映されているかを直接確認できます(例:gcs=G111が全denied、G101はad denied/analytics grantedを表す形式)。
また、GTMのタグ設定には「追加の同意チェック」(タグに同意条件を追加する設定)があります。ここに条件が設定されていると、同意されるまでタグの発火自体がブロックされます。「Consentタブは正常なのにタグが発火しない」ときは、この設定を確認してください。
手順3:症状から原因を引く
よくある症状と確認箇所を表にまとめます。
| 症状 | 疑う原因 | 確認箇所 |
|---|---|---|
| 同意後も計測されない | updateが飛んでいない | ConsentタブにUpdate行があるか |
| 初回PVだけ欠ける | defaultの実行順序 | Default行がタグ発火より前か、head内の記述位置 |
| 特定の国だけ計測されない | リージョン指定のミス | defaultのregion指定と対象国の対応 |
| 拒否したのに広告Cookieが残る | CMPとConsent Modeの不整合 | CMPのブロック方式(タグ自体の停止かConsent Mode連携か)の確認 |
| v2シグナルだけ未設定と警告される | CMPがv1実装のまま | ad_user_data / ad_personalizationがdefault・update双方に含まれるか |
リージョン指定のミスは見落とされがちです。defaultをregion: ['EEA諸国']のように限定している場合、指定外の国では別のdefault(または未設定)が適用されます。日本のユーザーで問題が出ているのにEEA向けの設定だけ見ていた、というケースは実際にありました。
デバッグを楽にする実装側の習慣
最後に、トラブルを事前に減らす実装習慣を2つだけ。
defaultの記述はCMPツールに任せず、自社管理のスニペットとしてhead最上部に固定すること。CMP側のスクリプト読み込みタイミングにdefaultを依存させると、CMPの配信遅延がそのまま計測欠損になります。
そして、同意状態の検証をリリースチェックリストに含めること。Consent Mode周りは「一度動けば壊れない」ものではなく、CMPのプラン変更・テンプレート更新・タグ追加のたびに壊れる可能性があります。四半期に一度、この記事の手順1〜2を流すだけで、静かに進行する計測欠損を防げます。
参考情報
関連するナレッジ
-
サーバーサイドGTMとは — 仕組み、Cookie規制対応、導入を判断する基準
サーバーサイドGTM(server-side Tagging)の仕組みを、通常のGTMとの違いから解...
-
Cookie同意に「同意しない」と、実際には何が起きるのか
Cookieの同意バナーで「同意しない」を選ぶと何が起きるのかを、サイトを見るユー...
-
Meta広告とGA4を連携して計測する — CAPI時代のコンバージョン設計
Meta広告(Facebook/Instagram広告)の効果をGA4側で正しく評価するための計測設...
-
HubSpotとGA4を連携してBtoBの成果を分析する
HubSpot(CRM/MA)とGA4を連携し、Webの行動データと商談・受注データをつないでB...
支援サービス
この記事に関連するサービス
記事のテーマに近い領域のサービスです。詳細は各サービスページをご覧ください。