実験がアクティブで、かつバリエーションが割り当てられている場合、Experiment Center は ページテンプレート のレンダリングコンテキストに実験コンテキストを自動的に追加します。ページテンプレートでオプトインの手順は必要ありません。実験がアクティブな場合、実験コンテキストは無条件ですべてのテンプレートに渡されます。テンプレートは、このコンテキストを experiment という名前のローカル変数として受け取ります。
Beta 期間中、Experiment Center は開発用テナントでのみ動作します。本番用テナントはサポート対象ではありません。
実験がアクティブな場合、ページテンプレートでは次のフィールドを利用できます。
アクティブな実験がない場合、experiment は null です (または存在しません) 。使用する前に、必ず null チェックを行ってください。
experiment.config はキーと値のマップで、各キーはパラメーター名、各値は value プロパティを持つオブジェクトです。
フィーチャーフラグで定義されたすべてのパラメーターには、config 内に値があります。Experiment Center は注入前にベースラインのパラメーターとバリエーションのオーバーライドをマージするため、既定値を自分で確認する必要はありません。
Auth0 Universal Login のページテンプレートでは EJS を使用します。以下の例では EJS 構文を使用しています。
EJS 構文:
null チェックを行う場合:
Partials を使用して Signup と Login をカスタマイズする
partials を使用して Signup プロンプトとログイン プロンプトをカスタマイズする場合、実験コンテキストは partial の一部として明示的に渡されます。
partial では、同じ experiment 変数を利用できます。
この例では、サインアップページの見出しを制御する文字列パラメーターを持つフィーチャーフラグを示します。コントロールバリエーションでは “Create your account” を使用し、トリートメントでは “Join in seconds.” を使用します。
フィーチャーフラグのパラメーター:
コントロールバリエーション: overrides が空 (signup_headline: "Create your account" を継承)
トリートメントバリエーション:
テンプレートのコード:
コントロールバリエーションに割り当てられたユーザーには “アカウントを作成しましょう。” と表示されます。トリートメントに割り当てられたユーザーには “数秒で登録できます。” と表示されます。アクティブな実験がないユーザーにも “アカウントを作成しましょう” が表示されます (else 分岐) 。
この例では、ブール値のパラメーターを使用して、追加の UI 要素の表示/非表示を切り替えます。
=== true との比較 (truthy チェックではなく) により、experiment が null の場合や、パラメーターが存在しない場合に要素が表示されるのを防ぎます。
アクティブな実験がない場合、テンプレートコンテキストでは experiment は null です。実験コンテキストがなくても常に正しくレンダリングされるように、テンプレートを作成してください。
または、if/else を明示的に記述することもできます (複雑な条件ではこちらのほうが読みやすくなります) :
フォールバック値はテンプレートにハードコードしてください。これらの値はコントロールバリエーションのベースラインと一致するため、実験が実行されていない場合でも、コントロールバリエーションが割り当てられている場合でも、テンプレートは正しく動作します。