よくある質問 (FAQ)
ABテストプロに関するよくある質問と回答をまとめています。
基本・導入
ABテストとは何ですか?どのように売上向上に役立ちますか?
ABテストとは、同じページの異なるバージョン(例:ボタンの色、商品説明文、画像など)を訪問者にランダムに表示し、どちらがより良いコンバージョン(購入、カート投入など)に繋がるかを統計的に比較する手法です。このアプリでは CVR、ATC、AOV、RPV などの指標を計測し、各バリアントの効果を比較できます。
このアプリをインストールしてから実験を開始するまで、どのくらい時間がかかりますか?
オンボーディングは2ステップで完了します。1. App Embedの有効化(テーマ設定でアプリを有効化、約1分)、2. 最初のテスト作成(実験を作成してテスト開始、約3-5分)。両方完了後にホーム画面へ遷移できます。
App Embedとは何ですか?なぜ有効化が必要ですか?
App EmbedはShopifyテーマの<head>タグに埋め込まれるスクリプトで、訪問者識別(ab_sid Cookie、90日間有効)、バリアント割当、イベント送信(カート投入、購入など)、テンプレート切替を担います。App Embedが無効だとテストの割当も計測も一切動作しないため、必須の設定です。
テーマカスタマイザーでApp Embedを有効化する手順を教えてください
1. オンボーディング画面で「テーマ設定を開く」ボタンをクリック、2. テーマエディタが開いたら左サイドバーで「App embeds」を選択、3. 「JP A/B Testing」の横のトグルスイッチをオンにする、4. 右上の「保存」ボタンをクリック。保存後、アプリ側でApp Embedの状態が自動的に同期されます。
開発ストアでもアプリを使えますか?
はい、開発ストア(Development Store)では全機能が制限なく利用可能です。同時実験数の上限チェックをスキップし、全テストタイプ(ページ、テンプレート、テーマ、URLスプリット)が利用可能です。本番ストアへ移行する際は、プランに応じた同時実験数制限(Free: 1件、Starter: 5件、Pro: 15件)が適用されます。
コードが書けなくても使えますか?
はい、可能です。バリアントの作成はShopify標準の「テーマエディタ(カスタマイズ画面)」を使って、ノーコードで画像やテキストを差し替えることができます。
テストタイプについて
4つのテストタイプ(ページ単体・テンプレート・テーマ・URLスプリット)の違いは何ですか?
ページ単体テスト(page): 特定の商品ページやブログ記事など、単一ページのテスト。テンプレートテスト(template): 商品詳細やコレクションなど、同じテンプレートを使う全ページを一括テスト。テーマテスト(theme): サイト全体(公開テーマ vs 未公開テーマ)を比較。URLスプリットテスト(url): 異なるURLへのトラフィック振り分け(広告やメール向け)。
ページ単体テストはどのような場合に使用しますか?
特定商品ページの改善(商品説明文、画像、価格表示のテスト)、ブログ記事の最適化(CTAボタンやレイアウトの比較)、ランディングページのA/Bテスト(単一ページのコンバージョン向上)などに最適です。対象ページのテンプレートを複製し、Shopifyのテーマカスタマイザーで編集できます。
テンプレートテストでコレクションや商品一覧をテストできますか?
はい、可能です。product(商品詳細ページ)、collection(コレクションページ)、page(固定ページ)、blog(ブログ一覧)、article(記事詳細)がサポートされています。テンプレート複製方式により、同じテンプレートを使用する全ページに対してテストが適用されます。
テーマ全体テストはどのような場面で使用すべきですか?
サイトリニューアル(既存テーマ vs 新デザインテーマの比較)、大幅なデザイン変更(ヘッダー、フッター、カラースキームなどサイト全体の変更)、新テーマ導入前の検証(Dawn → 別テーマへの移行時のコンバージョン影響確認)などに効果的です。公開テーマ(main)をコントロールとして、未公開テーマをバリアントに設定します。
URLスプリットテストの「束ねURL」とは何ですか?
束ねURLとは、App Proxy経由で発行される特別なURL(形式: https://{shop}/apps/ab/split/{slug})です。広告やメールにこの束ねURLを掲載すると、訪問者は自動的にコントロールURLまたはバリアントURLにリダイレクトされます。ab_sid Cookieで90日間粘着し、utm_*パラメータはリダイレクト時に維持されます。
商品の「価格」をテストすることはできますか?
テンプレートの変更だけでは「表示価格」しか変わらず、実際のカート投入金額は元のままになるため、推奨されません。価格テストを行いたい場合は、異なる価格の商品を別途作成し、「URLスプリットテスト」機能を使ってリダイレクトさせる方法を推奨します。
実験の作成・設定
同じ商品ページで複数の要素を同時にテストできますか?
いいえ、同一要素に対する複数テストは禁止されています。「スコープロック(ScopeLock)」機能により制御され、実験を開始またはスケジュールすると対象のscopeKeyがロックされます。同じスコープで別のテストを実行しようとすると「SCOPE_LOCK_CONFLICT」エラーが発生します。
実験を作成する際に必須の設定項目は何ですか?
タイトル(実験の名前、必須、最大255文字)、実験キー(URL用スラッグ、自動生成可、最大32文字)、ターゲット(テスト対象ページ/テンプレート/テーマ/URL)、バリアント配分(コントロール + バリアントAの重み、合計100%)、スケジュール(「今すぐ開始」または「開始日時指定」、終了日時は必須)の5つが必須項目です。
バリアントは最大いくつまで作成できますか?
現在は2つ固定(コントロール1つ + バリアント1つ)です。これはA/Bテストの基本形式であり、複雑な多バリアントテストよりも統計的な信頼性を得やすくなります。
トラフィック配分の設定方法を教えてください
実験作成画面でスライダーまたは数値入力で設定できます。デフォルトはコントロール50% / バリアントA 50%です。合計は必ず100%、各バリアントは0%より大きい値が必須です。「均等に戻す」ボタンで50:50にリセットできます。
オーディエンス機能で絞り込める条件は何ですか?
デバイス(all, mobile, desktop)、訪問者タイプ(all, new, returning:新規訪問者 vs 既存訪問者)、ログイン状態(all, logged-in, guest)の3つのセグメントフィルタが実装されています。割当時のスナップショット(audienceSnapshot)に基づいて統計データを絞り込めます。
実験開始日時と終了日時を事前に設定できますか?
はい、スケジュール実行が可能です。開始日時は未来の日時を指定(現在時刻より後)、終了日時は開始日時より後を指定(必須)。実験期間は最低1日〜最大90日です。開始日時を指定するとステータスがscheduledになり、スコープロックが即座に取得されます。
テスト終了後、勝ちバリアントを適用できますか?
はい、テスト終了後に実験詳細画面で統計データを確認し、手動で勝ちバリアントを選択・適用できます。適用後、ステータスがappliedに変更されます。
実験作成時に「下書き保存」と「開始する」の違いは何ですか?
下書き保存: ステータスがdraftになり、設定を保存するだけ。テストは開始されず、スコープロックも取得されません。開始する: スケジュールが設定されていればscheduled、即時開始ならrunningに変更。スコープロックを取得します。
統計・指標
主要指標(KPI)として選べる項目は何ですか?
CVR(コンバージョン率:購入した訪問者の割合)、ATC(カート投入率:カートに追加した訪問者の割合)、AOV(平均注文額:購入者あたりの平均売上)、RPV(訪問者単価:全訪問者あたりの平均売上)の4つの指標が実装されています。
CVR(コンバージョン率)とは何ですか?どのように計算されますか?
CVRは「購入した訪問者の割合」を示す最も重要な指標です。計算式: CVR = 購入した訪問者数 / 割り当てられた訪問者数。purchaseイベントを送信した訪問者がコンバージョンとしてカウントされます。
計測データはどのように収集されていますか?
Web Pixelがpurchase(購入)やadd_to_cart(カート追加)などのイベントを検知し、App Proxy経由でサーバーに送信します。イベントはab_sid Cookie(訪問者ID)と紐付けられ、バリアントへの割当情報と結合されます。
割当(サンプルサイズ)のカウント方法は?
訪問者がテスト対象ページにアクセスし、バリアントに割り当てられた時点で「割当」としてカウントされます。同一訪問者(ab_sid)は期間内に何度訪問しても1回としてカウントされます(ユニークカウント)。
セッション数とユニーク訪問者数の違いは何ですか?
本アプリでは「セッション」ではなく「ユニーク訪問者(ab_sid単位)」でカウントします。ab_sid Cookieは90日間有効なため、同一訪問者が何度サイトを訪れても期間内は1人としてカウントされます。
CV数(コンバージョン件数)はどこで確認できますか?
実験詳細画面で各バリアントの「購入者数」や「カート追加者数」として確認できます。これらはユニーク人数(1人が複数回購入しても1としてカウント)です。購入件数(注文数)はAOV計算に使用されます。
同一訪問者が複数回購入した場合、どう計測されますか?
指標によって異なります。CVR: 1人としてカウント(ユニーク)。AOV: 購入件数分カウント(3回購入なら3件で平均を計算)。RPV: 購入金額の合計を訪問者数で割るため、複数購入は合計金額に反映されます。
ATC(カート追加率)の計算式は?
ATC = カート追加した訪問者数(ユニーク) / 割り当てられた訪問者数(ユニーク)。add_to_cartイベントを1回以上送信した訪問者をユニークにカウントして計算します。
AOV(平均注文額)の計算式は?
AOV = 購入金額の合計 / 購入件数(注文数)。purchaseイベントに含まれるamount(金額)を合計し、購入件数で割ります。購入しなかった訪問者は計算から除外されます。
RPV(訪問者あたり売上)の計算式は?
RPV = 購入金額の合計 / 割り当てられた訪問者数(ユニーク)。購入しなかった訪問者は売上0円として計算に含めるため、CVRとAOV両方を加味した「真の収益性」を示す指標です。
統計データはいつ更新されますか?
集計ジョブは通常10分ごとに実行され、データベースの統計テーブルを更新します。リアルタイムではありませんが、一定間隔で最新値に更新されます。ヘルスチェック画面で「統計ジョブ」の最終実行時刻を確認できます。
データの保持期間はありますか?
はい、イベントデータと割当データには保持期間(retention)が設定されています。実行中のテストでは直近90日間のローリングウィンドウでデータが集計されます。停止したテストは停止時点の最終集計値が保持されます。
GA4 (Google Analytics 4) でテスト結果を分析できますか?
連携可能です。アプリは window.abTrackExperimentEvent 等でイベントを発火したり、DOM属性にテスト情報を付与したりできるため、Google Tag Manager (GTM) を経由してGA4にカスタムディメンションとして送信する実装が可能です(※要エンジニアリング)。
アプリの計測がGA4や広告管理画面の数値と違うのですが?
各ツールは計測定義が根本的に異なるため、数値の完全一致は原理的に起こりません。本アプリはユニーク訪問者ベース、GA4はイベント発生回数ベース(デフォルト)、Meta広告はビュースルーCV(広告閲覧のみ)や統計モデル推定を含むため、定義上の差異が生じます。
粘着割当(Sticky Assignment)・Cookie
訪問者IDとは何ですか?どのように管理されますか?
訪問者IDは ab_sid というCookieで管理される一意の識別子です。有効期限は90日間で、SameSite=Lax, path=/, HTTPS時はSecure属性が付与されます。カート属性にも同期され、チェックアウト時の計測を確保します。
一度割り当てられたバリアントは変わりますか?
いいえ、粘着割当(Sticky Assignment)により同じ訪問者は常に同じバリアントを見ます。割当情報はab_assign_cache Cookieにも短期キャッシュされます。ab_sid Cookieが有効な90日間は同じバリアントが表示されます。
別のブラウザやデバイスからアクセスした場合はどうなりますか?
別の訪問者として扱われ、新しい ab_sid が発行されます。デバイス間・ブラウザ間での訪問者の紐付けは行われません。これはプライバシーに配慮した設計です。
同意管理(Consent Management)はどのように機能しますか?
Shopifyの顧客プライバシーAPI(window.Shopify.customerPrivacy)と連携しています。同意が得られている場合はイベント送信を実行、拒否されている場合は抑制、プライバシーAPIが利用不可の場合はデフォルトで同意あり扱いとなります。
テーマエディタやプレビューモードでテストは動作しますか?
いいえ、テーマエディタ・プレビューモードでは無効化されます。window.Shopify.designMode === true またはiframe内での実行を検出し、割当やイベント送信を行いません。これにより正確な計測を維持します。
競合防止・エラー
「SCOPE_LOCK_CONFLICT」エラーとは何ですか?
同じターゲット(ページ、テンプレート、テーマ、URL)に対して複数のテストを同時に実行しようとした場合に発生するエラーです。既存のテストを停止するか、別のターゲットを選択してください。
テーマテストは同時に何件まで実行できますか?
1件のみです。テーマテストはサイト全体に影響するため、複数同時実行は禁止されています。「テーマテストは同時に1つまで実行可能です」というエラーが表示されます。
「APP_EMBED_DISABLED」エラーの対処方法は?
App Embedがテーマ設定で有効化されていない場合に発生します。Shopify管理画面 → テーマ → カスタマイズ → App embeds で「JP A/B Testing」をオンにして保存してください。
「PLAN_LIMIT_EXCEEDED」エラーが出たらどうすれば?
プランの同時実行テスト数上限に達しています(Free: 1件、Starter: 5件、Pro: 15件)。不要なテストを停止するか、上位プランにアップグレードしてください。開発ストアの場合は制限が適用されません。
バリアント設定が不足していると言われます
ページ/テンプレートテストではtemplateKey等が必要、デフォルトテンプレート(サフィックスなし)は選択不可です。テーマテストではthemeIdが必要でバリアントには未公開テーマのみ選択可能。URLスプリットでは各バリアントに有効なURLが必要です。
勝ち判定・運用
勝ちバリアントはどのように判断すればよいですか?
各バリアントのCVR(コンバージョン率)、ATC(カート投入率)などの指標を比較し、明確な差がある場合にそのバリアントを勝ちと判断します。統計データは実験詳細画面でリアルタイムに確認できます。
サンプルサイズはどのくらい必要ですか?
一般的な目安として、各バリアントに最低100〜300件のコンバージョンが必要です。必要なサンプルサイズはベースラインCVR、検出したい最小効果量(MDE)、信頼水準に依存します。
実験はいつ停止すべきですか?
十分なサンプルが集まり明確な差が見られた場合、指定した終了日時に達した場合、十分なサンプルが集まらない場合(最大90日でテスト終了)、問題が発生した場合に停止を検討してください。
一時停止と停止の違いは何ですか?
一時停止(paused): 割当とイベント送信が停止、再開可能、スコープロックは維持。停止(stopped): 完全終了、再開不可、スコープロックが解放されます。
テストの削除条件は何ですか?
draft(下書き)、stopped(停止済み)、applied(勝者適用済み)のステータスの場合のみ削除可能です。running(実行中)やpaused(一時停止中)は先に停止してから削除してください。
アプリをアンインストールした場合、作成したテストやテンプレートはどうなりますか?
テストは即座に停止し、お客様には元のデザイン(コントロール)が表示されます。テーマ内に複製されたバリアント用テンプレート(.jsonファイル)は自動削除されませんので、不要であればテーマエディタから削除してください。
テスト結果のレポートを社内で共有するには?
現在、管理画面のダッシュボード閲覧権限をメンバーに付与していただくか、画面のスクリーンショットでの共有をお願いしています(CSVエクスポート機能は今後実装予定です)。
プレビュー・デバッグ
バリアントをプレビューする方法は?
実験作成・詳細画面の「プレビュー」ボタンをクリックします。プレビューURL形式: {ターゲットURL}?ab_preview={experimentKey}:{variantKey}&view={templateSuffix}。プレビューモードでは計測は行われません。
ヘルスチェック画面で何を確認できますか?
App Embed(テーマ埋め込みの有効状態)、イベント計測(直近24時間のイベント受信)、統計ジョブ(集計処理の実行状況、30分以内が正常)の3項目をチェックします。全項目が「ok」であれば正常動作しています。
イベントが計測されない場合の確認ポイントは?
App Embedが有効か、テストが「実行中」か、テーマエディタ内でないか、同意が得られているか、URLスプリットは束ねURL経由かを順にチェックしてください。
コンソールログでデバッグできますか?
はい、App Embedスクリプトはブラウザコンソールにログを出力します。主なログプレフィックス: [jp-ab-test](一般)。ab_debug=1 パラメータを追加すると詳細ログが有効になります。
テストの統計データが更新されない場合は?
テストが「実行中」か、ヘルスチェックで警告・エラーがないか、統計ジョブが実行されているか、セグメントの絞り込み条件が厳しすぎないかを確認してください。統計は通常10分以内に反映されます。
プラン・料金
各プランの違いは何ですか?
Free(無料、同時1件)、Starter($19/月、同時5件)、Pro($39/月、同時15件)の3プランがあります。開発ストアでは全プランの制限が解除されます。
プランをアップグレードするには?
アプリの「設定」→「プラン」からプランを選択できます。有料プランを選択するとShopifyの確認画面が表示され、課金を承認すると即座にアップグレードされます。
プランをダウングレードできますか?
はい、いつでも可能です。ただし、現在の実行中テスト数が新プランの上限を超えている場合は、先にテストを停止する必要があります。
開発ストアでは無料で全機能を使えますか?
はい、開発ストア(isDevelopmentStore: true)では同時実行テスト数の上限なし、全テストタイプが利用可能、課金不要です。本番ストアへ移行すると、選択したプランに応じた制限が適用されます。
請求はどのように行われますか?
Shopifyのサブスクリプション課金を使用しています。請求サイクルは30日ごと、通貨はJPY(日本円)またはUSD、請求先はShopifyアカウントに紐付けられます。
従量課金はありますか?トラフィックが増えると料金は上がりますか?
いいえ。本アプリは「同時実行テスト数(Active Experiments)」による固定プラン制です。PV数やユニークユーザー数による追加料金は一切発生しませんので、大規模なセールの際も安心してご利用いただけます。
高度なトピック
複数のテストが競合した場合、どのテストが優先されますか?
優先順位は「URLスプリットテスト > テーマテスト > ページ/テンプレートテスト」の順です。特にURLスプリットテストに参加中のユーザーは、他のすべてのテストから除外されます。これはユーザー体験の一貫性を保つための仕様です。
カスタムドメインでURLスプリットテストを使用できますか?
はい、ストアに設定されたカスタムドメインはURLスプリットテストで使用できます。許可されるドメイン: *.myshopify.com(デフォルトドメイン)、ストアに登録済みのカスタムドメイン。外部ドメインへのリダイレクトはセキュリティ上禁止されています。
utm_*パラメータはリダイレクト時に維持されますか?
はい、URLスプリットテストではutm_source、utm_medium、utm_campaign、utm_term、utm_contentなどのUTMパラメータがリダイレクト先に引き継がれます。
タイムラインイベントとは何ですか?
テストのライフサイクルイベントを記録する監査ログです。started(テスト開始)、paused(一時停止)、stopped(停止)、scope_lock_denied(スコープロック競合)などが記録され、トラブルシューティングに活用できます。
GDPRに対応していますか?
はい、顧客データリクエスト(データ出力)、データ削除リクエスト(イベント・割当データ削除)、店舗削除(アプリデータ完全削除)、同意管理(Shopify Customer Privacy API連携)を実装しています。古いイベントデータは自動的にパージされます。
技術・互換性
外部のページビルダーアプリ(GemPages, Shogun等)と併用できますか?
基本的には推奨しません。本アプリはShopifyの標準テンプレート機能(Liquid)とApp Embedの仕組みに依存しています。ページビルダーが独自のDOMレンダリングを行う場合、正常にバリアントが適用されない場合があります。
Headlessコマース(Hydrogen等)に対応していますか?
いいえ、対応していません。現在のバージョンはOnline Store 2.0(Liquidテーマ)とApp Embed機能での動作を前提としています。
テストによるサイトパフォーマンス(Lighthouseスコア)への影響は?
最小限に抑えられています。App Embedは非同期で読み込まれ、アンチフリッカー(ちらつき防止)スクリプトも最適化されています。ただし、作成したバリアントテンプレート自体に重い画像やスクリプトが含まれる場合はその限りではありません。
トラブルシューティング
テストを開始したのにデータが0のままです
App Embedが有効か、テストが「実行中」状態か、テーマエディタやプレビューで見ていないか確認してください。また、テスト開始直後は訪問者がまだ少ないためデータが表示されるまで時間がかかる場合があります。
バリアントが表示されず、常にコントロールが表示されます
既に別のバリアントに割り当て済みの可能性があります。シークレットモードで新規訪問者として確認するか、Cookieを削除して再度アクセスしてください。また、配分設定が極端(90%:10%など)だと一方に偏ることがあります。
プレビューが正しく動作しません
プレビューURLのパラメータが正しいか確認してください。形式: ?ab_preview={experimentKey}:{variantKey}&view={templateSuffix}。また、テストが下書き状態でもプレビューは可能ですが、App Embedが有効である必要があります。
バリアント用テンプレートが選択肢に表示されません
テーマエディタでテンプレートを複製し、サフィックス付きの名前で保存する必要があります。例: product.ab-test、collection.variant-a。デフォルトテンプレート(サフィックスなし)はバリアントとして選択できません。
テーマを変更したらテストが動かなくなりました
新しいテーマでApp Embedが有効になっていない可能性があります。テーマを変更した場合は、新しいテーマでも「App embeds」からABテスト埋め込みを有効化してください。
購入イベントが計測されていません
Web Pixelがブロックされている、顧客が計測を拒否している、チェックアウト完了前に離脱した、購入金額が0円の場合などが考えられます。ヘルスチェック画面で「イベント計測」の状態を確認してください。
URLスプリットテストの結果がおかしい/データが少ない
訪問者が束ねURLを経由せず、直接コントロールURLやバリアントURLにアクセスしている可能性があります。広告やメールのリンクはすべて束ねURLを使用してください。
テストを停止したのにバリアントが表示され続けます
ブラウザキャッシュやCDNキャッシュが原因です。シークレットモードで確認するか、しばらく待ってからキャッシュクリアして確認してください。通常は数分〜数時間で元に戻ります。
テストを削除できません
実行中(running)や一時停止中(paused)のテストは削除できません。先に「停止」ボタンでテストを完全停止してから削除してください。
セグメントで絞り込むとデータがなくなります
絞り込み条件に該当するデータが少ない、または存在しない可能性があります。例えば「PC + ログイン + リピーター」のようにたくさんの条件を掛け合わせると該当者がほぼいないことがあります。
勝者を適用したのに反映されません
テーマキャッシュの影響か、別のテーマが公開中の可能性があります。適用対象のテーマが現在公開中のテーマであることを確認してください。また、ブラウザキャッシュをクリアして確認してください。
テストの編集ができません
実行中(running)のテストは一部の設定のみ編集可能です。バリアントやターゲットなど重要な設定を変更したい場合は、テストを停止してから新しいテストを作成してください。