Home / Google / 【2026年最新版】Google Tag Manager同意モードv2の実装エラーの原因と対処法【完全ガイド】

【2026年最新版】Google Tag Manager同意モードv2の実装エラーの原因と対処法【完全ガイド】

※本ページにはプロモーション(広告)が含まれています

Google Tag Manager(GTM)で同意モードv2(Consent Mode v2)を実装しようとしたとき、「タグが発火しない」「consent_update が記録されない」「GA4のデータが消えた」といったエラーに直面したことはありませんか?

2024年3月からEU向けサービスでは同意モードv2への対応が必須となり、2026年現在も多くのサイト運営者が実装トラブルに悩んでいます。本記事では、GTM同意モードv2の実装エラーの原因を体系的に解説し、確実に動作させるための対処法を完全網羅します。

同意モードv2の基礎設定

この記事でわかること

  • 同意モードv2の仕組みと必須パラメータ
  • よくある実装エラー5パターンとその原因
  • GTMでの正しい設定手順(ステップ別)
  • CMP連携時のトラブル対処法
  • デバッグツールを使った確認方法

同意モードv2の基礎知識

同意モードv2とは何か

同意モードv2(Consent Mode v2)は、Googleが提供するプライバシー保護フレームワークです。ユーザーがCookie利用に同意しない場合でも、同意なしの集計データ(モデリングデータ)を使ってコンバージョン計測を補完する仕組みです。

v1からv2への主な変更点は、ad_user_dataad_personalizationという2つの新しいパラメータが追加されたことです。これらはGoogleの広告パーソナライズと広告データ活用の同意を個別に制御します。

同意モードv2の6つのパラメータ

パラメータ名 役割 v2新規
analytics_storage GA4などの分析Cookie利用 v1から継続
ad_storage 広告Cookie利用 v1から継続
functionality_storage 機能Cookie(ログイン保持等) v1から継続
personalization_storage パーソナライズCookie v1から継続
ad_user_data 広告目的のユーザーデータ送信 v2新規
ad_personalization リターゲティング広告 v2新規

同意モードv2の実装フロー

同意モードv2の実装は大きく3段階に分かれます。まず「デフォルト同意状態の設定」で、ページ読み込み時に全パラメータをdeniedに設定します。次に「CMPバナーの表示」でユーザーに同意を求め、最後に「同意更新」でユーザーの選択に応じてgtag('consent', 'update', {...})を呼び出します。

よくある実装エラーと原因

エラー1: デフォルト同意設定がGTMより遅れて実行される

最も多いエラーが「初期化順序の問題」です。GTMのスクリプトが読み込まれた後にgtag('consent', 'default', {...})が実行されると、GTMはすでにデフォルト状態(パラメータ未設定=許可扱い)でタグを発火してしまいます。

症状: プレビューモードで consent_default イベントが記録されない、または analytics_storage が常に “granted” になっている。

原因: HTMLの<head>内でGTMスクリプトより後にCMPのJSが読み込まれている。

エラー2: ad_user_data / ad_personalization が未設定

v1時代の実装をv2に移行する際、古い2パラメータのみを設定して新しい2パラメータを追加し忘れるケースが非常に多いです。

症状: Googleタグ診断ツールで「同意モードv2未対応」と警告が出る。Google広告のコンバージョンデータが減少している。

原因: デフォルト同意設定にad_user_dataまたはad_personalizationが含まれていない。

エラー3: CMPのコールバック関数が正しく呼ばれない

Cookiebot、OneTrust、TrustArcなどのCMP(同意管理プラットフォーム)を使用している場合、CMP固有のイベントフックに合わせてconsent updateを呼び出す必要があります。CMPのバージョンアップでAPIが変わることもあります。

症状: ユーザーが同意してもconsent_updateイベントが発火しない。GTMのデバッガーで consent update が表示されない。

エラー4: GTMのビルトイン同意変数が未設定

GTM内で同意状態に基づいてタグを制御する場合、「ビルトイン変数」の「同意の状態」を有効化する必要があります。これを忘れると、同意に基づいたトリガー条件が機能しません。

エラー5: DataLayer の push タイミング問題

SPA(シングルページアプリケーション)やReact/Next.jsで構築されたサイトでは、コンポーネントのマウント後にDataLayerへpushされるケースがあり、GTMのファイアリング順序がずれることがあります。

CMPプラットフォーム連携

GTM同意モードv2の正しい実装手順

ステップ1: HTMLのheadタグ最上部にデフォルト同意を設定

GTMスクリプトより前に、以下のコードを<head>の最上部に配置します。

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // デフォルト同意: GTMより前に必ず実行
  gtag('consent', 'default', {
    'analytics_storage': 'denied',
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'functionality_storage': 'denied',
    'personalization_storage': 'denied',
    'wait_for_update': 500
  });
</script>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){...})</script>
<!-- End Google Tag Manager -->

ステップ2: CMPのコールバックで consent update を呼び出す

Cookiebotを例にした実装です。

window.addEventListener('CookiebotOnAccept', function() {
  gtag('consent', 'update', {
    'analytics_storage': Cookiebot.consent.statistics ? 'granted' : 'denied',
    'ad_storage': Cookiebot.consent.marketing ? 'granted' : 'denied',
    'ad_user_data': Cookiebot.consent.marketing ? 'granted' : 'denied',
    'ad_personalization': Cookiebot.consent.marketing ? 'granted' : 'denied',
    'functionality_storage': Cookiebot.consent.preferences ? 'granted' : 'denied',
    'personalization_storage': Cookiebot.consent.preferences ? 'granted' : 'denied'
  });
});

window.addEventListener('CookiebotOnDecline', function() {
  // 拒否時は全て denied のまま
  gtag('consent', 'update', {
    'analytics_storage': 'denied',
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied'
  });
});

ステップ3: GTMでビルトイン同意変数を有効化

GTM管理画面で「変数」→「組み込み変数の設定」を開き、「同意」セクションにある以下の変数をすべてチェックします。

  • 広告ストレージ
  • 分析ストレージ
  • 広告ユーザーデータ
  • 広告のパーソナライズ

ステップ4: タグの同意チェックを設定

GTMの各タグ設定画面で「同意の設定」タブを開き、そのタグが要求する同意タイプを指定します。GA4タグであれば「分析ストレージ」、Google広告タグであれば「広告ストレージ」「広告ユーザーデータ」を設定します。

ステップ5: GTMプレビューモードで動作確認

GTMの「プレビュー」ボタンでデバッグセッションを開始し、以下のイベントが正しい順序で記録されているか確認します。

  1. Consent Initialization – デフォルト同意が設定されること
  2. Page View – ページ読み込み
  3. consent_update – ユーザーが同意バナーを操作した後

CMPツール別の対処法比較

CMPツール GTM連携方法 注意点
Cookiebot CookiebotOnAccept イベント GTMテンプレートギャラリーに公式テンプレートあり
OneTrust OptanonWrapper 関数 グループIDとパラメータのマッピングが必要
TrustArc truste.eu.bindMap Enterprise契約が必要な場合あり
Usercentrics UC_UI_INITIALIZED イベント GTMテンプレートギャラリーに公式テンプレートあり
カスタムCMP 独自イベント + dataLayer.push 開発者と連携して実装が必要

デバッグツールの使い方

Google Tag Assistantによる確認

Chrome拡張機能「Google Tag Assistant」をインストールし、サイトを開くと同意モードの状態をリアルタイムで確認できます。各パラメータが「granted」または「denied」のどちらになっているかが一目でわかります。

Chrome開発者ツールのコンソールで確認

ブラウザのコンソールに以下を入力すると、現在の dataLayer の状態を確認できます。

// dataLayer全体を表示
console.log(window.dataLayer);

// 同意関連イベントのみフィルタ
window.dataLayer.filter(e => e.event && e.event.includes('consent'))

GA4のデバッグビューで確認

GA4の管理画面で「DebugView」を有効にし、Chrome拡張機能「GA Debugger」を使うと、consent_update イベントが GA4 に届いているかリアルタイムで確認できます。

デバッグとプレビュー確認

よくあるエラーメッセージと対処法

エラー / 症状 原因 対処法
Consent Initializationが表示されない GTM前にデフォルト設定がない headの最上部に移動
タグが発火しない 同意チェックが blocked になっている タグの「同意の設定」を確認
GA4のセッション数が激減 analytics_storage が常時 denied consent update が呼ばれているか確認
広告のコンバージョンが計測されない ad_user_data が未設定 v2の新パラメータを追加
SPA でページ遷移後に計測が止まる ルート変更で dataLayer がリセット 各ルート遷移後に consent default を再設定
🛒

この記事に関連するおすすめ商品

Webアナリティクス 実践ガイド本

約2,500円〜

GA4・GTMの設定から分析まで網羅

🛒 Amazonで探す

プライバシー対応 Webサービス解説書

約3,000円〜

GDPRと同意管理の実務対応

🛒 Amazonで探す

GTM・GA4 タグ管理 実務本

約2,800円〜

タグ設計から運用まで現場で使えるノウハウ

🛒 Amazonで探す

※ 価格は変動します。最新価格はリンク先でご確認ください

よくある質問(FAQ)

Q: 日本のサイトでも同意モードv2は必要ですか?

A: EU居住者にサービスを提供している場合は必須です。日本国内のみのサービスでも、Google広告のコンバージョンモデリング精度向上のために実装を推奨します。2026年現在、Google広告の最大限のパフォーマンスを発揮するには同意モードv2が実質必須となっています。

Q: 同意モードを実装するとGA4のデータが減りますか?

A: 短期的にはユーザーが「拒否」を選んだ場合のデータは取得できなくなります。ただし、Googleのモデリング機能により、拒否したユーザーの推定データが補完されるため、長期的には精度の高い分析が可能になります。

Q: wait_for_update の値はいくつが適切ですか?

A: 一般的には500〜2000(ミリ秒)が推奨されます。CMPの読み込みが遅い場合は値を大きくしますが、大きすぎるとページパフォーマンスに影響します。500から試して、プレビューモードで consent update が捕捉されているか確認してください。

Q: GTMテンプレートギャラリーのCMPテンプレートを使うべきですか?

A: 対応するCMPの公式テンプレートがギャラリーにある場合は積極的に活用してください。実装の複雑さが大幅に軽減され、CMP側のアップデートにも追随しやすくなります。

Q: consent mode の設定は公開環境に適用されるのですか?テスト環境では?

A: GTMのプレビューモードは本番公開とは独立しているため、テスト環境でもプレビュー機能を使えば確認できます。ただし、GTMコンテナを公開(Publish)するまで本番環境には反映されません。

Q: WordPress サイトの場合、どのプラグインが対応していますか?

A: 「Cookiebot」「Cookie Notice」「GDPR Cookie Consent」などのプラグインが同意モードv2に対応しています。GTM連携機能を持つプラグインを選ぶと、カスタムコードなしで設定できる場合があります。

まとめ

Google Tag Manager 同意モードv2の実装エラーの多くは、初期化順序の問題v2新パラメータの追加漏れが原因です。本記事のポイントをまとめます。

  • GTMスクリプトより前に gtag('consent', 'default', {...}) を配置する
  • ad_user_dataad_personalization の2つのv2新パラメータを必ず含める
  • CMPのコールバック関数内で gtag('consent', 'update', {...}) を呼び出す
  • GTMのビルトイン同意変数を有効化し、各タグに同意チェックを設定する
  • GTMプレビューモードで Consent Initialization → consent_update の順序を確認する

正しく実装すれば、プライバシーを守りながらデータ品質を最大化できます。ぜひ本記事の手順を参考に、同意モードv2の導入を完了させてください。

Check Also

Google SitesでYouTube埋込プライバシー拡張モードがブロックされる対処法

【2026年最新版】Google SitesでYouTube埋込プライバシー拡張モードがブロックされる対処法【完全ガイド】

Google SitesでYo …