GA4連携の設定・確認ガイド
ABテストプロのバリアント割当をGA4へ送り、流入元・デバイス・ページなどの切り口で分析する方法を説明します。
この連携でできること
実行中のテストでバリアント割当が記録されると、ABテストプロは既存のGoogleタグへ
abtest_exposure を送ります。GA4にすでに届いているカート追加・購入イベントと組み合わせることで、
「どのバリアントを見たユーザーが、その後カート追加や購入へ到達したか」を比較できます。
abtest_exposure(ABテストプロが送信)
↓
add_to_cart(ストアの既存GA4計測)
↓
purchase(ストアの既存GA4計測) 設定前に確認すること
| 確認項目 | 必要な状態 |
|---|---|
| プラン | Starter / Pro、または開発ストア |
| テスト | App Embedが有効で、対象のテストが実行中 |
| Googleタグ | Google & YouTubeチャネル、またはテーマ等からストアフロントのメインドキュメントへ設置済み |
| GA4ストリーム | 同じウェブデータストリームに add_to_cart と purchase が届いている |
| 同意 | Cookieバナー等でanalytics consentを許可できる |
GTM Custom Pixel内にしかGoogleタグがない構成、メインドキュメントが dataLayer のみの構成、
Googleタグがない構成は現在のv1では利用できません。対象外の構成では、アプリがGoogleタグを追加することはなく、
abtest_exposure も送信しません。
ステップ1. GA4の測定IDを確認する
- GA4を開き、左下の「管理」を選択します。
- 「データの収集と修正」→「データ ストリーム」を開きます。
- 既存のeコマース計測に使っているウェブデータストリームを選択します。
- 「測定 ID」に表示される、
G-から始まる値をコピーします。
ステップ2. ABテストプロに測定IDを設定する
- Shopify管理画面から「ABテストプロ」を開きます。
- 左側メニューの「設定」を選択します。
- 「GA4連携」の測定ID欄へ、ステップ1でコピーした値を入力します。
- 「連携する」を選択します。
- 「設定済み(タグ未確認)」と表示され、同期警告が出ていないことを確認します。
「設定済み(タグ未確認)」は、測定IDの保存と配信設定の同期が完了した状態です。 ストアフロントでGoogleタグを検出できたことや、GA4へイベントが到達したことを保証する表示ではありません。 必ず後述のイベント確認まで行ってください。
ステップ3. カスタムディメンションを登録する
- GA4で「管理」→「データの表示」→「カスタム定義」を開きます。
- 「カスタム ディメンションを作成」を選択します。
- ディメンション名に「バリアント」など、分かりやすい名前を入力します。
- 範囲は「イベント」を選択します。
- イベント パラメータへ
exp_variant_stringを入力し、保存します。
exp_variant_string をイベントスコープで登録します。
カスタムディメンションの反映には24〜48時間かかる場合があり、登録前のイベントには遡って適用されません。
必要に応じて experiment_key と variant_key も同じくイベントスコープで登録できます。
実験開始後に実験キーを変更するとGA4上の値が分かれるため、開始後は変更しないでください。
ステップ4. イベントの到達を確認する
- 通常のストアフロントを開き、analytics consentを許可します。
- 実行中テストの対象ページを開きます。
- GA4で「レポート」→「リアルタイムの概要」を開きます。
- イベント名の一覧に
abtest_exposureが届くことを確認します。
テーマエディタ、プレビューURL、アプリの ab_debug=1 ではGA4送信を行いません。
ab_debug=1 はGA4の debug_mode とは別の、アプリ側の送信停止フラグです。
abtest_exposure と既存eコマースイベントの受信状況を確認できます。
ステップ5. バリアント別のファネルを作る
1. バリアント用のセッションセグメント
- GA4で「探索」→「ファネルデータ探索」を開きます。
- セグメントの「+」から「セッション セグメント」を選択します。
- 条件を「イベント名 =
abtest_exposure」かつ「exp_variant_string= 対象値」にします。 - ユーザーセグメントの「Across all sessions」は使用しません。
exp_variant_string の値は 実験キー:バリアントキー の形式です。
例: product-main-visual:control、product-main-visual:variantA
2. カート追加ファネル
- 「オープンファネルにする」をOFFにします。
- Step 1を
abtest_exposureとし、同じexp_variant_string条件を指定します。 - Step 2を
add_to_cartにします。 - ステップ間の関係は「間接的に後に続く」を選択します。
- 作成したセッションセグメントを適用します。
3. 購入ファネル
カート追加ファネルを複製し、Step 2だけを purchase に変更します。
コントロールと各バリアントでセッションセグメントを分け、Step 1とセグメントの
exp_variant_string を同じ値にしてください。
既存Googleタグの初期 page_view は abtest_exposure より先に送られる場合があるため、
必須ステップには追加しません。
結果の読み方
各バリアントで、次の3つを同じ期間・同じ条件で比較します。
- Step 1のexposureユーザー数
- Step 2のカート追加または購入到達ユーザー数
Step 2のユーザー数 ÷ Step 1のユーザー数で求める到達率
流入元・デバイス・ランディングページは、BreakdownまたはFilterへ1つずつ追加して比較します。
exp_variant_string は abtest_exposure にだけ付くイベントスコープのパラメータです。
purchase をこのディメンションで直接分解すると (not set) になるため、必ずセッションセグメントとクローズドファネルを使ってください。
GA4分析の範囲と注意点
- GA4のファネルデータ探索はユーザースコープです。同じユーザーに条件一致セッションが複数あると、セッションをまたいでステップが結び付く場合があります。
- この手順はユーザー単位の順序到達率を比べるもので、厳密な同一セッションCVRではありません。
- v1では厳密なバリアント別売上、AOV、RPV、purchaseイベント件数の帰属は行いません。
- 同意拒否、短時間離脱、ブラウザの遮断、通信失敗により、GA4側だけイベントが欠ける場合があります。
- アプリは既存Googleタグのconfig、Consent Mode、広告設定、送信先を変更しません。
イベントが届かないとき
| 確認する場所 | チェック内容 |
|---|---|
| Googleタグ | メインドキュメント上で通常のGoogleタグが利用できるか。GTM Custom Pixelのみではないか。 |
| 測定ID | 既存eコマース計測と同じウェブデータストリームの値か。 |
| 同意 | analytics consentが許可されているか。 |
| アプリ | 対象プラン、App Embed、実行中テスト、対象URLがすべて有効か。 |
| 閲覧方法 | テーマエディタ、プレビュー、ab_debug=1 を使っていないか。 |
参考資料
- Google Analytics: 測定IDの確認
- Google Analytics: カスタムディメンションと指標
- Google Analytics: ファネルデータ探索
- Google Analytics: セグメント
abtest_exposure の到達を確認してください。勝敗の判断はABテストプロのテスト詳細画面を正本として行います。