目次を表示する

SEO/AEO入門 ── AI検索時代の「見つけられる」技術

Google Tag Manager ── タグ管理の実践とプライバシー対応

Google Tag Manager ── タグ管理の実践とプライバシー対応

この章では、Google Tag Manager(GTM)の仕組みと、2026年時点でのプライバシー対応を解説する。

GTMとは何か

Google Tag Manager(GTM)は、Webサイトのコードを変更せずにトラッキングタグ(JavaScriptコード)を管理・配信するツールだ。

GTMなしの世界

GA4を追加したい → エンジニアにHTMLを修正してもらう → デプロイ待ち
広告タグを追加したい → また修正依頼 → また待つ
A/Bテストツールを追加したい → また...

GTMありの世界

GTMコンテナを1回サイトに設置する(エンジニア担当、1回のみ)

以降はGTM管理画面でタグを追加・修正 → 即時反映
(マーケターでも操作可能)

3つの基本概念

GTMは3つの概念で成り立っている。

graph TD
  T[タグ Tag\n何を実行するか] -->|いつ発火するか| TR[トリガー Trigger]
  TR -->|どの値を使うか| V[変数 Variable]

  T --> T1[GA4設定]
  T --> T2[広告コンバージョンタグ]
  T --> T3[カスタムHTMLタグ]

  TR --> TR1[ページビュー]
  TR --> TR2[クリック]
  TR --> TR3[フォーム送信]

  V --> V1[{{Page URL}}]
  V --> V2[{{Click Text}}]
  V --> V3[カスタムJS変数]

タグ(Tag)

実行したいコード。GA4の設定タグ、広告タグ、Facebookピクセルなど。

// GTMが内部的に管理するGA4設定タグのイメージ
gtag('config', 'G-XXXXXXXXXX', {
  send_page_view: false  // SPAの場合は手動制御
});

トリガー(Trigger)

タグを「いつ」発火させるか。

トリガー種類発火条件
All Pages全ページビュー
DOM ReadyDOMが構築完了時
Click - All Elementsクリック全般
Form Submissionフォーム送信
Scroll Depthスクロール深度(25/50/75/90%)
Timer一定時間経過後

変数(Variable)

タグやトリガーで使う動的な値。

組み込み変数(自動で利用可能):
  {{Page URL}}    現在のページURL
  {{Page Path}}   パス部分(/blog/seo-guide)
  {{Click Text}}  クリックされた要素のテキスト
  {{Form ID}}     送信されたフォームのID

カスタム変数(自分で設定):
  - JavaScriptで定義した値
  - データレイヤーから取得する値
  - Cookie値

データレイヤー:GTMの中核

データレイヤーはGTMがデータを受け取るJavaScriptオブジェクトだ。Eコマーストラッキングなどの高度な計測に不可欠。

// サイト側のコード(エンジニアが実装)
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'add_to_cart',
  ecommerce: {
    currency: 'JPY',
    value: 2980,
    items: [{
      item_id: 'PROD001',
      item_name: 'ワイヤレスイヤホン',
      price: 2980,
      quantity: 1
    }]
  }
});

// GTM側(マーケターが設定)
// トリガー: カスタムイベント「add_to_cart」
// タグ: GA4イベントタグ(event_name: add_to_cart、ecommerceパラメータ付き)

GTMのデータフロー全体像

graph TD
  Site["Webサイト\n(GTMコンテナ1回設置)"] --> DL["dataLayer\n(JavaScriptオブジェクト)"]
  DL --> GTM["Google Tag Manager\n管理画面"]

  GTM --> Tag["タグ(Tag)\n何を実行するか"]
  GTM --> Trigger["トリガー(Trigger)\nいつ発火するか"]
  GTM --> Var["変数(Variable)\nどの値を使うか"]

  Trigger -->|条件が成立したとき| Tag
  Var -->|動的な値を提供| Tag

  Tag --> GA4["Google Analytics 4"]
  Tag --> Ads["Google Ads"]
  Tag --> Meta["Meta Pixel"]
  Tag --> Custom["カスタムHTML\n(任意のJS)"]

2026年のプライバシー対応

GTMの運用で2026年に避けられないのがプライバシー規制への対応だ。

GDPRなどの規制に対応するため、Googleは「Consent Mode v2」を提供している。ユーザーの同意状態に応じて、タグの動作を変える仕組みだ。

// 同意の初期化(Cookie同意バナー表示前に実行)
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }

gtag('consent', 'default', {
  'analytics_storage': 'denied',    // デフォルト:拒否
  'ad_storage': 'denied',           // デフォルト:拒否
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'wait_for_update': 500             // 同意取得まで500ms待機
});

// ユーザーが同意した後
gtag('consent', 'update', {
  'analytics_storage': 'granted',   // 同意後:許可
  'ad_storage': 'granted'
});
同意タイプ内容
analytics_storageGA4などの計測Cookie
ad_storage広告関連Cookie
ad_user_dataGoogleへの広告データ送信
ad_personalizationパーソナライズ広告

2024年3月以降、EU向けにConsent Mode v2は事実上必須になった。日本サイトでも将来の規制強化に備えた実装が推奨される。

サードパーティCookieの廃止とその後

Googleは2024年後半にChromeでのサードパーティCookie廃止を「ユーザー選択式」に変更した。しかしSafariのITPは依然として1st party cookieも制限している。

2026年の現状

  • Chrome:3rd party Cookie廃止は「ユーザー選択」方式
  • Safari:ITPにより1st party Cookieも7日〜24時間に制限
  • Firefox:3rd party Cookieはデフォルト無効

対策:1st Party Data戦略

❌ 3rd Party Cookieに依存した計測
   → Safariユーザーのデータが計測できない

✅ 1st Party Data中心の計測
   → 自社ドメインのCookieを使用
   → サーバーサイドGTMで計測精度を確保

Server-side GTM

サーバーサイドGTM(sGTM)は、GTMのコンテナをGoogleのサーバー上ではなく自社のサブドメイン上で動作させる仕組みだ。

Client-side GTM(従来):
  ユーザーブラウザ → 直接 → Google Analytics

Server-side GTM:
  ユーザーブラウザ → 自社サーバー(collect.example.com)→ Google Analytics

メリット:
  - Cookieの有効期限がChrome基準(最長400日)になる
  - AdBlockerの影響を受けにくい
  - プライバシー規制への耐性が高い
  - タグの遅延読み込みで表示速度改善
graph LR
  U[ユーザー] -->|イベント送信| S[Server-side GTM\ncollect.example.com]
  S -->|転送| GA4[Google Analytics 4]
  S -->|転送| ADS[Google Ads]
  S -->|転送| FB[Meta Pixel]

GA4との連携パターン

GTMを使ったGA4の標準的な実装例:

1. GA4設定タグ
   タグ: Google タグ(G-XXXXXXXXXX)
   トリガー: All Pages
   ※SPAの場合はHistory Change トリガーを追加

2. スクロール深度の計測
   タグ: GA4イベントタグ(event_name: scroll)
   トリガー: スクロール深度(90%)
   変数: {{Scroll Depth Threshold}}

3. フォーム送信の計測
   タグ: GA4イベントタグ(event_name: form_submit)
   トリガー: Form Submission(ID: contact-form に限定)
   変数: {{Form ID}}, {{Page URL}}

GTMのバージョン管理

GTMにはバージョン管理機能がある。変更をパブリッシュする前に「プレビュー」でテストでき、問題があれば即座にロールバックできる。

ベストプラクティス:
  ✅ 変更ごとにコメントをつけてバージョンを作成
  ✅ パブリッシュ前に必ずプレビューモードでテスト
  ✅ 本番パブリッシュは1人が責任を持つ(ガバナンス)
  ❌ 緊急対応以外で「すぐにパブリッシュ」しない

次の章では、Googleがサイトを評価する2つの柱──Core Web VitalsとE-E-A-Tを解説する。