タグが増えるたびに「誰がこれ入れたんだ?」問題
マーケティング施策が増えるにつれ、サイトに埋め込むタグも増えていきます。Google広告のタグ、Meta広告のピクセル、ヒートマップツール、チャットボット——気がつけば直書きのタグがHTMLに散乱し、「このタグは何のために入れたのか」「消していいのか」が誰にもわからない状態になっていませんか?
これはGTM(Googleタグマネージャー)で解決できます。しかし、GTM自体も「とりあえず入れた」だけでは、管理画面の中でタグが乱立するだけです。
この記事では、GA4とGTMの連携を軸に、タグ管理を「仕組み化」するための設計思想と実装手順を解説します。
GTMを使うべき3つの理由
1. コードを触らずにタグを管理できる
開発チームにいちいち依頼しなくても、マーケター自身がタグの追加・変更・削除を行えます。これはスピードの問題だけでなく、「開発リソースの逼迫でマーケ施策が止まる」という構造的な問題を解決します。
2. バージョン管理ができる
GTMはすべての変更をバージョンとして記録します。「先週の変更が原因でCVが計測できなくなった」という場合、前のバージョンに即座に戻せます。
3. プレビューモードでテストできる
本番に公開する前に、タグの発火状況をブラウザ上で確認できます。これにより「本番で動かなかった」というリスクを大幅に減らせます。
STEP 1:GTMコンテナの設計思想
GTMのコンテナ設計は、後から修正するのが非常に困難です。最初の設計で8割が決まると考えてください。
コンテナ戦略:1サイト1コンテナが基本
複数サイトを1つのコンテナで管理するケースもありますが、原則として1サイト(1ドメイン)に1コンテナを推奨します。管理が煩雑になるリスクのほうが、コンテナ数を減らすメリットを上回ります。
フォルダ構成で「誰のためのタグか」を明確にする
GTMにはフォルダ機能があります。これを使わない手はありません。
推奨フォルダ構成:
📁 GA4(GA4関連のタグ・トリガー・変数をまとめる)
📁 Google Ads(広告タグ)
📁 Meta Ads(Meta広告ピクセル)
📁 Tools(ヒートマップ、チャットボット等)
📁 Custom Events(カスタムイベント計測)
WebLeapの実践例: MONO InvestmentのGA4+GTM連携ダッシュボード構築プロジェクトでは、初期段階でフォルダ構成と命名規則を定義するドキュメントを作成しました。これにより、後から参加したメンバーも「どこに何があるか」が一目でわかる状態を維持できています。
STEP 2:命名規則の統一
GTMで最も重要なルールが命名規則です。規則がないと、3か月後には「Tag1」「test」「新しいタグ」のような名前で溢れます。
推奨命名パターン
タグ:[プラットフォーム] - [イベント種別] - [対象]
GA4 - Event - form_submit_contact
GA4 - Event - btn_click_cta
Google Ads - Conversion - inquiry_complete
Meta - PageView - all_pages
トリガー:[発火条件] - [対象]
Click - CTA Button Header
PageView - Thank You Page
Scroll - 75% All Pages
Timer - 30sec All Pages
変数:[種別] - [内容]
DLV - Click Text
CJS - Get Page Category
Const - GA4 Measurement ID
STEP 3:GA4の基本タグを設定する
GA4設定タグ(Googleタグ)
これがGA4計測の土台です。
- GTM管理画面 →「タグ」→「新規」
- タグタイプ:「Googleタグ」
- タグID:GA4の測定ID(
G-XXXXXXXXXX)を入力 - トリガー:「All Pages」(全ページ)
ポイント: 測定IDはGTMの変数(定数変数)として登録しておきましょう。複数のタグで参照する際に一元管理できます。
GA4イベントタグ
カスタムイベントを送信するためのタグです。
- タグタイプ:「GA4イベント」
- 測定ID:先ほど作成した変数を参照
- イベント名:例
form_submit_contact - イベントパラメータ:必要に応じて追加(例:
form_type = contact)
STEP 4:トリガーの設計
トリガーはタグが発火する条件です。ここの設計ミスが、計測漏れや二重計測の原因になります。
よく使うトリガータイプ
| トリガー | 用途 | 注意点 |
|---|---|---|
| ページビュー | 特定ページの表示 | URLのマッチング条件に注意(「含む」vs「等しい」) |
| クリック | ボタン・リンクのクリック | CSS セレクタでの指定が安定 |
| フォーム送信 | フォームの送信完了 | バリデーションとの兼ね合いに注意 |
| スクロール距離 | 一定割合のスクロール | 25%, 50%, 75%, 90%など |
| カスタムイベント | データレイヤーからのイベント | 開発チームとの連携が必要 |
失敗談: フォーム送信トリガーを「フォーム送信」タイプで設定したところ、バリデーションエラー時にもタグが発火してしまい、実際の送信数の3倍のCVが計測されたことがあります。SPAやAjaxフォームの場合は、サンクスページの表示をトリガーにするか、データレイヤーイベントで制御する方が確実です。
STEP 5:データレイヤーの活用
データレイヤーは、Webサイトからの情報をGTMに渡すための仕組みです。高度なイベント計測にはこれが欠かせません。
データレイヤーの基本構文
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'form_submit',
'form_type': 'contact',
'form_location': 'footer'
});
GTM側では「カスタムイベント」トリガーでこのイベントを受け取り、「データレイヤー変数」でパラメータを取得します。
いつデータレイヤーを使うべきか
- フォームの送信完了を正確に検知したいとき
- 動的に変わる情報(商品名、金額など)をイベントに含めたいとき
- SPAで画面遷移を追跡したいとき
STEP 6:デバッグと検証
設定が終わったら、必ずデバッグを行います。「たぶん動いている」は禁物です。
GTMプレビューモード
- GTM管理画面右上の「プレビュー」をクリック
- 対象サイトのURLを入力
- 別タブでサイトが開き、Tag Assistantパネルが表示される
- タグの発火状況、トリガーの条件マッチ、変数の値を確認
GA4 DebugView
GTMプレビューモードと同時に、GA4のDebugViewも確認しましょう。
- GA4管理画面 →「管理」→「DebugView」
- リアルタイムでイベントとパラメータが表示される
- カスタムイベントのパラメータ値が正しいか確認
STEP 7:バージョン管理と公開のルール
公開前チェックリスト
- [ ] プレビューモードで全タグの発火を確認
- [ ] GA4 DebugViewでイベントが正しく送信されている
- [ ] 既存タグに影響がないことを確認
- [ ] バージョン名に変更内容を記載
バージョン命名の推奨
v23 - GA4 form_submit イベント追加 - 2024/01/15
v24 - Meta Pixel 更新 - 2024/01/20
GTM運用の組織ルール
技術的な設定と同じくらい重要なのが、組織としての運用ルールです。
権限管理
| 権限レベル | 対象者 | できること |
|---|---|---|
| 管理者 | GTM責任者 | すべての操作 |
| 公開権限 | マーケ担当(上級者) | 設定変更+公開 |
| 編集権限 | マーケ担当(学習中) | 設定変更のみ(公開は上長承認) |
| 読み取り権限 | 関係者 | 閲覧のみ |
WebLeapがクライアントのGTM環境を構築する際は、必ず「公開前の承認フロー」を設けます。1人が設定し、別の1人が確認してから公開する。このルールだけで、計測事故は劇的に減ります。
現場のまとめ
GTMは「便利なタグ挿入ツール」ではなく、「マーケティングデータの正確性を担保するインフラ」です。命名規則、フォルダ構成、承認フローの3つを最初に決めるだけで、半年後のGTMの状態が大きく変わります。
特にGA4との連携では、「何のデータを、なぜ取るのか」を先に設計し、それをGTMで実装するという順序を守ってください。ツールの使い方から入ると、「取れるデータを取る」になってしまい、本当に必要なデータが抜け落ちます。
WebLeapのデータ分析基盤構築サービスについて詳しくはこちら → /service/data-analytics/