Skip to main content

目的

複数のセクションとバリエーションを持つ多変量テスト(MVT)の実験を作成し、それらのバリエーション間でカスタム(不均等)のトラフィック配分を設定します。
POST /experiments で多変量テストの実験を作成すると、Kameleoon は mvtAllocationSettings に送信した値に関係なく、常にすべてのバリエーションに均等なトラフィック配分を適用し、送信された locked の値は false にリセットされます。カスタムのトラフィック配分を設定するには、このチュートリアルで説明する 3 つのステップに従ってください。実験を作成し、生成された ID を取得したうえで、PATCH リクエストで配分を更新します。
MVT の概念(セクション、バリエーション、組み合わせ)の概要と、Kameleoon アプリでのトラフィック配分の設定方法については、多変量テストのセットアップ を参照してください。

前提条件

  • access token
Automation API を使用するには access token が必要です。 access token の取得手順 に従って、プログラムでトークンを取得してください。
  • siteId
サイトをコードで取得するエンドポイント を呼び出して、siteCode からコード内で直接 siteId を取得するか、新しい実験を作成する の手順に従ってアプリで確認してください。

主要な概念

リファレンスバリエーション

Kameleoon は、送信された各セクションに自動的にリファレンスバリエーションを追加します。このリファレンスは、レスポンス内でそのセクションの配分エントリの中で variationId: "0" として表示されます。 Original という名前のバリエーションを自分で送信した場合、Kameleoon はそれを別の追加バリエーションとして作成します。生成されたリファレンスを識別したり置き換えたりすることはありません。同じセクション内で 2 つの異なるベースラインバリエーションをテストする場合にのみ、明示的な Original バリエーションを送信してください。

クライアントが送信する ID は一時的なもの

mvtVariations で送信する sectionId とバリエーションの id は、同じリクエスト内でのみエントリを関連付けるために使用されます。これらは、Kameleoon が永続的な ID を生成する前に、mvtAllocationSettings内の各配分エントリを正しいセクションとバリエーションに接続します。任意の整数を使用して構いません。 Kameleoon は送信された値を破棄し、独自に生成した sectionIdvariationId に置き換えます。以降のすべてのリクエストでは、生成された値(レスポンスおよびその後の GET リクエストで返される値)を使用してください。レスポンスには、送信したバリエーション名は含まれず、生成された ID のみが含まれます。生成されたどの ID がどの送信済みの名前に対応するかを確認する必要がある場合は、Kameleoon アプリで実験を確認してください。

セクション ID と組み合わせ ID の違い

Kameleoon は、多変量テストの実験に対して 2 種類の異なる ID を生成します。
  • セクション ID とバリエーション ID は、あるセクション内の 1 つのバリエーションを識別します。これらは mvtAllocationSettings.sectionsAllocations で使用します。
  • 組み合わせ ID は、公開された訪問者に表示される、セクションごとに 1 つずつのバリエーションからなる完全な組み合わせを識別します。Kameleoon は、すべてのセクションのバリエーション(各セクションのリファレンスを含む)の直積として、可能なすべての組み合わせを生成し、組み合わせ ID をトップレベルの variations 配列と deviations マップのキーとして返します。これらは mvtAllocationSettings.combinationsAllocations で使用します。
sectionsAllocationscombinationsAllocations はどちらも同じ配分エントリの構造(allocationPartcheckedlockedsectionIdvariationId)を使用するため、どちらか一方の方法のみを選択してください。
  • 各セクション内のバリエーションごとにトラフィックを配分するには、sectionsAllocations を指定します。Kameleoon は、セクションレベルの値から各組み合わせの割合を導き出します。
  • 特定の組み合わせに直接トラフィックを配分するには、combinationsAllocations を指定します。
組み合わせ ID は Kameleoon が生成するまで存在しないため、作成リクエストで combinationsAllocations を指定することはできません。GET リクエストで生成された組み合わせ ID を取得し、このチュートリアルで sectionsAllocations に使用したのと同じパターンに従って、後続の PATCH リクエストで combinationsAllocations を設定してください。

手順

1. 実験を作成する

エンドポイント:
例:
レスポンス(抜粋):
Kameleoon が新しい sectionIdvariationId445144521351293-1351296)を生成し、各セクションにリファレンスバリエーション(variationId: "0")を追加し、送信した配分を 0.33333334 の均等な割合に置き換え、lockedfalse にリセットしたことに注目してください。exposedPart は送信したとおりに保持されます。希望する配分を設定するために、次のステップに進んでください。

2. 生成された ID を取得する

作成時のレスポンスから生成された ID を取得していない場合は、GET リクエストで取得します。 エンドポイント:
例:
レスポンスには、手順 1 で示したものと同じ mvtAllocationSettings.sectionsAllocations 配列が含まれており、次の手順で必要となる、生成された sectionIdvariationId の値が確認できます。

3. カスタムのトラフィック配分を設定する

エンドポイント:
mvtAllocationSettings を再度送信します。今回は、手順 2 で取得した生成済みの sectionIdvariationId の値を使用します。 例:
レスポンス(抜粋):
配分が送信した値と一致し、lockedtrue のままになります。その後の GET リクエストでも同じ結果が確認できます。

4. 実験を確認する

Kameleoon アプリの Experiments Dashboard に移動し、実験を開いて、セクション、バリエーション、トラフィック配分が設定内容と一致していることを確認します。

既知の制限事項

  • 大規模な多変量テストの削除がタイムアウトする場合があります。 実験に多数の組み合わせが含まれる場合、DELETE /experiments/{experimentId}504 Gateway Timeout エラーを返すことがあります。タイムアウトが発生しても、削除が失敗したとは限りません。削除を再試行する前に、同じ実験 ID に対して GET リクエストを送信し、実験がまだ存在するかどうかを確認してください。