メインコンテンツへスキップ
ベータ期間中、Experiment Center は開発用テナントでのみ利用できます。本番テナントはサポート対象外です。

前提条件

Experiment Center の利用を開始するには、以下が必要です:
  • Auth0 の 開発 テナント
  • 次の Management API スコープを持つ マシン間 アプリケーション:
    read:experimentation
    create:experimentation
    update:experimentation
    delete:experimentation
    

1. 機能フラグを作成して有効化する

機能フラグでは、テスト対象と利用可能なバリエーションを定義します。 機能フラグを作成するには、/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
    "overrides": {
      "show_passkey_prompt": { "value": true },
      "prompt_style": { "value": "modal" }
    }

機能フラグを有効化する

2 つのバリエーションを作成したら、機能フラグを有効化します。参照先の機能フラグのステータスが active でない限り、実験は有効化できません。 機能フラグのステータスを active に変更するには、/api/v2/experimentation/feature-flags/{feature_flag_id}/status エンドポイントに POST リクエストを送信します。

2. セグメントを作成する (任意)

特定のトラフィックを対象にする場合は、セグメントを作成します。すべてのトラフィックに対して単純なパーセンテージ分割を行う場合は、この手順をスキップしてください。 セグメントを作成するには、/api/v2/experimentation/segments エンドポイントに POST リクエストを送信します。 この例では、米国内のモバイルユーザーに一致するセグメントを作成します。
Example
    "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" }
        ]
      }
    ]
レスポンスには segment_id 値が含まれます。セグメントが適用されるのは、実験で segment割り当てストラテジーを使用する場合のみです。

3. 実験を作成して有効化する

機能フラグを参照し、トラフィックの分割方法を定義する実験を作成します。 実験を作成するには、/api/v2/experimentation/experiments エンドポイントに POST リクエストを送信します。 この例では、allocations オブジェクトを使用して 90/10 の割合でトラフィックを分割します。ユーザーの 90% にはコントロールが、10% にはトリートメントが割り当てられます。これは、慎重にロールアウトを開始する際の一般的な出発点です。
Example
    "allocations": [
      {
        "variation_id": "var_Id",
        "weight": 90,
        "is_control": true
      },
      {
        "variation_id": "var_Id",
        "weight": 10,
        "is_control": false
      }
    ]

この実験は、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 が返されます。先に他の実験を一時停止するか完了してください。

4. 認証イベントをトリガーして結果を確認する

テスト用テナントでテストログインを実行します。たとえば、ブラウザーを開き、オーバーライドパラメーターを指定せずに /authorize URL にアクセスします。 ログインを完了します。Experiment Center は有効な実験を特定し、決定論的ハッシュを使用してバリエーションを割り当て、実験コンテキストを挿入して、結果として生成される認証イベントに追加情報を付与します。

拡張ログを確認する

実験イベントについて、Auth0 のログを確認できます。
  • Auth0 の Dashboard > Monitoring > Logs に移動します。
  • Log streaming を使用します。すでにテナントログを分析ツール (Datadog、Splunk、Segment など) にストリーミングしている場合、拡張された実験メタデータも自動的に同じストリームに流れます。
このイベントには、details.experiment オブジェクトに実験のメタデータが含まれます。variation_id フィールドは、そのユーザーにどのバリエーションが割り当てられたかを示します。
次の条件を満たしていれば、最初の実験は正常に実行されています。
  1. テナントログ内の認証イベントに、experiment_idvariation_id を含む details.experiment がある
  2. クエリパラメーターのオーバーライドを使用してテストしたときに、両方のバリエーションが正しく動作する
  3. 同じデバイスまたはユーザーに対して、複数の認証イベントにわたって一貫して同じ variation_id が割り当てられる (決定的な割り当て)

詳細情報

  • 実験コンテキストに応じて ACUL コンポーネントのコードを分岐する方法については、ACUL 統合ガイドを参照してください。
  • post-login トリガーと登録トリガーで event.experiment を使用するには、Actions 統合ガイドを参照してください。