> ## 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

> Auth0 Experiment Center の概要と、A/B テスト用の認証フローを作成する方法について説明します。

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" />

Auth0 Experiment Center は、Auth0 にネイティブで組み込まれた実験エンジンです。[認証](/docs/ja-jp/authenticate/login/auth0-universal-login)エクスペリエンスの変更を A/B テストし、認証イベントの[ログ](/docs/ja-jp/deploy-monitor/logs)への影響を確認できます。

Experiment Center を使うと、Auth0 で A/B テストを定義でき、トラフィックは決定論的に分割されます。さらに、既存の認証イベントには実験メタデータが付加されて返されるため、お使いのツールで結果を分析できます。

<div id="how-it-works">
  ## 仕組み
</div>

Experiment Center を使うと、Auth0 の認証パイプラインで、制御された A/B テストを実行できます。変更を一度にすべてのユーザーへデプロイする代わりに、新しい動作をトラフィックの一定割合にのみ公開し、拡張された認証イベントを通じて結果を測定したうえで、準備が整ったら勝ったバリエーションを採用できます。

Experiment Center は、次の 3 つのエンティティを中心に構成されています。

* **実験**: トラフィックをどのように分割するか、またテストをいつ実行するかを定義します。
* **機能フラグ**: 何をテストするか、および利用可能なバリエーションを定義します。
* **セグメント**: 実験を特定のバリエーションに振り分けるためのルールセットを定義します。

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

<div id="experiment">
  ## 実験
</div>

実験とは、機能フラグの効果を測定するための仕組みです。次の内容を定義します。

* どの機能フラグをテストするか
* 各バリエーションにトラフィックをどのように割り当てるか
* テストをいつ実施するか

各実験は、必ず1つの機能フラグを参照します。

<div id="experiment-lifecycle">
  ### 実験のライフサイクル
</div>

実験には5つの状態があります。

| ステータス       | 意味                                                       |
| ----------- | -------------------------------------------------------- |
| `draft`     | 作成済みですが、まだ実行されていません。クエリパラメータの上書きを使って安全にテストできます。          |
| `active`    | 実行中です。すべての認証トランザクションで、バリアントの割り当てとコンテキストの注入が有効です。         |
| `paused`    | 一時停止中です。新規の割り当ては行われません。進行中のセッションは、割り当て済みのバリエーションが維持されます。 |
| `completed` | 終了しています。新規の割り当ては行われません。設定は、手動プロモーション時の参照用として保持されます。      |
| `archived`  | 論理削除されています。デフォルトの一覧には表示されません。分析データは保持されます。               |

<div id="allocation-strategies">
  ### 割り当て戦略
</div>

実験では、次の 2 つの割り当て戦略のいずれかを使用します。

**割合ベース:** トラフィックは重みに応じて各バリエーションに分配されます。すべての重みの合計は 100 である必要があります。重み 0 も有効です (そのバリエーションは実験の定義には含まれますが、トラフィックは割り当てられません) 。

**セグメントベース (ターゲティング) :** トラフィックはセグメントへの所属に基づいて各バリエーションに振り分けられます。セグメントは優先順位の高い順に評価されます。最初に一致したセグメントが適用されます。どのセグメントにも一致しない場合は、`is_fallback` の割り当てがそのリクエストを受け取ります。

実験エンティティの詳細については、[Entities Details](/docs/ja-jp/customize/experiment-center/entities#experiment) を参照してください。

<div id="experiment-context">
  ### 実験コンテキスト
</div>

実験が有効でバリエーションが割り当てられると、Experiment Center は実行環境の各サーフェスに `ExperimentContext` オブジェクトを注入します。

[ACUL](/docs/ja-jp/customize/login-pages/advanced-customizations#advanced-customizations-for-universal-login-acul) の画面でこれを受け取れるのは、`context_configuration` でその画面をオプトインした場合のみです。
詳しくは、[ACUL integration guide](/docs/ja-jp/customize/experiment-center/integrations/acul-integration-guide) をご覧ください。

[Actions](/docs/ja-jp/customize/actions/actions-overview) と [page templates](/docs/ja-jp/customize/login-pages/universal-login/customize-templates#customize-universal-login-page-templates) では、実験が有効な場合、このオブジェクトが自動的に渡されます。オブジェクトの構造は次のとおりです。

```typescript theme={null}
{
  experiment_id: string;   // アクティブな実験ID
  variation_id: string;    // 割り当てられたバリエーションID
  config: {                // マージされた設定（ベースライン＋オーバーライド）
    [paramName]: { value: unknown }
  };
  is_control: boolean;     // コントロールバリエーションの場合は true
}
```

`config` フィールドには、割り当てられたバリエーションに対応する、マージ済みの完全な設定が含まれます。機能フラグで定義されたすべてのパラメータには常に値が設定されるため、フォールバックロジックを記述する必要はありません。

<div id="assignment">
  ### 割り当て
</div>

割り当てとは、認証トランザクション中にユーザーが特定のバリエーションに振り分けられる仕組みです。割り当ては決定的で固定されるため、同じユーザーは同じデバイス上では、同じ実験に対して常に同じバリエーションを見ることになり、ログインをまたいでも一貫した体験が保たれます。

* **Percentage 割り当て** は、重みに基づいてトラフィックを各バリエーションに振り分けます。特定の対象は常に同じバリエーションに割り当てられます。
* **Segment 割り当て** は、優先順位に従ってリクエストのプロパティをセグメントルールに照らして評価します。最初に一致したセグメントがバリエーションを決定し、同じセグメントに一致するリクエストは常に同じバリエーションになります。

割り当て結果は、`details.experiment` 配下のテナントログに記録され、個別のAPIとしては公開されません。

割り当てエンティティの詳細については、[Entities Details](/docs/ja-jp/customize/experiment-center/entities#assignment)を参照してください。

<div id="feature-flag">
  ## 機能フラグ
</div>

機能フラグは、テスト対象を制御する単位です。これには次のものが含まれます。

* **ベースライン設定**: 型付きパラメーターとそのデフォルト値
* 1 つ以上の **バリエーション**: ベースラインとは異なる代替設定

機能フラグはテナント単位で管理され、再利用できます。同じフラグを、複数の実験で継続的に参照できます (たとえば、同じ機能に対する第1四半期のテストや第2四半期の調整など) 。

<div id="feature-flag-lifecycle">
  ### 機能フラグのライフサイクル
</div>

機能フラグにはライフサイクルがあり、次の 3 つの状態で管理されます。

| 状態         | 意味                                                      |
| ---------- | ------------------------------------------------------- |
| `draft`    | 作成済みですが、まだ有効ではありません。有効な実験から参照することはできません。                |
| `active`   | 使用可能な状態です。このフラグを参照する実験を有効化する前に、この状態である必要があります。          |
| `archived` | 終了状態です。新しい実験からこのフラグを参照することはできません。必要に応じて新しいフラグを作成してください。 |

機能フラグエンティティの詳細については、[Entities Details](/docs/ja-jp/customize/experiment-center/entities#feature-flag) をご覧ください。

<div id="variation">
  ### バリエーション
</div>

バリエーションとは、機能フラグ内で定義された体験の1つのバージョンです。ベースラインと比べて、どの設定パラメータがどの程度異なるかを指定します。

* **コントロールバリエーション**はベースラインです。オーバーライドは空で、フラグのデフォルト設定から変更されたパラメータはありません。
* **トリートメントバリエーション**は、それぞれ1つ以上のパラメータのオーバーライドを指定します。

バリエーション自体には `is_control` マーカーはありません。特定の実験でどのバリエーションを統計上のコントロールとするかは、バリエーションではなく割り当てで設定されます。同じバリエーションが、ある実験ではコントロールになり、別の実験ではトリートメントになることもあります。

バリエーションエンティティの詳細については、[Entities Details](/docs/ja-jp/customize/experiment-center/entities#variation) を参照してください。

<div id="segment">
  ## セグメント
</div>

セグメントは、一連のルールに一致する認証リクエストをまとめた名前付きのグループです。ターゲットを絞った割り当て実験では、セグメントを使用して特定のトラフィック群を特定のバリエーションに振り分けます。

セグメントはテナント単位で管理され、複数の実験で再利用できます。

セグメントエンティティの詳細については、[Entities Details](/docs/ja-jp/customize/experiment-center/entities#segment)を参照してください。

<div id="limitations">
  ## 制限事項
</div>

Beta期間中は、以下の制限があります。

* **テナントごとに有効な実験は1つのみ。** `draft`、`paused`、`completed` 状態の実験は複数作成できますが、同時に `active` にできるのは1つだけです。
* **構造化パラメータのみ。** 機能フラグのパラメータは、key/type/value の構造を使用します。
* **Actions トリガーは3つのみ。** 実験コンテキストは、[`post_login`](/docs/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger)、[`pre_user_registration`](/docs/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/pre-user-registration-trigger)、[`post_user_registration`](/docs/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/post-user-registration-trigger) で利用できます。
* **テストトラフィックのみ。** Beta は、お客様が生成したトラフィックを使用する開発用テナントでのみ実行されます。本番環境のエンドユーザーデータが Beta を通過することはありません。
* **手動プロモーション。** 実験が完了したら、勝ったバリエーションの設定をテナントに手動で適用します。

<div id="learn-more">
  ## 詳しく見る
</div>

Experiment Center のエンティティとプロパティについては、\*\*[Entities Details](/docs/ja-jp/customize/experiment-center/entities)\*\*をご覧ください。

フラグの作成、実験の有効化、強化されたログイベントをエンドツーエンドで確認する方法については、\*\*[Experiment Center Quickstart](/docs/ja-jp/customize/experiment-center/quickstart)\*\*をご覧ください。
