GA4 eコマース設定ガイド|データレイヤー設計からGTM実装・レポート活用まで
目次
GA4 eコマース計測の全体像
GA4のeコマース計測は、ユーザーの購買行動をファネル(段階)ごとに追跡する仕組みです。「商品を見た」「カートに入れた」「決済に進んだ」「購入した」といった各ステップをイベントとして記録します。
これらのイベントを正しく実装すると、GA4の収益化レポートが自動で生成されます。どのステップでユーザーが離脱しているか、どの商品が収益に貢献しているかを把握できるようになります。
eコマース計測の構成要素は3つです。
主要なeコマースイベント
GA4のeコマース計測には、Googleが定義した推奨イベントを使用します。独自のイベント名で実装すると、eコマースレポートに反映されません。以下の推奨イベントを正確に実装することが前提です。
購買ファネルのイベント一覧
| イベント名 | タイミング | 必須パラメータ |
|---|---|---|
| view_item | 商品詳細ページの表示 | items(商品情報の配列) |
| view_item_list | 商品一覧ページの表示 | items, item_list_name |
| add_to_cart | カートに商品を追加 | items, value, currency |
| remove_from_cart | カートから商品を削除 | items, value, currency |
| view_cart | カートページの表示 | items, value, currency |
| begin_checkout | 決済プロセスの開始 | items, value, currency |
| add_shipping_info | 配送情報の入力完了 | items, shipping_tier |
| add_payment_info | 支払い情報の入力完了 | items, payment_type |
| purchase | 購入完了 | transaction_id, items, value, currency |
| refund | 返金処理 | transaction_id, items, value, currency |
すべてのイベントを一度に実装する必要はありません。まずview_item、add_to_cart、begin_checkout、purchaseの4つで基本ファネルを構築し、段階的に拡張するのが現実的です。
運用メモ
purchaseイベントのtransaction_idは必須です。同一のtransaction_idが重複して送信された場合、GA4は自動的に2件目以降を除外します。決済完了ページのリロードによる二重計測を防ぐ仕組みですが、そもそもサーバーサイドでの二重送信防止も合わせて実装してください。
データレイヤーの設計
データレイヤーは、WebサイトとGTMの間でデータを受け渡す標準的な仕組みです。サイト側でJavaScriptのdataLayer変数に商品情報を格納し、GTMがその値を読み取ってGA4に送信します。
データレイヤーの基本構造
GA4のeコマースイベントでは、items配列で商品情報を渡します。以下はpurchaseイベントの例です。
dataLayer.push({ ecommerce: null }); // 直前のecommerceデータをクリア
dataLayer.push({
event: "purchase",
ecommerce: {
transaction_id: "T-20260621-001",
value: 15800,
currency: "JPY",
tax: 1436,
shipping: 550,
items: [
{
item_id: "SKU-001",
item_name: "商品名A",
item_category: "カテゴリ1",
price: 7900,
quantity: 2
}
]
}
});
itemsパラメータの主要フィールド
| フィールド | 説明 | 必須 |
|---|---|---|
| item_id | 商品のSKUや管理ID | はい |
| item_name | 商品名 | はい |
| item_category | 第1階層のカテゴリ | いいえ |
| item_category2〜5 | 第2〜5階層のカテゴリ | いいえ |
| price | 単価 | いいえ |
| quantity | 数量 | いいえ |
| item_brand | ブランド名 | いいえ |
| item_variant | バリエーション(色・サイズ等) | いいえ |
| discount | 割引額 | いいえ |
ecommerceオブジェクトのクリアが必要な理由
データレイヤーは配列として蓄積されるため、前のイベントで設定したecommerceオブジェクトが残り続けます。新しいイベントをpushする直前にecommerce: nullを送信し、古いデータを明示的にクリアしてください。
このクリア処理を省略すると、意図しない商品データが混在する原因になります。
運用メモ
item_categoryは最大5階層まで設定可能です。たとえば「メンズ > アウター > ジャケット > デニム」のような商品分類をそのまま反映できます。ただし、階層が深すぎるとレポートでの分析が煩雑になるため、実務では2〜3階層程度に収めるのが扱いやすいです。
GTM経由での設定手順
データレイヤーの実装が完了したら、GTMでイベントをGA4に送信する設定を行います。ここではpurchaseイベントの設定を例に手順を示します。
ステップ1:データレイヤー変数の作成
GTMの「変数」セクションで、データレイヤーの値を取得するための変数を作成します。
| 変数名 | 変数の種類 | データレイヤーの変数名 |
|---|---|---|
| dlv - ecommerce.transaction_id | データレイヤーの変数 | ecommerce.transaction_id |
| dlv - ecommerce.value | データレイヤーの変数 | ecommerce.value |
| dlv - ecommerce.currency | データレイヤーの変数 | ecommerce.currency |
| dlv - ecommerce.items | データレイヤーの変数 | ecommerce.items |
ステップ2:トリガーの作成
「トリガー」セクションで、データレイヤーのpushをキャッチするトリガーを作成します。
- トリガーの種類:カスタムイベント
- イベント名:
purchase(データレイヤーのevent値と一致させる) - 発火条件:すべてのカスタムイベント
ステップ3:GA4イベントタグの作成
「タグ」セクションで、GA4イベントタグを作成します。
- タグの種類:Googleアナリティクス - GA4イベント
- 測定ID:対象プロパティの測定ID(G-XXXXXXXXXX)
- イベント名:
purchase - イベントパラメータに各変数をマッピング
- トリガーにステップ2で作成したトリガーを指定
ステップ4:プレビューで検証
GTMのプレビューモードで対象サイトにアクセスし、購入フローを実行します。確認するポイントは以下のとおりです。
- タグが正しいタイミングで発火しているか
- パラメータに意図した値が入っているか
- GA4のリアルタイムレポートにイベントが表示されるか
運用メモ
プレビューモードでの検証は、本番公開前の最重要ステップです。特にitems配列の中身を必ず確認してください。item_idやpriceが空(undefined)のまま本番に出すと、eコマースレポートのデータが不完全になります。検証環境がない場合は、少なくとも1件のテスト購入で全パラメータの受信を確認します。
eコマースレポートの読み方
eコマースイベントを正しく実装すると、GA4の「収益化」セクションに以下のレポートが自動生成されます。
収益化レポートの主要画面
GA4の左メニュー「レポート」→「収益化」から、3つのレポートにアクセスできます。
購入経路レポートの読み方
購入経路レポートでは、以下のファネルが可視化されます。
- セッション開始 → 商品閲覧数
- view_item → カート追加数
- add_to_cart → 決済開始数
- begin_checkout → 購入完了数
- purchase
各ステップ間の離脱率を確認し、最も離脱の多いステップを特定します。たとえばadd_to_cartからbegin_checkoutへの遷移率が低い場合、カートページのUI改善や送料表示の見直しが有効な施策になります。
レポートで確認すべき主要指標
| 指標 | 意味 | 改善のヒント |
|---|---|---|
| カート追加率 | 商品閲覧からカート追加への遷移率 | 商品ページの訴求力・価格設定 |
| カート放棄率 | カート追加から購入に至らなかった割合 | 送料・決済手段・フォーム設計 |
| 購入転換率 | セッションに対する購入の割合 | サイト全体の導線設計 |
| 平均注文単価 | 1購入あたりの平均金額 | アップセル・クロスセル施策 |
運用メモ
カート放棄率が高い場合、リマーケティングと組み合わせた改善が効果的です。GA4のオーディエンス機能で「add_to_cartしたがpurchaseしていないユーザー」をセグメント化し、Google広告やMeta広告でリマーケティングリストとして活用できます。
よくある実装ミスと対策
currencyパラメータの欠落
valueを送っていてもcurrencyが欠けていると、GA4の収益データに反映されません。日本円の場合はcurrency: "JPY"を必ず含めてください。
items配列が空
データレイヤーのpush時にitems配列が空の状態で送信されるケースがあります。商品データの取得が非同期処理の場合、レンダリング完了前にpushが実行されていないか確認してください。
transaction_idの重複
テスト環境と本番環境で同じtransaction_idを使い回すと、本番データが重複排除されることがあります。テスト用と本番用でtransaction_idの体系を分けてください。
イベント名のスペルミス
purchaseをpurhcaseと入力しても、カスタムイベントとしては記録されます。しかしGA4はeコマースイベントとして認識しないため、収益化レポートには一切反映されません。推奨イベント名はコピー&ペーストで入力してください。
関連記事
参照元
SIGNALZ
運用型広告の実務経験をもとに、体系的なナレッジを発信しています。