> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 実験ツール

> Web Experimentの作成、設定、実行、結果の読み取りを行うMCPツールです。

実験ツールは、Web Experimentのライフサイクル全体を扱います。アシスタントは、テストの作成、バリエーションごとのコードの記述、トラフィック配分とゴールの設定、テストの開始、ヘルスと結果の確認を行えます。

## ツール

| ツール | 説明 | プロンプトの例 |
| - | - | - |
| `experiment_list` | 名前またはIDで実験を検索します。または、runningの実験のように、指定したステータスの実験だけを一覧表示します。ページ分けされた概要（id、名前、ステータス、タグ）を返します。 | "List running experiments on site `d1alzzxd7k`." |
| `experiment_get` | 実験の完全な設定を取得します。バリエーション、トラフィック配分、ゴール、ターゲティングが含まれます。 | "Show the configuration for experiment `149640`." |
| `experiment_code_get` | バリエーションの生のJavaScript、CSS、カスタムJSONと、実験で共有される共通のJavaScriptとCSSを取得します。 | "Pull the code for variation 1 of experiment `149640`." |
| `experiment_results_get` | アタッチされたすべてのゴールの統計結果を取得します。バリエーションごとのコンバージョン率、有意性、信頼区間、勝者が含まれます。必要に応じて `breakdown` で結果を分割し、`filters`、`dateFrom`、`dateTo` で絞り込み、`statisticalMethod`、`conversionType`、`referenceVariationId` を選択できます。 | "Summarize results for experiment `149640`." |
| `experiment_create` | draftの実験を作成します（タイプ、ベースURL、ゴール、任意で共通コード）。最初のバリエーションとターゲティングルールが付いてきます。 | "Create a CLASSIC experiment `Homepage hero` on site `d1alzzxd7k`." |
| `experiment_variation_create` | 既存の実験に、独自のJavaScript、CSS、カスタムJSON、またはリダイレクト設定を持つバリエーションを追加します。draftの実験はトラフィックを均等に分割します。runningの実験には、新しいバリエーションが0%で追加されます。 | "On experiment `149640`, add a variation that makes the `#buy-now` button green." |
| `experiment_variation_update` | バリエーションのコード、名前、リダイレクトを変更します。渡したフィールドだけが変わり、同じ値で呼び出しを繰り返しても何も変わりません。 | "In variation 1 of experiment `149640`, make the `#buy-now` button red." |
| `experiment_update` | 既存の実験の設定を変更します。名前、説明、ベースURL、タグ、ゴールとメインゴール、共通のJavaScriptとCSS、グローバルスクリプト、データ収集、共有コードを元のページでも実行するかどうか、複数テストの補正、トラフィック配分方式が対象です。実験を開始する前に必要なゴールを割り当てるときに使います。渡したフィールドだけが変わります。実験がdraftでない場合は確認が必要です。 | "On experiment `149640`, set goal `271552` as the main goal." |
| `experiment_traffic_allocation_set` | 元のページと各バリエーションのトラフィック配分を設定します。draftの実験は即座に変更されます。scheduledとpausedの実験には確認が必要で、新しい配分は開始または再開時に有効になります。running、deviated、stoppedの実験の配分を変更するには、Kameleoonアプリを使用してください。 | "On experiment `149640`, split traffic 50/50 between the original and variation 1." |
| `experiment_duplicate` | 実験を新しいdraftとしてクローンし、バリエーション、コード、deviations、ターゲティングをコピーします。 | "Duplicate experiment `149640`." |
| `experiment_health_check_get` | 実験のHealthタブのチェックを実行します。対象は、ゴールごとの訪問とコンバージョンのトラッキング、サンプル比率の不一致、重複する露出です。全体のステータスと、各チェックの所見および次のステップを返します。 | "Is experiment `149640` healthy? Are its results reliable?" |
| `experiment_lifecycle_update` | ライフサイクルを操作します。開始、一時停止、再開、停止、削除ができます（停止と削除には確認が必要です）。実験を開始するには、ゴール、バリエーション、トラフィック配分が必要です。runningまたはscheduledの実験は一時停止でき、running、scheduled、pausedの実験は停止できます。削除できるのは、draftまたはstoppedの実験だけです。 | "Start experiment `149640`." |
| `transpose_winning_experiment` | 単一のエントリーポイントのツールです。勝ちの（または手動で選択した）バリエーションのコードを取得し、勝者判定のロジックを適用して、呼び出し元のエージェントがバリエーションを再実装し、新しいフィーチャーフラグで制御するための手順を返します。1 回の呼び出しで、以前の複数ステップの手動プロンプトワークフローを置き換えます。 | "Implement the winning variant of experiment `373001` as a feature flag." |

> [!NOTE]
>
> `experiment_create` は、`type` の有効な値として `MVT` と `SDK_HYBRID` を受け付けますが、このツールではどちらも実際には作成できません。`MVT` は、作成時にAPIが `mvtVariations`（セクションとバリエーション）を必要とするため、常に失敗します。MCPツールはこのフィールドを公開していません。`SDK_HYBRID` は、ペイロードに関係なく、常に「Incorrect Experiments type」エラーで失敗します。`AI`、`CLASSIC`、`DEVELOPER`、`PROMPT` はすべて正常に作成できます。MVTの実験を作成するには、Automation APIを直接呼び出し、[多変量テストの実験を作成する](https://docs.kameleoon.com/ja/developer-docs/apis/automation-api-rest/tutorials/experiments/creation/create-a-multivariate-experiment.md) の手順に従ってください。

> [!NOTE]
>
> バリエーションのツールは、stoppedの実験、MVTの実験、フィーチャーフラグの実験をサポートしていません。フィーチャーフラグのバリエーションには `feature_flag_variation_create` を使用してください。MCPサーバーでは、runningの実験、またはバンディット配分方式を使用する実験のトラフィック配分は変更できません。

## 実験のヘルスを確認する

テストの結果に基づいて行動する前に、アシスタントにHealthタブのチェックを実行するよう依頼してください。

* **テストは健全ですか？** `experiment_health_check_get` は、Healthタブのチェックを実行します。訪問とコンバージョンのトラッキング、サンプル比率の不一致、重複する露出が対象です。

## パラメータ

`tools/list` が返す正確なパラメータ名を使用してください。

| ツール | 必須パラメータ | オプションのパラメータ |
| - | - | - |
| `experiment_list` | なし | `siteCode`、`filterQuery`、`status`（1 つ以上の `active`、`deviated`、`draft`、`paused`、`scheduled`、`stopped`、`used_as_personalization`。runningの実験は `active` と `deviated`）、`page`、`perPage`、`sortField`、`sortOrder` |
| `experiment_get` | `experimentId` | なし |
| `experiment_code_get` | `experimentId`、`variationId` | なし |
| `experiment_results_get` | `experimentId` | `goalIds`、`audienceBasis`（デフォルトは `VISITORS`、または `VISITS`）、`includeRawReport`、`breakdown`（`DAY`、`WEEK`、`MONTH`、`HOUR`、`DEVICE_TYPE`、`BROWSER`、`OS`、または `NEW_VISITOR`）、`filters`（文字列のリスト、または 1 つの `;` 区切りの文字列。形式は `DIMENSION=V1,V2` または `DIMENSION!=V1,V2`）、`dateFrom` と `dateTo`（`YYYY-MM-DD`）、`statisticalMethod`（デフォルトは `FREQUENTIST`、`SEQUENTIAL`、`BAYESIAN`、または `CUPED`）、`conversionType`（デフォルトは `CONVERTED`、または `ALL`）、`referenceVariationId`（バリエーションID、またはオリジナルの場合は `0`） |
| `experiment_create` | `payload`（`siteCode`、`name`、`type`、`baseURL`） | `payload` の項目：`mainGoalId`、`goals`、`tags`、`description`、`commonJavaScriptCode`、`commonCssCode`、`trafficAllocationMethod`、`collectingDataEnabled`、`multipleTestingCorrection`、`executeCodeForReference` |
| `experiment_variation_create` | `experimentId`、`name` | `jsCode`、`cssCode`、`customJson`（JSON文字列）、`isJsCodeAfterDomReady`、`shadowDom`、`redirection`（`type` が必須。`GLOBAL_REDIRECTION` の場合は `url`、`PARAMETER_REDIRECTION` の場合は `parameters`、`includeQueryParameters` はデフォルトで `false`）、`confirm`（実験がdraftでない場合に必須） |
| `experiment_variation_update` | `variationId` | `experimentId`（バリエーションの実験と一致しない場合、ツールは呼び出しを拒否します）、`name`、`jsCode`、`cssCode`（空文字列でフィールドをクリア）、`customJson`（JSON文字列）、`isJsCodeAfterDomReady`、`shadowDom`、`redirection`（既存のリダイレクト設定を置き換えます。`type` が必須）、`confirm`（実験がdraftでない場合に必須） |
| `experiment_update` | `experimentId` | `name`、`description`（空の値の場合は現在の説明を維持）、`baseURL`（絶対の `http` または `https` URL）、`tags` と `goals`（それぞれリスト全体を置き換え）、`mainGoalId`、`commonJavaScriptCode`、`commonCssCode`、`globalScript`（空文字列でフィールドをクリア）、`collectingDataEnabled`、`executeCodeForReference`、`multipleTestingCorrection`、`trafficAllocationMethod`（配信中の実験や停止後の実験では設定できません）、`confirm`（実験がdraftでない場合に必須） |
| `experiment_traffic_allocation_set` | `experimentId`、`originPercentage`（0から100）、`variationAllocations`（バリエーションごとに 1 つのエントリー。各エントリーは `variationId` と `percentage` を持ち、`originPercentage` との合計は 100 を超えられません） | `respool`（デフォルトは `false`）、`confirm`（scheduledとpausedの実験に必須） |
| `experiment_duplicate` | `experimentId` | なし |
| `experiment_health_check_get` | `experimentId`（フィーチャーフラグの実験の場合は、ルールの実験ID） | なし |
| `experiment_lifecycle_update` | `experimentId`、`status` | `confirm`（`stopped` と `deleted` の場合に必須）、`reason` |
| `transpose_winning_experiment` | `experimentId` | `mode`（デフォルトは `strict_winner_only`、または `manual_variation_conversion`）、`fallbackVariationId`（`mode` が `manual_variation_conversion` の場合に必須）、`targetFeatureKey`（デフォルトは `pbx-winning-experiment-<experimentId>`） |

**受け付ける列挙値:** `experiment_lifecycle_update.status` は `started`、`resumed`、`paused`、`stopped`、`deleted` のいずれかです。実験の `type` は `AI`、`CLASSIC`、`DEVELOPER`、`MVT`、`PROMPT`、`SDK_HYBRID` のいずれかです。`trafficAllocationMethod` は `MANUAL`（デフォルト）、`MULTI_ARMED_BANDIT`、`CONTEXTUAL_BANDIT` のいずれかです。`audienceBasis` は `VISITORS`（デフォルト）または `VISITS` です。

### 結果の設定

実験の結果は `experiment_results_get` で読み取ります。

`experiment_results_get`、`feature_flag_experiment_results_get`、`transpose_winning_experiment` では、`goalResults` 配列に、プライマリゴールとセカンダリゴールを含め、実験にアタッチされたすべてのゴールが含まれます。Kameleoonが勝者の判定を出すのはプライマリゴールだけです。セカンダリゴールは、判定を伴わず、ガードレール指標と同じ統計値を返します。

`experiment_results_get` と `feature_flag_experiment_results_get` は、次の任意の設定を受け付けます。

* `breakdown`: 結果を分割します。`DAY`、`WEEK`、`MONTH` は、時間経過に伴う推移を示します。`HOUR` は、最大 2 日間の `dateFrom` から `dateTo` までの期間で推移を表示します。`DEVICE_TYPE`、`BROWSER`、`OS`、`NEW_VISITOR` は、値ごとに 1 つのバケットを返します。期間のバケットには、オーディエンス、コンバージョン、コンバージョン率だけが含まれます。改善度と信頼性は、実行全体の概要に残ります。
* `filters`: 文字列のリスト、または `;` で区切った 1 つの文字列を指定します。Kameleoonはフィルターを AND で組み合わせます。各フィルターの形式は `DIMENSION=V1,V2` または `DIMENSION!=V1,V2` です。ディメンションと値は、`DEVICE_TYPE`（`DESKTOP`、`TABLET`、`PHONE`）、`BROWSER`（`CHROME`、`EDGE`、`FIREFOX`、`SAFARI`、`OPERA`、`OTHERS`）、`OS`（`WINDOWS`、`MAC_OS`、`I_OS`、`LINUX`、`ANDROID`、`WINDOWS_PHONE`、`OTHERS`）、`NEW_VISITOR`（`NEW`、`RETURNING`）です。`DEVICE_TYPE` による内訳には `OTHERS` のバケットが表示されることがありますが、`DEVICE_TYPE=OTHERS` でフィルターすることはできません。
* `dateFrom` と `dateTo`: 特定の期間を指定します。アカウントのタイムゾーンの `YYYY-MM-DD` 形式の日付です。`dateTo` は期間に含まれます。特定の期間が必要な場合だけ指定してください。期間が短いほどデータのばらつきが大きくなるため、短い期間で勝者を判断しないでください。
* `statisticalMethod`: `FREQUENTIST`（デフォルト）、`SEQUENTIAL`、`BAYESIAN`、または `CUPED`。`BAYESIAN` を指定すると、`reliabilityRate` は基準バリエーションを上回る確率になります。`CUPED` は実行全体の数値にだけ適用され、内訳のバケットは頻度主義のままです。お使いのプランに含まれない方法は、ツールが拒否します。
* `conversionType`: `CONVERTED`（デフォルト）は、コンバージョンしたビジターを 1 回ずつ数えます。`ALL` はすべてのコンバージョンを数えるため、率が 100% を超えることがあります。改善度と信頼性は、この設定に従います。`ALL` の場合は、ビジターごとのコンバージョンを比較します。
* `referenceVariationId`: ほかのバリエーションが比較対象とするバリエーションです。バリエーションIDを指定するか、オリジナルの場合は `0` を指定します。フィーチャーフラグの場合は、バリエーションIDまたはキーを指定します。オフのバリエーションの場合は `0` または `off` を指定します。デフォルトは、実験に保存された基準です。基準がない場合は、オリジナルになります。

レスポンスには、適用された設定が `appliedOptions` に記載されます。数値の解釈に補足が必要な場合は、注記も追加されます。エンジンが計算しなかった数値（データが少ない場合や、コンバージョンのない基準を使用した場合など）は、レスポンスから除外され、それぞれに注記が追加されます。

結果は、結果画面と同様に、実験に保存された基準と比較されます。プロンプトからKameleoonが作成する実験や、オフのバリエーションにトラフィックが0%しか割り当てられないフィーチャーフラグの実験では、改善度と信頼性は返されません。

## チュートリアル

* [カスタムコードでバリエーションを作成する](https://docs.kameleoon.com/ja/mcp/create-variations-with-code.md): 複数のバリエーションを含み、それぞれに独自のコードを持つテストを作成します。
* [draftの実験を準備する](https://docs.kameleoon.com/ja/mcp/prepare-draft-experiment.md): 開始前に、ゴール、トラフィック配分、ターゲティングを設定します。
* [勝ちバリエーションを本番環境にリリースする](https://docs.kameleoon.com/ja/mcp/ship-winning-variation.md): 勝ちバリエーションを、ゲート付きのフィーチャーフラグに変換します。
