ab-testing-ecommerce について
EC チーム向けに、A/B テストのツール選定、サンプルサイズの見積もり、各プラットフォームでの設定、結果の解釈を案内するスキルです。早期終了による誤判定を避けるため、事前の停止基準を重視します。
主な機能
- 01コマースプラットフォーム別のツール選定
- 02開始前の必要サンプルサイズ計算
- 03一貫した割り当てによる実験設定
- 04売上とガードレール指標を用いた結果解釈
活用シーン
- 01商品ページ、チェックアウト、価格変更の検証
- 02実験に必要な訪問者数の見積もり
- 03テスト終了とバリアント公開の判断
- 04価格テストでの顧客割り当ての変動防止
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill ab-testing-ecommerceインストール後、Claude Code で/ab-testing-ecommerceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
tile.jsonevals/exposure-tracking-conversion-tracking-an/criteria.jsontask.mdevals/pricing-test-consistency-guardrail-metri/criteria.jsontask.mdevals/sample-size-calculation-and-server-side-/criteria.jsontask.md詳細
EコマースのA/Bテスト
概要
A/Bテスト(スプリットテスト)では、訪問者の一部をランダムに抽出してバリエーションを表示し、残りにはコントロールを表示する、管理された実験を実施します。その後、統計分析によって、差が実際にあるのか、偶然によるものなのかを判断します。開始前に必要なサンプルサイズを計算すること、テストを少なくとも2週間実施すること、早期に終了しないことといった、適切なテストの原則を守ることで、真の知見とノイズを区別できます。
このスキルでは、利用しているプラットフォームでA/Bテストを実施する方法、適切なツールの選び方、結果を正しく解釈する方法を説明します。
このスキルを使う場面
- 商品ページ、チェックアウト、価格を変更し、データに基づいて検証したい場合
- 精度を高めるために、クライアントサイドのA/Bテストツールからサーバーサイドの割り当てに移行したい場合
- 実験を開始する前に、検出力の計算が必要な場合
- 実験結果を分析し、バリエーションを採用するか、取りやめるかを判断する場合
- 価格テストを実施し、顧客ごとに価格を一貫させる必要がある場合
- テストが有意義になるために必要なサンプルサイズを把握したい場合
基本的な手順
ステップ1:プラットフォームを特定し、適切なテストツールを選ぶ
| プラットフォーム | 推奨ツール | 理由 |
|---|---|---|
| Shopify | Google Optimize(無料、サービス終了予定)→ Convert.com または Intelligems | IntelligemsはShopify専用に開発されており、割り当てを固定する価格テストに対応しています。ConvertはShopifyのテーマを通じて連携します |
| Shopify(価格テスト) | Intelligems | ちらつきなしでShopifyの真のサーバーサイド価格テストを実施できる唯一のツールです |
| WooCommerce | Nelio A/B Testingプラグインまたは Google Optimize | NelioはWordPress/WooCommerceにネイティブ統合されており、WooCommerceのコンバージョンイベントを自動的に追跡します |
| BigCommerce | Convert.com または VWO(スクリプト挿入経由) | どちらもBigCommerceのストアフロントのスクリプトマネージャーを通じて連携します |
| カスタム/ヘッドレス | LaunchDarkly(機能フラグ+実験)または GrowthBook(オープンソース)を使って構築 | ちらつきのないサーバーサイドの割り当てが可能です。GrowthBookは無料でセルフホストできます |
ステップ2:テスト開始前に必要なサンプルサイズを計算する
各バリエーションに必要な訪問者数を把握せずに、テストを開始してはいけません。事前に終了ルールを定めずにテストを実施すると、途中経過を何度も確認してしまい、偽陽性につながります。
無料の計算ツール(https://www.evanmiller.org/ab-testing/sample-size.html)を使うか、次のガイドに従ってください。
- ベースラインのコンバージョン率: プラットフォームの分析データから、現在のCVR(直近30日間)を取得します
- 最小検出効果: 検出したい最小の上昇幅(通常は0.3~1パーセントポイント)です
- 統計的検出力: 標準は80%です
- 有意水準: 信頼水準95%(アルファ=0.05)です
例: CVRが2.5%のShopifyストアで、0.3パーセントポイントの上昇を検出したい場合、各バリエーションで約8,600セッションが必要です。1日あたり500セッションなら、各バリエーションで最低17日間必要です。
テストの開始前に、必要なサンプルサイズを記録してください。これが必須の終了ルールになります。
ステップ3:プラットフォームで実験を設定する
Shopify
オプション A:Convert.com を使ったテーマベースのテスト
- Convert.com をインストールし、オンラインストア → テーマ → コードを編集 → theme.liquid からトラッキングスクリプトを追加します
- Convert.com で、Experiences → Create Experience → A/B Test に移動します
- ビジュアルエディターを使ってバリアントを作成します(ボタンの色、見出し、レイアウトを変更します)
- 目標を設定します:カートに追加 または 購入(Convert は Shopify の購入イベントを自動的にトラッキングします)
- トラフィックの割り当てを設定します(ほとんどのテストでは 50/50)
- 停止条件として、計算済みの最小サンプルサイズを設定します
オプション B:Intelligems を使った価格テスト
- Shopify アプリストアから Intelligems をインストールします
- Intelligems → Price Tests → New Test に移動します
- テストする商品を選択し、バリアントの価格を設定します
- Intelligems はサーバーサイドで固定割り当てを行うため、同じ顧客には常に同じ価格が表示されます
- 事前に計算したサンプルサイズに基づいてテスト期間を設定します
- Intelligems のダッシュボードで結果を確認します。主要指標として、CVR だけでなく訪問者あたりの収益が表示されます
Shopify のチェックアウトテストの場合(Shopify Plus のみ):
- Checkout Extensibility または Shopify Functions を使ってチェックアウトのバリアントを作成します
- Shopify 組み込みの Checkout profiles による A/B テストは、Plus で利用できます
WooCommerce
Nelio A/B Testing を使用する(推奨)
- WordPress プラグインディレクトリから Nelio A/B Testing をインストールします
- Nelio A/B Testing → Add New Test に移動します
- テストの種類を選択します:
- **ページテスト:**異なるランディングページまたは商品ページのバリアントをテストします
- **WooCommerce テスト:**商品の価格、説明、画像をテストします
- **見出しテスト:**ページタイトルや CTA をテストします
- 目標として WooCommerce 注文(コンバージョンイベント)を設定します
- Nelio は統計的有意性をリアルタイムでトラッキングします。有意性に達したからといって早期に終了せず、事前に計算したサンプルサイズに達するまで待ちます
- Nelio A/B Testing → Results で結果を確認します
代替案:Google Optimize(無料、Google Analytics 4 が必要)
- Google Optimize アカウントを作成し、GA4 プロパティにリンクします
- MonsterInsights プラグイン(最も簡単な方法)を使って、または
<head>に手動で、Optimize コンテナ ID を WordPress サイトに追加します - Optimize で WooCommerce の商品ページまたはチェックアウトの URL を指定して A/B テストを作成します
- GA4 イベント(例:
purchase)を使って目標を設定します
BigCommerce
- Storefront → Script Manager → Create a Script に移動します
- 配置先を Head、対象を All pages にして、A/B テストツール(Convert.com、VWO、または Optimizely)のスクリプトを追加します
- テストツールで、BigCommerce の商品ページまたはカテゴリページの URL を対象とする実験を作成します
- 注文確認ページの URL(
/order-confirmation)をトラッキングするコンバージョン目標を設定します - BigCommerce には、バナー単位のテスト(視覚的なバナーコンテンツに限定)向けに、Marketing → Banner Manager の組み込み Multivariate Testing もあります
カスタム/ヘッドレス
ヘッドレスのストアフロントでは、ちらつきを防ぎ、価格テストに対応するために、サーバーサイドで割り当てを行います:
GrowthBook を使用する(オープンソース、推奨)
- GrowthBook をインストールします:
npm install @growthbook/growthbook - 固定割り当てを行うため、ユーザー ID を使ってサーバーサイドで初期化します:
import { GrowthBook } from "@growthbook/growthbook";
const gb = new GrowthBook({
apiHost: "https://cdn.growthbook.io",
clientKey: process.env.GROWTHBOOK_CLIENT_KEY,
attributes: {
id: userId, // stable user ID for consistent assignment
loggedIn: !!customerId,
},
});
await gb.loadFeatures();
// Assign variant — deterministic for the same userId
const checkoutButtonVariant = gb.getFeatureValue("checkout-button-color", "blue");
- エクスポージャーとコンバージョンを GrowthBook に送信してトラッキングします:
gb.setTrackingCallback((experiment, result) => {
analytics.track("Experiment Viewed", {
experimentId: experiment.key,
variationId: result.key,
});
});
// On order completion:
analytics.track("Purchase", { revenue: order.total });
- GrowthBook の UI で統計結果を確認します。データに対してベイズ検定または頻度論的な有意性検定が実行されます
ステップ 4:結果を正しく解釈する
結果を確認する際は、次の点に注意してください。
- 事前に算出したサンプルサイズに達するまで待ちます —「有意に見える」からといって途中で止めないでください
- CVR だけでなく、訪問者あたりの売上を確認します — チェックアウトのテストで CVR が上昇しても、AOV が低下する場合があります。両方を測定してください
- 少なくとも 2 週間は実施します — 曜日の影響によって、7 日間のテストでは結果が歪みます
- ガードレール指標を確認します — 主要指標が改善していても、返品率とカスタマーサービスへの問い合わせ件数を確認してください
| 指標 | 確認する内容 |
|---|---|
| 主要指標 | 訪問者あたりの売上(CVR だけではありません) |
| ガードレール | 返品率(バリエーションによって返品が増加していないこと) |
| ガードレール | カート放棄率 |
| 信頼度 | p < 0.05 かつ最小サンプルサイズに到達 |
ベストプラクティス
- 開始前にサンプルサイズを算出します —「有意に見える」までテストを続けるのは p ハッキングです。事前に算出したサンプルサイズを終了基準として使用してください
- 価格テストではサーバーサイドの割り当てを使用します — クライアントサイドのツールでは表示がちらついたり、ページの再読み込み時に異なる価格が表示されたりすることがあり、法的リスクや UX 上のリスクにつながります
- 同じページで同時に実施する実験は 3~4 件までにします — 実験間の相互作用によって、すべての結果が汚染されます
- 社内チームのトラフィックを除外します — 社内での閲覧によって結果が汚染されないよう、テストツールの除外リストにオフィスの IP アドレスを追加してください
- 開始前に仮説を記録します — 何が起きると予想するのか、その理由とともに書き留めてください。事後に仮説を立てると、確証バイアスにつながります
- 少なくとも 2 週間の完全な営業週にわたって実験を実施します — 曜日や週末による買い物パターンの違いを考慮してください
よくある落とし穴
| 問題 | 解決策 |
|---|---|
| 「有意に見える」ためテストを早期終了し、その後、リフトが消える | 事前に算出したサンプルサイズを必須の終了基準として使用します。サンプルサイズに達するまで結果が確定しないよう、テストツールを設定してください |
| 同じユーザーに、異なるセッションで異なるバリエーションが表示される | セッション ID ではなく、安定したユーザー ID に基づくサーバーサイドの割り当てを使用してください。Intelligems と GrowthBook はデフォルトでこれに正しく対応します |
| チェックアウトのテストで CVR が上昇する一方、AOV が低下する | 常に訪問者あたりの売上を主要指標として測定してください。CVR と AOV は逆方向に変動することがあります |
| Shopify の価格テストで価格がちらつく | クライアントサイドのツールではなく Intelligems を使用してください。ページがレンダリングされる前に、サーバーサイドで価格が割り当てられます |
| 最初の週に新奇性効果によってバリエーションの結果が過大になる | 最初の 3 日間のデータを含めた場合と除外した場合の両方の結果を報告してください。第 1 週に大きく上昇した後に効果が薄れる場合は、通常、新奇性効果が原因です |
関連スキル
- @conversion-rate-optimization
- @product-analytics
- @customer-analytics
- @sales-reporting-dashboard
- @attribution-modeling