Auth0 のManagement APIを使用すると、プロパティ、ライフサイクルの状態、検証ルールなど、Experiment Center エンティティの詳細を定義できます。
ベータ期間中、Experiment Center は開発テナントでのみ利用できます。本番テナントはサポート対象ではありません。
実験 には 5 つの状態があります。
| Status | 意味 |
|---|
draft | 作成済みですが、まだ実行されていません。クエリパラメーターのオーバーライドを使って安全にテストできます。 |
active | 実行中です。バリアントの割り当てとコンテキストの付与が、すべての認証トランザクションで有効になります。 |
paused | 一時停止中です。新規の割り当ては行われません。進行中のセッションでは、割り当て済みのバリエーションが維持されます。 |
completed | 終了しています。新規の割り当ては行われません。設定は、手動で昇格させる際の参照用として保持されます。 |
archived | 論理削除されています。デフォルトの一覧ビューには表示されません。分析データは保持されます。 |
ライフサイクルを遷移させるには、Management API の /api/v2/experimentation/experiments/{id}/status エンドポイントを使用します。
completed → active への遷移は許可されていません。同じテストを再度実行する必要がある場合は、新しい実験 を作成してください。
実験を有効化するには、事前に準備状況チェックに合格している必要があります。
Experiment Center は、すべての実験に is_valid という Boolean 値を保持し、書き込みのたびに再計算します。これにより、セットアップ中にすぐフィードバックを得られます。
また、Management API の /api/v2/experimentation/experiments/{id}/validate エンドポイントを使用して、準備状況を明示的に確認することもできます。
このエンドポイントは is_valid: true/false と、すべての阻害要因を一覧表示する errors 配列を返します。status エンドポイントを通じて有効化を試みた場合も、同じチェックが自動的に実行されます。
有効化時に確認される検証ルール:
- 参照される機能フラグが
active status である
- 少なくとも 1 つの割り当てが存在する
- すべての割り当ての
variation_id 値が、その実験の機能フラグに属している
is_control: true の割り当てがちょうど 1 つある
- 割り当ての重みの合計が 100 である (percentage strategy)
is_fallback: true の割り当てがちょうど 1 つある (segment strategy)
- 現在、そのテナントで有効な他の実験が存在しない (Beta のみ)
クエリーパラメーターによる上書き
クエリーパラメーターを渡すことで、任意の /authorize リクエストで特定の割り当てを強制できます。
| パラメーター | 説明 |
|---|
experiment_id | 特定の実験に登録します |
variation_id | 特定のバリエーションを強制します (experiment_id が必要です) |
segment_id | 特定のセグメントを強制します (experiment_id が必要です) |
これは draft を含む、あらゆるステータスの実験で機能します。有効化する前に、開発時にこれを使用して両方のバリエーションが正しく表示されることを確認してください。
機能フラグには、3 つの状態からなるライフサイクルが保存されます。
| ステータス | 意味 |
|---|
draft | 作成済みですが、まだ有効ではありません。有効な実験から参照することはできません。 |
active | 使用可能な状態です。このフラグを参照する実験は、この状態になってからでないと有効化できません。 |
archived | 終了状態です。新しい実験でこのフラグを参照することはできません。必要に応じて新しいフラグを作成してください。 |
ステータスを切り替えるには、Auth0 Management API の /api/v2/experimentation/feature-flags/{id}/status エンドポイントを使用します。
有効化の条件: 機能フラグは、少なくとも 2 つのバリエーションを持つまで active に移行できません。これにより、有効なフラグには本番公開前に、少なくともコントロール 1 つとトリートメント 1 つが含まれることが保証されます。
draft → active (requires ≥2 variations)
draft → archived
active → archived (terminal; no way back)
archived → active への移行は許可されていません。フラグをアーカイブした後に別のテストを実行する必要がある場合は、新しい機能フラグを作成してください。
パラメーターとオーバーライド
機能フラグのパラメーターは、実験の設定範囲を定義します。各パラメーターには、次の要素があります。
- 名前 (例:
show_passkey_prompt)
- 型:
string、boolean、number、array、または object
- デフォルト値 (ベースライン)
バリエーションの overrides には、異なるパラメーターだけを指定します。実行時に、Experiment Center はフラグのベースラインとバリエーションのオーバーライドをマージし、マージ後の完全な config オブジェクトを ACUL、Actions、ページテンプレートに渡します。すべてのパラメーターは常に config に値を持つため、フォールバックロジックを記述する必要はありません。
パラメーターで使用できるのは構造化モードのみです。各パラメーターは、名前付きのキーと型付きの値で構成されます。
セグメントのrulesは、ルールオブジェクトの配列です。配列内のいずれかのルールに一致すると、リクエストはそのセグメントに一致します。
match: すべての条件が true である必要があります (AND ロジック)
not_match: すべての条件が true である必要があります (NOT ロジック)
各条件では、演算子 contains、starts_with、ends_with、exists を使用して、属性と値を比較します。
セグメントで使用できるのは、/authorize トランザクションの開始時点で利用可能な属性のみです。
| カテゴリ | 属性 |
|---|
| クライアント | client_id |
| 接続 | connection, connection_type |
| 組織 | organization_id |
| ドメイン | domain |
| デバイスとブラウザー | device_type, browser, platform, user_agent |
| 地理情報 (IP ベース) | country, region |
Experiment Center クイックスタート
機能フラグ、バリエーション、実験をエンドツーエンドで作成する手順を確認します。
ACUL 統合
Auth0 Custom Universal Login (ACUL) 画面内で実験コンテキストを読み取ります。