ExperimentContext en tu componente ACUL como experiment.
La inyección solo se produce en las pantallas para las que la hayas habilitado. La habilitas por pantalla agregando "experiment" al arreglo context_configuration de esa pantalla.
Para habilitar una pantalla para que reciba el contexto del experimento, haz una llamada PATCH al endpoint /api/v2/prompts/{prompt}/screen/{screen}/rendering.
Example
{prompt} por el nombre del prompt (por ejemplo, login) y {screen} por el nombre de la pantalla (por ejemplo, login).
La resolución del experimento y el enriquecimiento del registro del inquilino siempre se ejecutan, independientemente de si una pantalla ha optado por participar. La suscripción solo controla si las propiedades de
experiment se pasan a tu componente ACUL. Esta es una medida de minimización de datos: no habilites la suscripción en pantallas que no necesiten el contexto del experimento.La estructura del contexto del experimento
window.universal_login_context.experiment.
Durante Experiment Center (Beta), el SDK de ACUL no agrega automáticamente la propiedad
experiment, por lo que debes definirla mediante window.universal_login_context.experiment.experiment es null.
El parámetro config contiene la configuración combinada completa de la variación asignada. Experiment Center toma los parámetros de línea base del indicador de funcionalidad y aplica encima las sobrescrituras de la variación asignada. Cada parámetro definido en el indicador de funcionalidad siempre tiene un valor en config.
Por ejemplo, si tu indicador de funcionalidad tiene un parámetro button_label con un valor de línea base de "Sign in" y la variación asignada lo sobrescribe con "Continue", entonces config.button_label.value es "Continue".
Para la variación de control (sin sobrescrituras), config.button_label.value es "Sign in".
Leer el valor de un parámetro
config[paramName].value:
?.) en todo el código. La prop experiment es undefined cuando no hay ningún experimento activo.
Uso de is_control
is_control es true cuando el usuario está en el grupo de control (recibió la configuración de línea base, sin sobrescrituras aplicadas). Úselo cuando necesite identificar qué usuarios vieron la experiencia sin modificar o cuando quiera omitir el procesamiento opcional para los usuarios del grupo de control.
config.my_param.value) en lugar de is_control.
Las comprobaciones basadas en parámetros son más legibles y funcionan correctamente incluso si cambias qué variación es el control estadístico en un experimento futuro.
Ejemplo: experimento de variantes de texto
button_label: "Sign in")
Variación de tratamiento:
?? "Sign in" de la última línea contempla el caso en que no haya ningún experimento activo (en ese caso, experiment es undefined y config?.button_label?.value se evalúa como undefined). Si lo prefieres, puedes usar una comprobación de nulo independiente:
Ejemplo: despliegue gradual de una funcionalidad con un valor booleano
=== true (en lugar de una comprobación de valor truthy) es intencional: garantiza que el banner solo se muestre cuando el parámetro sea explícitamente true, no cuando experiment sea undefined o no exista config.
Resolución de problemas
experiment es undefined en tres situaciones:
- No hay ningún experimento activo actualmente para el inquilino
- La pantalla no se ha habilitado mediante
context_configuration - Experiment Center no está habilitado en el inquilino
experiment como si pudiera ser undefined. El patrón más seguro:
experiment siempre existe. El código que depende de que experiment esté definida generará errores cuando no se esté ejecutando ningún experimento, que es lo que ocurre la mayoría de las veces.