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