Agregue código a la aplicación - Amazon CloudWatch

Agregue código a la aplicación

Si desea trabajar con CloudWatch Evidently, agregue código a la aplicación para asignar una variación a cada sesión de usuario y para enviar métricas a Evidently. Utilice la operación EvaluateFeature de CloudWatch Evidently para asignar variaciones a las sesiones de usuario y utilice la operación PutProjectEvents para enviar eventos a Evidently y utilizarlos para calcular las métricas de sus lanzamientos o experimentos.

Al crear variaciones o métricas personalizadas, la consola de CloudWatch Evidently proporcionará ejemplos del código que necesita agregar.

Si desea obtener un ejemplo integral, consulte Tutorial: A/B testing with the Evidently sample application (Pruebas A/B con la aplicación de muestra de Evidently).

Utilizar EvaluateFeature

Cuando se utilizan variaciones de características en un lanzamiento o experimento, la aplicación utiliza la operación EvaluateFeature para asignar una variación a cada sesión de usuario. La asignación de una variación a un usuario es un evaluation event (evento de evaluación). Cuando utiliza esta operación, sucede lo siguiente:

  • Feature name (Nombre de la característica): obligatorio. Evidently procesa la evaluación de acuerdo con las reglas de evaluación de características del lanzamiento o experimento y selecciona una variación para la entidad.

  • entityId (ID de la entidad): obligatorio. Representa a un usuario único.

  • evaluationContext (Contexto de evaluación): opcional. Un objeto JSON que representa información adicional sobre un usuario. Evidentemente usará este valor para hacer coincidir al usuario con un segmento de su audiencia durante las evaluaciones de funciones, si ha creado segmentos. Para obtener más información, consulte Use segmentos para centrar su audiencia.

    A continuación, se muestra un ejemplo de un valor evaluationContext que puede enviar a Evidently.

    { "Browser": "Chrome", "Location": { "Country": "United States", "Zipcode": 98007 } }

Evaluaciones sticky

CloudWatch Evidently utiliza evaluaciones “sticky”. Una configuración única de entityId, característica, configuración de característica y evaluationContext siempre recibe la misma asignación de variantes. El único cambio de esta asignación de variaciones se produce cuando se agrega una entidad a una anulación o se marca el tráfico del experimento.

Una configuración de características incluye lo siguiente:

  • Las variaciones de características

  • La configuración de variación (porcentajes asignados a cada variación) para un experimento en ejecución actualmente de esta característica, si existe.

  • La configuración de variantes para un lanzamiento en ejecución actualmente para esta característica, si existe. La configuración de variantes incluye las anulaciones de segmentos definidas, si las hay.

Si se aumenta la asignación de tráfico de un experimento, los entityId que se hayan asignado previamente a un grupo de tratamiento experimental seguirán recibiendo el mismo tratamiento. Cualquier entityId que se haya asignado previamente al grupo de control podría asignarse a un grupo de tratamiento del experimento, de acuerdo con la configuración de variación especificada para el experimento.

Si se reduce la asignación de tráfico de un experimento, entityId puede pasar de un grupo de tratamiento a un grupo de control, pero no pasará a un grupo de tratamiento diferente.

Usar PutProjectEvents

Para codificar una métrica personalizada para Evidently, utilice la operación PutProjectEvents. A continuación, observará un ejemplo de carga.

{ "events": [ { "timestamp": {{$timestamp}}, "type": "aws.evidently.custom", "data": "{\"details\": {\"pageLoadTime\": 800.0}, \"userDetails\": {\"userId\": \"test-user\"}}" } ] }

La entityIdKey (clave de ID de identidad) puede ser simplemente un entityId (ID de identidad) o puede cambiarle el nombre a cualquier otra cosa, como userId (ID del usuario). En un caso real, un entityId puede ser un nombre de usuario, un ID de sesión, etc.

"metricDefinition":{ "name": "noFilter", "entityIdKey": "userDetails.userId", //should be consistent with jsonValue in events "data" fields "valueKey": "details.pageLoadTime" },

Para asegurarse de que los eventos estén asociados con el lanzamiento o experimento correctos, debe pasar el mismo entityId cuando llame tanto a EvaluateFeature como a PutProjectEvents. Asegúrese de llamar a PutProjectEvents tras la llamada a EvaluateFeature; de lo contrario, los datos se eliminan y CloudWatch Evidently no los utilizará.

La operación PutProjectEvents no requiere el nombre de la característica como parámetro de entrada. De esta forma, puede utilizar un único evento en múltiples experimentos. Por ejemplo, supongamos que llama EvaluateFeature con entityId establecido en userDetails.userId. Si tiene dos o más experimentos en ejecución, puede hacer que un único evento de la sesión de ese usuario emita métricas para cada uno de esos experimentos. Para ello, llama a PutProjectEvents una vez por cada experimento, utilizando ese mismo entityId.

Timing

Después de que su aplicación llame a EvaluateFeature, hay un periodo de tiempo de una hora en el que los eventos métricos de PutProjectEvents se atribuyen según esa evaluación. Si se producen más eventos después del período de una hora, no se les atribuye.

Sin embargo, si el mismo entityId se utiliza para una nueva llamada de EvaluateFeature durante el período de una hora de esa llamada inicial, se utilizará el último resultado de EvaluateFeature en su lugar y se reiniciará el temporizador de una hora. Esto solo puede ocurrir en determinadas circunstancias, como cuando el tráfico de experimentos se marca entre las dos asignaciones, tal y como se explica en la sección anterior, Evaluaciones sticky.

Si desea obtener un ejemplo integral, consulte Tutorial: A/B testing with the Evidently sample application (Pruebas A/B con la aplicación de muestra de Evidently).