Closed7

GTMタグとは

yamayama

✅ GTM(Google Tag Manager)とは

サイトに埋め込む「タグ」(計測用のコード)を、まとめて管理できる仕組みです。

例:Google Analytics や Facebook 広告の計測コードを、サイトに直接埋め込まず、GTM経由で配信できます。

✅ GTMタグとは

タグ = 実際に送信される「計測リクエストの設定」。
例:

「ページを見たら PageView を送る」タグ

「購入完了したら Purchase を送る」タグ

yamayama

✅ Google Tag Manager(GTM)の設置と計測の流れまとめ

  1. GTM(Google Tag Manager)とは

Webサイトに埋め込む計測コード(タグ)を一元管理する仕組み

直接コードを埋め込まなくても、GTMに設定するだけで各種サービス(Google Analytics, Facebook広告 など)にデータを送信できる

  1. 設置の流れ
    (1) GTMコンテナを作成

GTM管理画面で「コンテナ」を作成

コンテナ = 計測タグ・トリガー・変数をまとめたもの

(2) GTMスニペットをサイトに埋め込む

GTMが発行する JavaScriptコードを <head> と <body> に貼り付ける

これでサイトを開いたときにGTMコンテナが読み込まれる

(3) タグを設定

タグ = 「どこに・何のデータを送るか」

例:

GA4タグ(Google Analytics 4タグ)

Meta CAPIタグ(Facebook Conversions APIタグ)

(4) トリガーを設定

トリガー = 「いつタグを発火させるか」

例:

全ページで発火(→PageView送信)

ボタンをクリックしたとき発火(→購入イベント送信)

yamayama

✅ GA4(Google Analytics 4)での計測

誰が:ユーザー(サイト訪問者)

どこに:Googleのサーバー

どうやって:ユーザーのブラウザが、GTM(Google Tag Manager)を通じてイベントを送信

なにを:ページを見た記録(page_view)、スクロール、クリック、購入などのイベント

ユーザー

ブラウザ(ページに埋め込んだ GTMタグ)

Google タグマネージャー(GTM コンテナ内の GA4タグが発火)

Google の計測サーバー

GA4 レポートに反映


✅ CAPI(Conversions API, Meta/Facebook)での計測

誰が:ユーザー(サイト訪問者)

どこに:Meta(Facebook)のサーバー

どうやって:ユーザーの行動データをサイト → GTM → サーバー(Server-side GTMなど)を経由して送信

なにを:広告効果に関連するイベント(PageView、AddToCart、Purchase など)

どうする:Meta広告マネージャーで、広告の効果測定や最適化に利用する

👉 GTMを使うと「Meta CAPIタグ」を設定し、必要なイベントをMetaに正しく送信できる。
ユーザー

ブラウザ(ページに埋め込んだ GTMタグ)

Google タグマネージャー(GTM コンテナから サーバーサイドGTM に送信)

サーバーサイド GTM(計測データを整理)

Meta(Facebook)広告サーバー

Meta広告マネージャーに反映

yamayama

🔹 1. クライアントサイドGTM(ブラウザ側)

普通に「GTMタグをサイトに埋め込む」といったらこれ。

ページの <head> や <body> にコードを入れる。

ユーザーのブラウザで動く。

主に GA4(Google アナリティクス 4) のイベントや、広告タグを発火させる。

🔹 2. サーバーサイドGTM(サーバー側)

別途「サーバー」を用意して、その中にGTMコンテナを置く。

クライアントサイドGTMから送られてきた計測データを 整理・加工・匿名化 してから広告プラットフォーム(Meta, Google Adsなど)に送る。

特に MetaのCAPI(Conversion API) や プライバシー強化 に使われる。

つまり「中継基地」みたいな役割。

イメージすると…
ユーザーのブラウザ
↓(クライアントサイドGTM)
Google タグマネージャー(Webコンテナ)

(必要なら)サーバーサイドGTM

広告・解析サービス(GA4, Meta CAPI など)

👉 まとめると:

GTMは1種類じゃなくて「ブラウザ用(クライアントサイド)」と「サーバー用」がある。

GA4は基本ブラウザ側だけでOK。

Meta CAPIを正しく動かすなら、サーバーサイドGTMを噛ませるケースが多い。

yamayama
項目 GA4(Google Analytics 4) CAPI(Conversions API, Meta/Facebook)
提供元 Google Meta(Facebook)
目的 Webサイトの行動分析 広告効果測定・最適化
データ送信方法 ブラウザから直接Googleへ サーバー経由でMetaへ
主なイベント page_view, scroll, click, purchase など PageView, AddToCart, Purchase など
確認画面 Google Analytics Meta広告マネージャー
yamayama

Meta CAPI / Pixel 計測におけるIDと二重計測防止の整理

  1. 各IDの役割
    ID 役割 誰/何を識別 備考
    pid (Pixel ID) Pixel自体を識別 どのMeta Pixel(アカウント・サイト用)に送るか 固定。ブラウザPixel・CAPIで同じIDを使うことで同じPixelとして扱われる
    fbp (Facebook Browser ID) ユーザー識別 ブラウザ単位の訪問者 ブラウザCookieから取得。サーバー側でも送信して同一ユーザーを紐付け
    eid (Event ID) イベント識別 どのイベントか(ユニーク) 同一イベントの二重送信防止。ブラウザPixelとCAPIの両方でユニークに設定
  2. 二重計測防止の仕組み

同一Pixel・同一イベントを複数回送らない

Metaは (pid + eid) の組み合わせでイベント重複チェック

同じ pid, 同じ eid → 重複として無視

同じ pid, 異なる eid → 別イベントとして計測

同一ユーザーを識別

fbp でブラウザ単位のユーザーを特定

CAPIから送る場合も同じ fbp を送ると、サーバー経由でも同一ユーザーと認識される

  1. 広告経由・非広告経由の扱い

pid は固定 → Pixel自体を指すので広告経由に関係なく同じIDを使う

広告経由か否か は別のパラメータ(ad_id、source、campaign等)で判定

eid はイベントごとにユニーク → 二重計測防止

fbp はユーザー単位 → 同一ユーザーかを識別

  1. 計測までの流れ(ブラウザPixel + CAPI)
    [ユーザーアクセス]


    [ブラウザ側GTM]

    ├─ Pixelタグ発火 (pid固定, eid動的, fbpブラウザID)

    └─ Data Layerにイベント積む


    [サーバーサイドGTM (CAPI)]

    ├─ Webコンテナからイベント受信

    ├─ eid をユニークに設定

    ├─ fbp を送信してユーザー識別

    └─ Meta CAPIに送信 (pid=同じPixel)


    [Facebook / Meta]

    ├─ pidでPixel識別
    ├─ fbpでユーザー識別
    ├─ eidで重複チェック

    └─ イベントとして計測・広告最適化に利用

  2. ポイントのまとめ

pid = Pixel自体のID(固定、ブラウザ・サーバー共通)

fbp = ユーザー識別(同一ユーザー判定)

eid = イベント識別(重複防止)

広告経由か否かは pid ではなく別パラメータで判定

サーバー経由(CAPI)はブラウザブロックを回避し、より正確に計測

yamayama
  1. 権限なし(GTMに入れない)でもできる確認
    A) まず「タグが動いてるか」を見る(Chrome DevTools)

対象ページを開く → F12 → Network タブ。

右上のフィルターに入れるキーワード例

GTM本体の読込: googletagmanager.com/gtm.js(クライアントサイドGTM)

GA4の送信: g/collect

Metaピクセル(ブラウザ): facebook.com/tr?

Server-side GTM宛て: gtm- で始まる独自ドメインや *.appspot.com(例: gtm-xxxx.uc.r.appspot.com)

400エラーが出ているリクエストをクリック → Headers → Query String Parameters を確認。

例:en=PageView(イベント名)/ eid=...(イベントID)/ dl(ページURL)/ dr(リファラ)/ fbp / fbc / pid など

「固定の文字列」や「空」 があれば怪しい(例:eid=event_id のまま固定)。

Response タブにエラーメッセージが出ることもある(「Missing required param …」など)。

同じ操作を何度か再現(ページ表示/ボタンクリック等)→ 毎回同じ eid ならアウト。

集めておくと良い証拠:
失敗リクエストの Request URL、Status、Query Parameters、Response(あれば)をスクショ。

B) 補助ツール(任意)

Meta Pixel Helper(Chrome拡張):ブラウザ側ピクセルの発火と警告を簡易確認。
※ サーバーサイド経由(CAPI)の中継までは見えない。

  1. プレビューだけ見られる(管理者に「プレビューログインURL」を出してもらう)

管理者に 「GTMプレビュー(Tag Assistant)」のURL を発行してもらう。

そのURLから対象ページを開くと、下部にデバッグパネルが出る。

左列「Events」で Page View 等を選ぶ → 右側の

Tags Fired(発火したタグ)

Tags Not Fired(発火しなかったタグと理由)

Variables(変数の実際の値:ここで event_id などが固定文字列になってないか確認)
を見る。

問題のイベント(PageView / Purchase 等)で、どのタグがいつ何を送ったか が把握できる。

集めるべき情報:
「どのイベントで」「どのタグが」「どの変数値で」発火したか(特に event_id / event_name)。

  1. GTMに閲覧権限あり(Webコンテナの中身を読む)

ワークスペース → タグ で一覧。

該当タグ(GA4 / Meta / 送信先が“Server”などの名前)を開く:

入力フィールドに固定文字列が入っていないか(例:event_id とだけ書かれている等)。

変数(例:{{Event ID}})を使うなら、その変数の中身を 「変数」メニューで確認(乱数・UUID生成になっているか)。

トリガー を確認(想定タイミングで発火しているか)。

バージョン / 公開履歴 で最近の変更点を把握。

ありがちなNG:

event_id を 固定文字列で設定

event_time(タイムスタンプ)が未設定

Pixel ID / 計測ID の間違い

開発環境だけ別ドメイン(Server-side宛先)なのに切替れていない

  1. Server-side GTM(サーバーコンテナ)にアクセスできる

Serverコンテナ を開く → Clients(クライアント):

どのリクエスト(例:/p ?en=PageView 等)がどのクライアントにマッチしているか。

Tags(サーバータグ):

Meta/Facebook 用のタグで Pixel ID と Access Token が正しいか。

Event Name / Event ID / Event Time のマッピング。

プレビュー(Server側のデバッグ)で Incoming Requests を見て、中継されたペイロードを確認。

出力先へのレスポンス(Meta側の応答コード/エラー)を確認。

ここで 400 の「正確な理由」が見えることが多い。

典型的エラー例(CAPI)

event_id が重複/空/固定

event_time 欠落(UNIX秒が必要)

pixel_id / access_token 不正

必須フィールド(action_source など)不足

  1. GCP(Google Cloud Platform)のログまで見られる(App Engine / Cloud Run)

Google Cloud Console → Logs Explorer。

サービス(例:appspot の Server-side GTM)で絞り込み、severity=ERROR または httpRequest.status=400 で検索。

失敗リクエストの 詳細ログ(スタックトレース/送信先のエラー本文)を確認。

エラー内容をもとに、Serverタグの パラメータ不足や型不一致 を修正。

このスクラップは2日前にクローズされました