前提条件
Experiment Center を使い始めるには、次のものが必要です。- Auth0 の開発テナント
-
Machine-to-Machine アプリケーション (以下の Management API スコープが必要) :
- 機能フラグを作成して有効化する
機能フラグでは、テストする内容と、設定可能なバリエーションを定義します。
機能フラグを作成するには、/api/v2/experimentation/feature-flags エンドポイントに POST リクエストを送信します。
- レスポンスには
feature_flag_idの値が含まれます。後続の手順でこの値が必要になります。 - 機能フラグは
draftステータスで作成されます。
2つのバリエーションを追加する
機能フラグを有効化するには、コントロールとトリートメントの少なくとも2つのバリエーションが必要です。コントロールバリエーションを作成する
特定の機能フラグに対して、overrides パラメータを指定してコントロールバリエーションを作成できます。
コントロールバリエーションを追加するには、/api/v2/experimentation/feature-flags/{feature_flag_id}/variations エンドポイントに POST リクエストを送信します。
レスポンスには、コントロール用の
variation_id 値が含まれます。割り当てを設定する際にこの値が必要になります。トリートメントバリエーションを作成する
トリートメントバリエーションでは、変更したいパラメーターを上書きします。 トリートメントバリエーションを追加するには、/api/v2/experimentation/feature-flags/{feature_flag_id}/variations エンドポイントに POST リクエストを送信し、overrides オブジェクトを設定します。
Example
機能フラグを有効化する
2 つのバリエーションを用意したら、機能フラグを有効化します。参照先の機能フラグがactive ステータスでない限り、実験を有効化することはできません。
機能フラグのステータスを active に変更するには、/api/v2/experimentation/feature-flags/{feature_flag_id}/status エンドポイントに POST リクエストを送信します。
- セグメントを作成する (任意)
特定のトラフィックだけを対象にする場合は、セグメントを作成します。すべてのトラフィックをシンプルに割合で分割したい場合は、この手順をスキップしてください。
セグメントを作成するには、/api/v2/experimentation/segments エンドポイントに POST リクエストを送信します。
この例では、米国内のモバイルユーザーに一致するセグメントを作成します。
Example
レスポンスには
segment_id の値が含まれます。セグメントは、実験で segment の割り当て戦略を使用する場合にのみ適用されます。
- 実験を作成して有効化する
機能フラグを参照し、トラフィックの振り分け方法を定義する実験を作成します。
実験を作成するには、/api/v2/experimentation/experiments エンドポイントに POST リクエストを送信します。
この例では、allocations オブジェクトを使用して 90 対 10 の割合で振り分けます。ユーザーの 90% にコントロールを、10% にトリートメントを割り当てます。これは、慎重に段階的ロールアウトを始める際の一般的な出発点です。
Example
draft ステータス、is_valid: false の状態で開始されます。これは想定内です。完全な準備状況の確認は次のステップで行われます。
実験を検証する
有効化する前に、実験の準備が整っていることを確認してください。/validate エンドポイントでは、有効化時に実行されるものと同じチェック結果が返されます。
実験を確認するには、/api/v2/experimentation/experiments/{experiment_id}/validate エンドポイントに POST リクエストを送信します。
レスポンスには is_valid の値が含まれており、有効化する準備ができているかどうかを確認できます。
実験を有効化する
実験が有効で、両方のバリエーションをテストしたら、有効化します。 実験のステータスをactiveに変更するには、/api/v2/experimentation/experiments/{experiment_id}/statusエンドポイントにPOSTリクエストを送信します。
実験のstarted_at値は最初に有効化した時点で設定され、一時停止して再度有効化しても変わりません。
アクティブな実験はテナントごとに1つだけです。 すでに別の実験がアクティブになっている場合、有効化すると
400 experiment_active_limit_exceededが返されます。先にその実験を一時停止するか、完了してください。
- 認証イベントを発生させ、結果を確認する
テスト用テナントを使用して、テストログインを実行します。たとえば、ブラウザーを開き、オーバーライドパラメータを付けずに /authorize URL にアクセスします。
ログインフローを完了します。Experiment Center は有効な実験を判定し、決定論的ハッシュを使用してバリエーションを割り当て、実験コンテキストを挿入し、生成される認証イベントを拡張します。
拡張ログを確認する
実験イベントについては、Auth0のログで確認できます。- Auth0のDashboard > Monitoring > Logsに移動します。
- Log streamingを使用します。すでにテナントのログを分析ツール (Datadog、Splunk、Segmentなど) にストリーミングしている場合、拡張された実験メタデータも同じストリームを通じて自動的に送信されます。
このイベントには、
details.experimentオブジェクト内に実験メタデータが含まれます。variation_idフィールドを見ると、ユーザーにどのバリエーションが割り当てられたかがわかります。次の条件を満たしていれば、最初の実験は正常に実行できています。
- テナントのログ内の認証イベントに、
experiment_idとvariation_idを含むdetails.experimentが含まれている - クエリパラメーターのオーバーライドでテストしたときに、両方のバリエーションが期待どおりに動作する
- 同じデバイスまたはユーザーで、複数の認証イベントにわたって常に同じ
variation_idが割り当てられる (決定論的な割り当て)
詳細はこちら
- 実験コンテキストに応じて ACUL コンポーネントのコードを分岐する方法については、ACUL integration guideを参照してください。
- post-login と registration のトリガーで
event.experimentを使用する方法については、Actions integration guideを参照してください。