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

# Experiment Center クイックスタート

> 機能フラグを作成し、バリエーションを追加して実験を作成・有効化し、テナントのログで詳細な実験データを確認する方法を学びます。

export const ReleaseStageNotice = ({feature, stage, plans, contact, terms}) => {
  const stageTextMap = {
    "beta": "Beta",
    "ea": "早期アクセス"
  };
  const stageText = stageTextMap[stage] || "製品リリース段階";
  const prsLink = "/docs/troubleshoot/product-lifecycle/product-release-stages";
  const linkify = (text, url) => {
    return <a href={url} target="_blank" rel="noreferrer" class="link">{text}</a>;
  };
  const includeDetails = (plans, contact, terms) => {
    const hasDetails = terms || plans || contact;
    if (!hasDetails) return null;
    return <span data-as="p">
            {plans && <>この機能は{linkify(`${plans}プラン`, "https://auth0.com/pricing")}でご利用いただけます。 </>}
            {contact && "参加をご希望の場合は、" + contact + "までお問い合わせください。 "}
            {terms && <>この機能を使用することにより、Oktaの該当する無料トライアル規約および{linkify("Master Subscription Agreement", "https://www.okta.com/legal")}に同意したものとみなされます。</>}
        </span>;
  };
  return <Warning>
            <span data-as="p">
                <strong>{feature}機能は現在、{linkify(stageText, prsLink)}です。</strong>
            </span>

            {includeDetails(plans, contact, terms)}
        </Warning>;
};

<ReleaseStageNotice feature="Auth0 Experiment Center" stage="beta" terms="true" contact="Auth0 Support" />

<Warning>
  ベータ期間中、Experiment Center は開発用テナントでのみ利用できます。本番テナントではサポートされていません。
</Warning>

<div id="prerequisites">
  ## 前提条件
</div>

Experiment Center を使い始めるには、次のものが必要です。

* **Auth0 の[開発](/docs/ja-jp/get-started/tenant-settings#environment-tag)テナント**

* **[Machine-to-Machine](/docs/ja-jp/get-started/apis/create-m2m-app-test#create-machine-to-machine-applications-for-testing) アプリケーション** (以下の Management API スコープが必要) :

  ```text wrap lines theme={null}
  read:experimentation
  create:experimentation
  update:experimentation
  delete:experimentation
  ```

<div id="1-create-and-activate-the-feature-flag">
  ## 1. 機能フラグを作成して有効化する
</div>

機能フラグでは、テストする内容と、設定可能なバリエーションを定義します。

機能フラグを作成するには、[`/api/v2/experimentation/feature-flags`](/docs/ja-jp/api/management/v2/experimentation/create-feature-flag) エンドポイントに `POST` リクエストを送信します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  * レスポンスには `feature_flag_id` の値が含まれます。後続の手順でこの値が必要になります。
  * 機能フラグは `draft` ステータスで作成されます。
</Callout>

<div id="add-two-variations">
  ### 2つのバリエーションを追加する
</div>

機能フラグを有効化するには、コントロールとトリートメントの少なくとも2つのバリエーションが必要です。

<div id="create-the-control-variation">
  #### コントロールバリエーションを作成する
</div>

特定の機能フラグに対して、`overrides` パラメータを指定してコントロールバリエーションを作成できます。

コントロールバリエーションを追加するには、[`/api/v2/experimentation/feature-flags/{feature_flag_id}/variations`](/docs/ja-jp/api/management/v2/experimentation/create-variation) エンドポイントに `POST` リクエストを送信します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  レスポンスには、コントロール用の `variation_id` 値が含まれます。割り当てを設定する際にこの値が必要になります。
</Callout>

<div id="create-the-treatment-variation">
  #### トリートメントバリエーションを作成する
</div>

トリートメントバリエーションでは、変更したいパラメーターを上書きします。

トリートメントバリエーションを追加するには、[`/api/v2/experimentation/feature-flags/{feature_flag_id}/variations`](/docs/ja-jp/api/management/v2/experimentation/create-variation) エンドポイントに `POST` リクエストを送信し、`overrides` オブジェクトを設定します。

```json Example theme={null}
    "overrides": {
      "show_passkey_prompt": { "value": true },
      "prompt_style": { "value": "modal" }
    }
```

<div id="activate-the-feature-flag">
  ### 機能フラグを有効化する
</div>

2 つのバリエーションを用意したら、機能フラグを有効化します。参照先の機能フラグが `active` ステータスでない限り、実験を有効化することはできません。

機能フラグのステータスを `active` に変更するには、[`/api/v2/experimentation/feature-flags/{feature_flag_id}/status`](/docs/ja-jp/api/management/v2/experimentation/update-feature-flag-status) エンドポイントに `POST` リクエストを送信します。

<div id="2-create-a-segment-optional">
  ## 2. セグメントを作成する (任意)
</div>

特定のトラフィックだけを対象にする場合は、セグメントを作成します。すべてのトラフィックをシンプルに割合で分割したい場合は、この手順をスキップしてください。

セグメントを作成するには、[`/api/v2/experimentation/segments`](https://auth0.com/docs/api/management/v2/experimentation/create-segment) エンドポイントに `POST` リクエストを送信します。

この例では、米国内のモバイルユーザーに一致するセグメントを作成します。

```json Example theme={null}
    "name": "mobile-us-users",
    "description": "Mobile users from the United States",
    "rules": [
      {
        "match_type": "all",
        "conditions": [
          { "attribute": "device_type", "operator": "equals", "value": "mobile" },
          { "attribute": "country", "operator": "equals", "value": "US" }
        ]
      }
    ]
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  レスポンスには `segment_id` の値が含まれます。セグメントは、実験で `segment` の[割り当て戦略](/docs/ja-jp/api/management/v2/experimentation/create-experiment#body-allocation-strategy)を使用する場合にのみ適用されます。
</Callout>

<div id="3-create-and-activate-an-experiment">
  ## 3. 実験を作成して有効化する
</div>

機能フラグを参照し、トラフィックの振り分け方法を定義する実験を作成します。

実験を作成するには、[`/api/v2/experimentation/experiments`](/docs/ja-jp/api/management/v2/experimentation/create-experiment#body-allocations) エンドポイントに `POST` リクエストを送信します。

この例では、`allocations` オブジェクトを使用して 90 対 10 の割合で振り分けます。ユーザーの 90% にコントロールを、10% にトリートメントを割り当てます。これは、慎重に段階的ロールアウトを始める際の一般的な出発点です。

```json Example theme={null}
    "allocations": [
      {
        "variation_id": "var_Id",
        "weight": 90,
        "is_control": true
      },
      {
        "variation_id": "var_Id",
        "weight": 10,
        "is_control": false
      }
    ]

```

実験は `draft` ステータス、`is_valid: false` の状態で開始されます。これは想定内です。完全な準備状況の確認は次のステップで行われます。

<div id="validate-the-experiment">
  ### 実験を検証する
</div>

有効化する前に、実験の準備が整っていることを確認してください。`/validate` エンドポイントでは、有効化時に実行されるものと同じチェック結果が返されます。

実験を確認するには、[`/api/v2/experimentation/experiments/{experiment_id}/validate`](/docs/ja-jp/api/management/v2/experimentation/validate-experiment) エンドポイントに `POST` リクエストを送信します。

レスポンスには `is_valid` の値が含まれており、有効化する準備ができているかどうかを確認できます。

<div id="activate-the-experiment">
  ### 実験を有効化する
</div>

実験が有効で、両方のバリエーションをテストしたら、有効化します。

実験のステータスを`active`に変更するには、[`/api/v2/experimentation/experiments/{experiment_id}/status`](/docs/ja-jp/api/management/v2/experimentation/update-experiment-status)エンドポイントに`POST`リクエストを送信します。

実験の`started_at`値は最初に有効化した時点で設定され、一時停止して再度有効化しても変わりません。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  **アクティブな実験はテナントごとに1つだけです。** すでに別の実験がアクティブになっている場合、有効化すると`400 experiment_active_limit_exceeded`が返されます。先にその実験を一時停止するか、完了してください。
</Callout>

<div id="4-trigger-an-auth-event-and-observe-results">
  ## 4. 認証イベントを発生させ、結果を確認する
</div>

テスト用テナントを使用して、テストログインを実行します。たとえば、ブラウザーを開き、オーバーライドパラメータを付けずに `/authorize` URL にアクセスします。

ログインフローを完了します。Experiment Center は有効な実験を判定し、決定論的ハッシュを使用してバリエーションを割り当て、実験コンテキストを挿入し、生成される認証イベントを拡張します。

<div id="verify-enriched-logs">
  ### 拡張ログを確認する
</div>

実験イベントについては、Auth0のログで確認できます。

* Auth0の[**Dashboard > Monitoring > Logs**](https://manage.auth0.com/dashboard/#/logs)に移動します。

* Log streamingを使用します。すでにテナントのログを分析ツール (Datadog、Splunk、Segmentなど) にストリーミングしている場合、拡張された実験メタデータも同じストリームを通じて自動的に送信されます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  このイベントには、`details.experiment`オブジェクト内に実験メタデータが含まれます。`variation_id`フィールドを見ると、ユーザーにどのバリエーションが割り当てられたかがわかります。
</Callout>

<Check>
  次の条件を満たしていれば、最初の実験は正常に実行できています。

  1. テナントのログ内の認証イベントに、`experiment_id`と`variation_id`を含む`details.experiment`が含まれている
  2. クエリパラメーターのオーバーライドでテストしたときに、両方のバリエーションが期待どおりに動作する
  3. 同じデバイスまたはユーザーで、複数の認証イベントにわたって常に同じ`variation_id`が割り当てられる (決定論的な割り当て)
</Check>

<div id="learn-more">
  ## 詳細はこちら
</div>

* 実験コンテキストに応じて ACUL コンポーネントのコードを分岐する方法については、[ACUL integration guide](/docs/ja-jp/customize/experiment-center/integrations/acul-integration-guide)を参照してください。
* post-login と registration のトリガーで `event.experiment` を使用する方法については、[Actions integration guide](/docs/ja-jp/customize/experiment-center/integrations/actions-integration-guide)を参照してください。
