Información general
Los SDKs de Kameleoon le permiten realizar experimentos para mejorar la experiencia de usuario en aplicaciones web y móviles. Según el diagrama siguiente, implementar un experimento con un SDK de Kameleoon implica tres fases: inicialización, identificación del usuario y asignación de atributos, y asignación de variaciones y tracking. Este artículo ofrecerá una explicación detallada de cada una de estas fases.
Los métodos (y sus nombres) descritos en cada paso a continuación tendrán sintaxis diferentes en función de la convención del lenguaje concreto del SDK.
1. Inicialización
Al inicializarse, el SDK recupera cualquier configuración actualizada de feature flag a través de la Content Delivery Network de Cloudflare mediante dos métodos: Polling, una opción predeterminada en la que el SDK envía periódicamente una solicitud a la CDN (el intervalo por defecto es cada 60 minutos) para obtener la configuración más reciente, y Streaming, una opción premium en la que el SDK de Kameleoon es notificado en tiempo real de cualquier cambio en la configuración mediante server-sent events (SSE). Una vez recuperadas las configuraciones, el SDK comienza la asignación del código de visitante junto con las variaciones y el proceso de segmentación. Para más información, consulte consideraciones técnicas.Como se muestra en el diagrama, durante el Streaming, el método
on_configuration_update (recuerde que el nombre varía en cada SDK) permite gestionar el evento cuando la configuración tiene datos actualizados. Toma un parámetro de entrada (handler). El handler se llamará cuando la configuración se actualice mediante un evento de configuración en tiempo real. Para más información, consulte los SDKs específicos para Web y Mobile.2. Identificación del usuario y asignación de atributos
En esta fase, para calcular la variación, se asigna el código de visitante y se incorporan los atributos del usuario:-
1. Asignación del código de visitante: la inicialización ofrece la posibilidad de asignar un ID único a un visitante. Para los SDKs web, el método
getVisitorCode()recupera el código de visitante de la cookie en las cabeceras de la solicitud. Si el código de visitante no existe, el método genera un código de visitante aleatorio y lo almacena en una cookie de cabecera de respuesta. Para los SDKs móviles, el código de visitante se obtiene de la memoria del dispositivo móvil. -
2. Adición de atributos de usuario para la segmentación: las condiciones de segmentación de Kameleoon permiten activar feature flags en función de atributos de usuario. Para usar estas condiciones de forma eficaz, establezca los valores mediante el método
addData()y/ogetRemoteVisitorData()para recuperar y usar criterios específicos. Los atributos del usuario se almacenan después en la memoria del servidor para los SDKs server-side, en el local storage del navegador para los SDKs client-side, o en la memoria del dispositivo para los SDKs móviles. Para más detalles, consulte el artículo sobre almacenamiento de datos. -
3. Adición de datos externos para la segmentación: los datos externos, como las preferencias del usuario o los datos de CRM, pueden almacenarse mediante la Data API (una API REST) a través del endpoint POST. Estos datos se recuperan luego en el SDK utilizando el método
getRemoteData().
3. Asignación de variaciones y tracking
En los SDKs de Kameleoon, el métodogetVariation() (isFeatureActive() / getVariations()) recupera la configuración de un feature experiment que contiene varias variaciones. Puede usarse para obtener la(s) clave(s) de variación asignada(s) a un usuario específico.
Cuando un visitante cumple todas las condiciones de segmentación y reglas de exposición del feature flag, Kameleoon utiliza una función de hash para asignar al visitante a una variación y, a continuación, envía un evento de experimento al servicio de tracking. Si el visitante no cumple las condiciones, se envía un evento de actividad para indicar que el usuario está activo en la web o en la app móvil. Además, se puede usar el método flush() para enviar al servicio de tracking cualquier otro dato almacenado.