メインコンテンツへスキップ
商品ページのさまざまなバリエーションをテストし、訪問者が「Add to cart」アクション数、チェックアウトファネルへの進入数、最終的に完了した注文数などの主要 KPI に基づいてどのようにやり取りするかを測定したいとします。 下の画像にあるような典型的な商品ページを想像してください。ユーザーは商品をすぐに購入するか、カートに追加するかを選択できます。しかし、多くの訪問者が通常は 1 つの商品しか購入しない場合はどうでしょうか?その場合は、チェックアウトプロセスを合理化してユーザーの摩擦を減らすために、単一の「Buy Now」CTA のみを表示することを検討するかもしれません。
Kameleoon で実験を作成するには、いくつかの方法があります。たとえば次のようなものです。
  • コンテンツスワップテスト: 実験の各バリアントは、専用のページ URL でアクセスできる異なる Shopify テンプレート上に存在します(例: www.mystore.com/products/products/produc-name?view=version-b)。A/B テストツールでは、コンテンツをバリアント(例: B ページ、C ページなど)と入れ替えることができます。
  • ビジュアルエディタの使用: Graphic エディタを使用して、商品ページ上で直接バリアントを作成するか、JS/CSS を注入してカスタマイズします。
  • Shopify の Liquid と JS SDK を活用: Liquid テンプレートにロジックを追加して、ユーザーのサブセットに対して特定のバリアントを有効化または無効化します。
それぞれの方法を詳しく見ていきましょう。 開始する前に、Shopify ストアに Kameleoon がインストールされていることを確認してください。これは、実験を実行するために必要です。
  • Web 実験 を実行している場合は、セットアップを簡素化する Shopify x Kameleoon アプリ を使用することをお勧めします。ステップバイステップの手順については、ドキュメント をご確認ください。
  • 機能フラグや機能実験 を実行している場合は、機能実験 ドキュメント に記載されているガイドラインに従ってください。

コンテンツスワップテスト

コンテンツスワップテスト は、A/B/n 実験の一種で、ユーザーが同じ URL の下で異なるコンテンツを表示され、それぞれが同じページのバリアントを表します。URL リダイレクトとは異なり、サンプル比率不一致(SRM) を生成しません。 Shopify では、?view URL パラメータを使用してコンテンツスワップテストを簡単にセットアップでき、同じページに代替テンプレートを提供できます。例:
  • https://kameleoon-segment-test.myshopify.com/products/vans-sh-8-hi
  • https://kameleoon-segment-test.myshopify.com/products/vans-sh-8-hi?view=version-b
この場合、?view=version-bShopify の alternate template 機能 を使用しており、商品、コレクション、カートなどに対して複数バージョンのテンプレートを作成できます。コンテンツスワップ実験に最適です。 それでは、Shopify と Kameleoon でコンテンツスワップテストを構成する方法を順を追って説明します。 Shopify の管理画面で、Online Store > Themes > Actions > Edit Code に移動し、product.liquid テンプレートを開きます。このテンプレートには 2 つの主要なセクションが含まれています。
  • product-template — 商品ページのソースコードが含まれます。
  • product-recommendations — 「You may also like」推奨ブロックのコードが含まれます。
コンテンツスワップ実験をセットアップするには、variant B 用の代替テンプレートを作成し、product-template セクションを複製して、Add to Cart ボタンに関連するコードを削除する必要があります。 手順は次のとおりです。
  1. Shopify テーマエディタで Add a new template をクリックします。
  2. Product テンプレートタイプを選択し、名前を付けます(version-b を使用していますが、任意の名前を使用できます)。
選択した名前は URL に表示されます(例: ?view=version-b)。チームにとって意味のあるものでありながら、ユーザーを混乱させないようなものを選んでください。
  1. Add a new section をクリックし、product-template-version-b という名前を付けて、元の product-template.liquid ファイルのコードをこの新しいセクションに コピーアンドペースト します。
これで 4 つの liquid ファイルがあるはずです。
  1. product-template-version-b.liquid セクションから Add to cart ボタンのコードを削除します。
  1. 作成した代替商品テンプレート(product.version-b.liquid)から、変更したセクション(product-template-version-b)を呼び出します。
更新されたコードは次のようになります。
変更を保存したら、すべて完了です!これで商品ページの 2 番目のバリアントができました。 Shopify では、?view= URL パラメータを使用して代替テンプレートファイルをロードできます。値がテーマ内のテンプレートファイルと一致する限り、Shopify はそのバージョンのページをレンダリングします。 たとえば、https://kameleoon-store.myshopify.com/products/vans-sh-8-hi?view=version-b にアクセスすると、意図したとおり、Add to Cart ボタンなし の商品ページが表示されます。
ほとんどの大変な作業は完了しました。次に、Kameleoon でコンテンツスワップ実験を構成 して、訪問者の 50% に元の商品ページの代わりに variation B が表示されるようにします。シンプルなプロセスです。
  1. Kameleoon アプリ に移動します。
  2. New experiment > With the code editor をクリックします。
  3. 必要な情報を入力し、Create をクリックします。
Code エディタが開きます。そこから実験を設定して起動できます。
  1. Add variation の横にある シェブロン > Add code variation をクリックします。
  1. 以下のコードを追加し、ユースケースに合わせて VIEWSELECTOR 変数を調整します。
var VIEW = 'version-b';        // Alternate template handle, e.g. 'version-b'
var SELECTOR = '#MainContent'; // Main container selector

Kameleoon.API.Core.runWhenElementPresent(
  SELECTOR,
  function () {
    fetch(window.location.pathname + '?view=' + encodeURIComponent(VIEW), {
      credentials: 'same-origin'
    })
      .then(function (r) { return r.text(); })
      .then(function (html) {
        var doc = new DOMParser().parseFromString(html, 'text/html');
        var newContent = doc.querySelector(SELECTOR) || doc.body;

		var main = document.querySelector(SELECTOR);
        main.replaceWith(newContent);
      })
      .catch(function (err) {
        console.error('[Kameleoon] Swap failed:', err);
      });
  }
);
Variation B のセットアップが完了しました。実験を起動するまであと一歩です。 左サイドバーのタブを使用して、以下を定義します。
  • Targeting: 誰に実験を表示するかを定義します(すべてのユーザー、特定のユーザーセグメント)。
  • Traffic allocation: 元のバージョンと variation B の間で訪問者を分割する方法を選択します。
  • Goals: 成功をどう測定するかを設定します(クリック、コンバージョン、注文)。
この実験を 商品ページトラフィックの 50% で実行したいので、ターゲティングを次のように構成します。
  • /products/ を含む URL を Include します。
  • 無限リダイレクトループを防ぐため、パラメータ view=version-b を持つ URL を Exclude します。
次に、実験の成功を測定するために使用する主要ゴールを選択します。この場合、注文数を増やしたいと考えています。 Shopify x Kameleoon アプリ をインストールしている場合は、自動的に追跡される Shopify orders ゴールを選択します。
実験を公開する準備ができました! 起動する前に実験をシミュレートすることを強くお勧めします。シミュレートすることで、Buy it now バリエーションに割り当てられた訪問者に URL B のコンテンツ が正しく表示されることを確認できます。 実験をシミュレートしたら、Kameleoon に戻り、Launch をクリックして実験を起動します。 データ収集は、最初のターゲット訪問がストアで終了するとすぐに開始されます。一般的なガイドラインとして、結果を評価する前に、トラフィック量に応じて 2 〜 3 週間実験を実行することをお勧めします。 Kameleoon は、統計的有意性、アップリフト、時間経過によるデータ安定性などの主要指標を分析することで、実験を停止するタイミングを判断するのに役立ちます。Kameleoon の統計モデルの仕組みを完全に理解するには、こちらのドキュメント を読むことを強くお勧めします。 テンプレート version-b が勝者になった場合、追加のコードは必要ありません。お客様はこのテンプレートをデフォルトとして使用するだけです。 実装したばかりのコンテンツスワップ方法は、同じアプローチを使用して他の Shopify ページでも使用できます。

グラフィックまたはコードエディタでバリアントを作成する

前のセクションでは、Shopify の代替テンプレート URL パラメータを使用してコンテンツスワップテストをセットアップする方法を探りました。これは、どのテンプレートセクションを更新する必要があるかを正確に把握しており、Liquid ファイルを変更する技術スキルがある場合に強力な方法です。 もう 1 つの柔軟で効率的なアプローチは、グラフィックまたはコードエディタを使用してページバリアントを作成することです。訪問者を代替 URL にリダイレクトする代わりに、この方法ではページをその場で変更します。たとえば、Add to Cart ボタンをリアルタイムで非表示にすることができます。利点は?変更は非常に迅速に行われるため、ユーザーは自分が A/B テストの一部であることに気づきません。 ここでの最大の違いは使いやすさです。Kameleoon の Graphic エディタを使用すると、コードに触れずに要素を視覚的に削除、編集、または再配置できます。ただし、より高度な変更には、JavaScript と CSS の知識が役立ちます。幸い、Kameleoon にはこれをサポートする強力な Code エディタもあります。 Kameleoon でこの実験をセットアップする方法を順を追って説明します。
  1. Kameleoon アプリ を開きます。
  2. New experiment > With the graphic editor をクリックします。
  3. 必要な情報を入力し、Create をクリックします。
Kameleoon の Graphic エディタは、選択した商品ページの URL で直接開きます。
  1. Add to Cart ボタンを選択します。
  2. ボタンを非表示にするには:
    • 左サイドバーの 三点リーダーメニュー > Hide をクリックします。
    • または、選択した要素の下に表示されるツールバーの Hide アイコンをクリックします。
これで、variation B の準備が整いました! split URL セットアップと同じように構成して実験を確定します。
  • トラフィックの 50% を割り当てます。
  • URL に /products/ を含むすべてのページをターゲットにします。
  • 主要 KPI として Shopify Orders を設定します。
split URL 実験と同様に、すべての商品ページでバリエーションが正しく表示されることを確認するために、デバイスで実験をシミュレートすることを強くお勧めします。 最後に、Launch をクリックしてストアで実験を開始します。 Kameleoon の Code エディタを使用して、バリエーションに直接 CSS や JavaScript を追加することでも同じ結果を達成できます。

Liquid 内で JS SDK を使用して機能をトグルする

機能フラグと Kameleoon の JavaScript SDK を使用して、product.liquid ファイル内でコードを直接アクティブ化または無効化することは、私たちがカバーした 3 つのテクニックの中で最も高度なオプションです。より技術的ですが、ユーザーに機能を段階的にロールアウトしたい場合、非常に強力です。 通常、機能フラグはバックエンドインフラストラクチャに組み込まれたサーバーサイド SDK を必要とします。これらの SDK は、ユーザーバケッティング、ターゲティング、実験結果の追跡などのタスクを処理します。ただし、Shopify ではサーバーを制御しないため、サーバーサイド SDK は選択肢ではありません。 そこで、Kameleoon のクライアントサイド JS SDK の出番です。SDK を使用すると、Shopify テーマファイル内のブラウザ内で完全に機能実験を実行できます。Liquid テンプレートを編集することに慣れている場合は、これが推奨されるアプローチです。 開始するには:
  1. Kameleoon アプリ にアクセスします。
  2. Feature flags メニューに移動します。
  3. New feature flag をクリックし、このガイド の手順に従います。
機能フラグには、Off をコントロール(元の動作)として、複数のバリエーションを持つ 1 つの実験ルールを含める必要があります。 Kameleoon で機能フラグを作成したら、feature flag key(例: shopify-pdp-page)をメモしておきます。このキーは、Shopify テーマコード内でフラグを参照するために必要です。 次に、訪問者のバリエーションに基づいて Add to Cart CTA を表示するか非表示にするかを制御するロジックを product.liquid(または product-template.liquid)ファイルに記述します。 目標は次のとおりです。
  • 訪問者が variation B にいる場合、CTA を非表示にします。
  • 訪問者が variation A(コントロール)にいる場合、CTA を表示します。
スクリプトが行うこと:
  • Kameleoon JS SDK がロードおよび初期化されていることを確認します。
  • 機能フラグがアクティブで、訪問者がどのバリエーションにバケットされているかを確認します。
  • それに応じて CTA を非表示または表示するロジックを適用します。
実装するには:
  1. Shopify 管理画面で、Online Store > Themes > Actions > Edit Code に移動します。
  2. product-template.liquid ファイル(または同等のもの)を開きます。
  3. Kameleoon 機能フラグロジックを挿入します。
  1. Save をクリックして、変更をテーマに適用します。
これで完了です!Kameleoon JS SDK を使用した新しい機能実験が公開されました。