Skip to main content
Con el SDK de Elixir de Kameleoon, puede ejecutar experimentos y activar feature flags en sus servicios y back-ends web de Elixir. Primeros pasos: Para obtener ayuda para comenzar, consulte la guía del desarrollador. Versión: Última versión del SDK de Elixir: 0.8.6 Changelog. Métodos del SDK: Para la documentación de referencia completa del SDK de Elixir, consulte la sección referencia.

Guía del desarrollador

Esta guía está diseñada para ayudarle a integrar rápidamente el SDK de Elixir y comenzar a evaluar feature flags en su aplicación Elixir.

Primeros pasos

Instalar el cliente de Elixir

Añada el SDK como una dependencia en su archivo mix.exs:
mix.exs

Configuración adicional

Cree un archivo de configuración client-elixir.conf para proporcionar las credenciales y personalizar el comportamiento del SDK. Recomendamos guardar este archivo en la ruta predeterminada, /etc/kameleoon/client-elixir.conf. Kameleoon.ClientFactory.create utiliza esta ruta automáticamente cuando no se pasan opciones de configuración. Si almacena el archivo en otra ubicación, pase la ruta con la opción config_path: al crear el cliente. El SDK de Elixir puede configurarse mediante un archivo de configuración utilizado por Kameleoon.ClientFactory.create o pasando un struct %Kameleoon.ClientConfig\{\} con la opción config:. La siguiente tabla muestra las propiedades disponibles que puede establecer:

Inicializar el cliente de Kameleoon

Una vez que haya instalado el SDK y configurado sus credenciales, cree un %Kameleoon.Client\{\} mediante Kameleoon.ClientFactory.
Un %Kameleoon.Client\{\} es el objeto principal utilizado para evaluar feature flags, añadir datos de visitantes y enviar solicitudes de seguimiento.
  • Se recomienda usar %Kameleoon.Client\{\} como un objeto singleton, ya que sirve como puente entre su aplicación y la plataforma Kameleoon. Expone todos los métodos y propiedades necesarios para ejecutar experimentos de forma eficiente.
  • El SDK de Elixir se inicializa a través del Core nativo. Debe llamar a initialize() antes de confiar en la evaluación de funcionalidades en código de producción.

Activar un feature flag

Asignar un ID único a un usuario
Para asignar un ID único a un usuario, puede utilizar el método Client.get_visitor_code. Si no existe un visitor code (procedente de la cookie de las cabeceras de la solicitud), el método genera un ID único aleatorio o utiliza un default_visitor_code que usted haya generado. El ID se establece entonces en una cookie de las cabeceras de respuesta. Si está utilizando Kameleoon en modo híbrido, llamar al método Client.get_visitor_code garantiza que el ID único (visitor code) se comparta entre el archivo de la aplicación engine.js (anteriormente llamado kameleoon.js) y el SDK.
Recuperar una configuración de flag
Para implementar un feature flag en su código, primero debe crear el feature flag en su cuenta de Kameleoon. Para determinar el estado o la variación de un feature flag para un usuario específico, debe utilizar el método Client.get_variation o Client.is_feature_active? para recuperar la configuración basada en la feature_key. El método Client.get_variation gestiona tanto feature flags simples con estados ON/OFF como flags más complejos con múltiples variaciones. El método recupera la variación adecuada para el usuario comprobando las reglas de la funcionalidad, asignando la variación y devolviéndola en función de feature_key y visitor_code. El método Client.is_feature_active? puede usarse si quiere recuperar la configuración de un feature flag simple que solo tiene un estado ON u OFF, en contraposición a feature flags más complejos con múltiples variaciones u opciones de segmentación. Si su feature flag tiene variables asociadas (como comportamientos específicos vinculados a cada variación), Client.get_variation también le permite acceder al objeto Variation, que proporciona detalles sobre la variación asignada y su experimento asociado. Este método comprueba si el usuario está segmentado, encuentra la variación asignada al visitante y la guarda en el almacenamiento. Cuando track=true, el SDK enviará el evento de exposición al experimento especificado en la siguiente solicitud de seguimiento, que se activa automáticamente en función del tracking_interval_millis del SDK. De forma predeterminada, este intervalo se establece en 1000 milisegundos (1 segundo). El método Client.get_variation le permite controlar si se realiza el seguimiento. Si track=false, el SDK no enviará eventos de exposición. Esto es útil si prefiere no realizar el seguimiento de los datos a través del SDK y, en su lugar, confiar en el seguimiento del lado del cliente gestionado por el motor de Kameleoon, por ejemplo. Además, establecer track=false resulta útil al utilizar el método Client.get_variations, donde quizá solo necesite las variaciones de todos los flags sin desencadenar ningún evento de seguimiento. Si quiere saber más sobre cómo funciona el seguimiento, consulte este artículo.
Añadir puntos de datos para segmentar a un usuario o filtrar / desglosar visitas en los informes
Para segmentar a un usuario, asegúrese de haber añadido puntos de datos relevantes a su perfil antes de recuperar la variación de la funcionalidad o comprobar si el flag está activo. Utilice el método Client.add_data para añadir estos puntos de datos al perfil del usuario. Para recuperar puntos de datos recogidos en otros dispositivos o para acceder a datos pasados del usuario (recogidos en el lado del cliente al utilizar Kameleoon en modo híbrido), use el método Client.get_remote_visitor_data. Este método obtiene datos de los servidores de forma asíncrona. Es importante llamar a Client.get_remote_visitor_data antes de recuperar la variación o comprobar si el feature flag está activo, ya que estos datos podrían ser necesarios para asignar al usuario a una variación determinada. Para obtener más información sobre las condiciones de segmentación disponibles, consulte el artículo detallado sobre el tema. Además, los puntos de datos que añade al perfil del visitante estarán disponibles al analizar sus experimentos, lo que le permite filtrar y desglosar sus resultados por factores como dispositivo y navegador. El modo híbrido de Kameleoon recopila automáticamente diversos puntos de datos en el lado del cliente, lo que facilita desglosar sus resultados a partir de estos datos previamente recopilados. Consulte la lista completa aquí. Si necesita realizar el seguimiento de puntos de datos adicionales más allá de los que se recopilan automáticamente, puede utilizar la funcionalidad de datos personalizados de Kameleoon. Los datos personalizados le permiten capturar y analizar información específica relevante para sus experimentos. No olvide llamar al método Client.flush para enviar los datos recopilados a los servidores de Kameleoon para su análisis.
Para asegurar que sus resultados sean precisos, se recomienda filtrar los bots utilizando el tipo de dato UserAgent.
Seguimiento de conversiones de objetivos
Cuando un usuario completa una acción deseada (como realizar una compra), se registra como una conversión. Para realizar el seguimiento de conversiones, utilice el método Client.track_conversion y proporcione los parámetros obligatorios visitor_code y goal_id. La solicitud de seguimiento de la conversión se enviará junto con la siguiente solicitud de seguimiento programada, que el SDK envía a intervalos regulares (definidos por tracking_interval_millis). Si prefiere enviar la solicitud de inmediato, utilice el método Client.flush_instant.
Envío de eventos a soluciones de analítica
Para realizar el seguimiento de conversiones y enviar eventos de exposición a su solución de analítica de clientes, primero debe implementar Kameleoon en modo híbrido. A continuación, utilice el método Client.get_engine_tracking_code. El método Client.get_engine_tracking_code recupera el código de seguimiento único necesario para enviar eventos de exposición a su solución de analítica. El uso de este método le permite registrar eventos y enviarlos a la plataforma de analítica de su elección.

Uso de una clave de bucketing personalizada

De forma predeterminada, Kameleoon utiliza un ID de visitante único y anónimo (visitor_code) para asignar usuarios a las variaciones de los feature flags. Este ID normalmente se genera y se almacena en el dispositivo del usuario (en una cookie del navegador para los SDKs del lado del cliente y del lado del servidor, y en el almacenamiento persistente para los SDKs móviles). Sin embargo, en ciertos escenarios puede que necesite asegurarse de que todos los usuarios de la misma organización vean la misma variante de un feature flag. La opción Clave de bucketing personalizada le permite anular este comportamiento predeterminado proporcionando su propio identificador personalizado para el bucketing. Esta anulación garantiza que la lógica de asignación de Kameleoon utilice la clave que usted especifique en lugar del visitor_code predeterminado.

Casos de uso

El uso de una clave de bucketing personalizada es esencial para mantener la coherencia y la precisión de las asignaciones de sus feature flags, especialmente en estas situaciones:
  • Experimentos a nivel de cuenta o de organización: Para productos B2B o escenarios en los que quiere asignar a todos los usuarios de la misma organización a la misma variación, puede utilizar un identificador como un account_id. Las claves de bucketing personalizadas son cruciales para realizar pruebas A/B de funcionalidades que afectan a todo un equipo o empresa.
Al implementar una clave de bucketing personalizada, garantiza mayor coherencia y precisión en sus experimentos, lo que conduce a resultados más fiables y una mejor experiencia de usuario.

Detalles técnicos

Cuando configura una clave de bucketing personalizada para un feature flag, proporciona a Kameleoon un identificador específico de los datos de su aplicación:
  • Proporcionar la clave personalizada: Usted proporciona su identificador personalizado al SDK de Kameleoon mediante el método Client.add_data. En este método, pasará su clave de bucketing personalizada elegida como un objeto CustomData. Aquí, new_visitor_code se refiere al identificador que desea utilizar para su bucketing (por ejemplo, el nuevo user_id o account_id).
Para que la clave de bucketing personalizada funcione correctamente, también debe estar definida y configurada para el feature flag durante el proceso de creación o edición del flag. Sin esta configuración correspondiente, el bucketing del SDK no aplicará su clave personalizada. Para obtener instrucciones detalladas sobre cómo configurar esto en Kameleoon, consulte este artículo.
  • Lógica de bucketing: Una vez que se proporciona una clave de bucketing personalizada a través del método Client.add_data, todos los cálculos de hash para asignar usuarios a variaciones utilizarán este new_visitor_code (su clave personalizada) en lugar del visitor_code predeterminado. Utilizar el new_visitor_code significa que la decisión de bucketing está ligada a su identificador personalizado, lo que garantiza asignaciones coherentes en diversos contextos donde está presente ese identificador.
  • Seguimiento de datos y analítica: Es crucial tener en cuenta que, aunque el new_visitor_code (su clave personalizada) se utiliza para las decisiones de bucketing, todos los datos posteriores (eventos de seguimiento y conversiones, por ejemplo) se envían y se asocian con el visitor_code original. Esta separación garantiza que sus analíticas reflejen con precisión los recorridos e interacciones individuales de los usuarios dentro del contexto más amplio de su experimento, incluso cuando el bucketing se realice a un nivel superior (como una cuenta) o entre varios dispositivos/sesiones. Sus datos originales del visitante permanecen intactos para informes integrales.

Requisitos técnicos

Para utilizar eficazmente una clave de bucketing personalizada:
  • La clave debe ser un String.t().
  • Debe ser única para la entidad que pretende usar para el bucketing (por ejemplo, si utiliza un user_id, el ID de cada usuario debe ser único).
  • La clave debe estar disponible para el SDK en el momento exacto en que se evalúa la decisión del feature flag para ese usuario o solicitud.

Condiciones de segmentación

Los SDKs de Kameleoon admiten una variedad de condiciones de segmentación predefinidas que puede utilizar para segmentar a los usuarios en sus campañas. Para obtener la lista de condiciones que admite este SDK, consulte usar el historial de visitas para segmentar usuarios. También puede utilizar sus propios datos externos para segmentar usuarios.

Experimentación entre dispositivos

Para dar soporte a los visitantes que acceden a una aplicación desde varios dispositivos, Kameleoon permite la sincronización de los datos del visitante previamente recopilados en cada uno de los dispositivos del visitante, y la reconciliación de su historial de visitas entre dispositivos mediante la experimentación entre dispositivos. Hay casos de estudio e información detallada sobre cómo Kameleoon gestiona los datos entre dispositivos disponibles en el artículo sobre la experimentación entre dispositivos.

Sincronización de datos personalizados entre dispositivos

Aunque la sincronización de mapeo personalizado se utiliza para alinear los datos del visitante entre dispositivos, no siempre es necesaria. A continuación se presentan dos escenarios en los que no se requiere la sincronización de mapeo personalizado: Mismo ID de usuario en todos los dispositivos Si se utiliza el mismo ID de usuario de forma coherente en todos los dispositivos, la sincronización se gestiona automáticamente sin una sincronización de mapeo personalizado. Basta con llamar al método Client.get_remote_visitor_data cuando quiera sincronizar los datos recopilados entre varios dispositivos. Instancias multi-servidor con IDs coherentes En configuraciones complejas que involucran varios servidores (por ejemplo, instancias de servidor distribuidas), donde el mismo ID de usuario está disponible entre servidores, la sincronización entre servidores (con Client.get_remote_visitor_data) es suficiente sin necesidad de sincronización adicional de mapeo personalizado. Los clientes que necesiten datos adicionales pueden consultar la descripción del método Client.get_remote_visitor_data para más orientación. En el siguiente código, se asume que el mismo identificador único (en este caso, el visitor_code, que también puede denominarse userId) se utiliza de forma coherente entre los dos dispositivos para una recuperación precisa de los datos.
Si quiere sincronizar los datos recopilados en tiempo real, debe elegir el ámbito Visitor para sus datos personalizados.
Device A
Device B

Usar datos personalizados para la fusión de sesiones

La experimentación entre dispositivos permite combinar el historial de un visitante en cada uno de sus dispositivos (reconciliación del historial). La reconciliación del historial permite fusionar diferentes sesiones de un visitante en una sola. Para reconciliar el historial de visitas, utilice CustomData para proporcionar un identificador único para el visitante. Para más información, consulte la documentación dedicada. Una vez habilitada la reconciliación entre dispositivos, llamar a Client.get_remote_visitor_data con el parámetro userId recupera todos los datos conocidos para un usuario determinado. A las sesiones con el mismo identificador siempre se les mostrará la misma variación en un experimento. En la vista de Visitante de las páginas de resultados de su experimento, estas sesiones aparecerán como un único visitante. La configuración del SDK garantiza que las sesiones asociadas siempre vean la misma variación del experimento. Sin embargo, existen algunas limitaciones con respecto a la asignación de variaciones entre dispositivos. Estas limitaciones se describen aquí. Siga la guía activación de la reconciliación de historial entre dispositivos para configurar sus datos personalizados en la plataforma Kameleoon. Posteriormente, puede utilizar el SDK normalmente. Los siguientes métodos pueden ser útiles en el contexto de la fusión de sesiones:
  • Client.get_remote_visitor_data con UniqueIdentifier(true) añadido: para recuperar datos de todos los visitantes vinculados.
  • Client.track_conversion o Client.flush con datos UniqueIdentifier(true) añadidos: para realizar el seguimiento de algunos datos para un visitante específico que está asociado con otro visitante.
Como los datos personalizados que utiliza como identificador deben tener el ámbito Visitor, debe utilizar la sincronización de datos personalizados entre dispositivos para recuperar el identificador con el método Client.get_remote_visitor_data en cada dispositivo.
A continuación se muestra un ejemplo de cómo usar datos personalizados para la fusión de sesiones.
En este ejemplo, la aplicación tiene una página de inicio de sesión. Dado que el ID de usuario es desconocido en el momento del inicio de sesión, se utiliza un identificador de visitante anónimo generado por el método Client.get_visitor_code. Después de que el usuario inicia sesión, el visitante anónimo se asocia con el ID de usuario y se utiliza como identificador único para el visitante.

Registro (Logging)

El SDK genera registros que reflejan diversos procesos e incidencias internos.

Niveles de registro

El SDK admite la configuración del registro limitándolo por nivel.

Gestión personalizada de los registros

El SDK escribe sus registros en la salida de la consola de forma predeterminada. Este comportamiento puede sobrescribirse.
La limitación del registro por nivel se realiza de forma independiente a la lógica de gestión de registros.

Referencia

Esta es la documentación de referencia completa para el SDK de Elixir.

Inicialización

create()

Para usar el SDK, cree un %Kameleoon.Client\{\} con Kameleoon.ClientFactory.create. De forma predeterminada, create lee /etc/kameleoon/client-elixir.conf. También puede proporcionar bien un struct %Kameleoon.ClientConfig\{\} a través de config:, o bien una ruta personalizada al archivo de configuración a través de config_path:.
Argumentos
Valor devuelto
Errores

initialize()

Espera a que el cliente de Kameleoon se inicialice, utilizando el default_timeout_millis configurado o un timeout proporcionado. Este método garantiza que el cliente esté totalmente inicializado antes de realizar cualquier otra operación.
Argumentos
Valor devuelto
Errores

is_ready()

Comprueba si el cliente ha sido inicializado.
Valor devuelto

forget()

Elimina el cliente del SDK almacenado en caché asociado al site_code especificado.
Argumentos
Valor devuelto

Feature flags y variaciones

is_feature_active()

  • 📨 Envía datos de seguimiento a Kameleoon (dependiendo de la opción track)
Determina si un feature flag está activo para un usuario determinado. Si el visitante aún no ha sido evaluado para este feature flag, el SDK evalúa las reglas de segmentación y devuelve el resultado. Si el visitante ya tiene una evaluación almacenada para la funcionalidad, el SDK reutiliza el resultado existente para garantizar la coherencia.
Kameleoon usa el seguimiento para contar sesiones y visitantes cuando llama a determinados métodos, como Client.is_feature_active?, Client.get_variation o Client.get_variations.Utilice el valor predeterminado true para el parámetro track cuando exponga a los visitantes a una variación y necesite contarlos. Establezca el parámetro track en false solo si llama a estos métodos antes de exponer a los visitantes.Por ejemplo, si llama a Client.get_variations para recuperar todas las variaciones antes de exponer a los visitantes, establezca el parámetro track en false. Esta configuración evita que Kameleoon cuente prematuramente una sesión. Posteriormente, podrá activar el seguimiento cuando exponga explícitamente al visitante.Kameleoon envía datos de seguimiento cada segundo de forma predeterminada. Puede configurar este intervalo hasta cinco segundos mediante la opción de configuración del intervalo de seguimiento. Kameleoon agrupa los eventos de seguimiento en una única sesión siempre que el intervalo entre eventos sea inferior a 30 minutos. Si transcurren más de 30 minutos entre eventos de seguimiento, Kameleoon cuenta los eventos como sesiones separadas. Una visita aparece en sus informes 30 minutos después del último evento registrado en la sesión.
El método Client.is_feature_active? evalúa la variante servida, no el estado del flag maestro. Si excluye reglas, el método utiliza el estado predeterminado Then, for everyone else serve. Si selecciona Off para este estado predeterminado, el método siempre devuelve false incluso cuando el feature flag maestro está On.
Argumentos
Valor devuelto
Errores

get_variation()

  • 📨 Envía datos de seguimiento a Kameleoon (dependiendo del parámetro track)
Recupera la Variation asignada a un visitante determinado para un feature flag específico. Este método requiere visitor_code y feature_key como argumentos obligatorios. El argumento track es opcional y su valor predeterminado es true. Devuelve la Variation asignada al visitante. Si el visitante no está asociado con ninguna regla de feature flag, el método devuelve la Variation predeterminada para el feature flag dado. Asegúrese de implementar el manejo de errores adecuado en su código para gestionar las posibles excepciones.
La variación predeterminada se refiere a la variación asignada a un visitante cuando este no coincide con ninguna regla de entrega predefinida para un feature flag. En otras palabras, es la variación de respaldo aplicada a todos los usuarios que no están segmentados por reglas específicas. Se representa como la variación en la sección “Then, for everyone else…” en una interfaz de gestión.
Argumentos
Valor devuelto
Errores

get_variations()

  • 📨 Envía datos de seguimiento a Kameleoon (dependiendo del parámetro track)
Recupera un mapa de objetos Variation asignados a un visitante determinado en todos los feature flags. Este método itera sobre todos los feature flags disponibles y devuelve la Variation asignada para cada flag asociado al visitante especificado. Toma visitor_code como argumento obligatorio, mientras que only_active y track son opcionales.
  • Si only_active se establece en true, el método Client.get_variations devolverá las variaciones de feature flags siempre que el usuario no esté asignado a la variación off.
  • El parámetro track controla si el método rastreará o no las asignaciones de variaciones. De forma predeterminada, está establecido en true. Si se establece en false, el seguimiento se desactivará.
El mapa devuelto consta de las claves de los feature flags como claves y sus correspondientes Variation como valores. Si no se asigna ninguna variación para un feature flag, el método devuelve la Variation predeterminada para ese flag. Debe implementarse un manejo de errores adecuado para gestionar las posibles excepciones.
La variación predeterminada se refiere a la variación asignada a un visitante cuando este no coincide con ninguna regla de entrega predefinida para un feature flag. En otras palabras, es la variación de respaldo aplicada a todos los usuarios que no están segmentados por reglas específicas. Se representa como la variación en la sección “Then, for everyone else…” en una interfaz de gestión.
Argumentos
Valor devuelto
Errores

set_forced_variation()

El método le permite asignar mediante programación una Variation específica a un usuario, omitiendo el proceso de evaluación estándar. Esto es especialmente valioso para experimentos controlados donde la lógica de evaluación habitual no es necesaria o debe omitirse. También puede ser útil en escenarios como depuración o pruebas personalizadas. Cuando se establece una variación forzada, anula la lógica de evaluación en tiempo real de Kameleoon. Procesos como la segmentación, las condiciones de segmentación y los cálculos algorítmicos se omiten. Para preservar la segmentación y las condiciones de segmentación durante un experimento, establezca force_targeting=false en su lugar.
Las variaciones simuladas siempre tienen prioridad en el orden de ejecución. Si se activa un cálculo de variación simulada, este se procesará y completará primero en su totalidad.
Una variación forzada se trata igual que una variación evaluada. Se rastrea en la analítica y se almacena en el contexto del usuario como cualquier variación evaluada estándar, lo que garantiza la coherencia en los informes. El método puede lanzar excepciones en determinadas condiciones (por ejemplo, parámetros no válidos, contexto del usuario o problemas internos). Un manejo adecuado de excepciones es esencial para garantizar que su aplicación se mantenga estable y resistente.
Es importante distinguir las variaciones forzadas de las variaciones simuladas:
  • Variaciones forzadas: Son específicas para un experimento individual.
  • Variaciones simuladas: Afectan al resultado global del feature flag.
Argumentos
Valor devuelto
Errores

evaluate_audiences()

  • 📨 Envía datos de seguimiento a Kameleoon
Este método evalúa a los visitantes frente a todos los segmentos disponibles del Audiences Explorer y rastrea aquellos que coinciden. Client.evaluate_audiences debe llamarse después de que todos los datos relevantes del visitante hayan sido establecidos o actualizados, y justo antes de obtener la variación de una funcionalidad o comprobar un feature flag. Este enfoque garantiza que el visitante se evalúe con los datos más actuales disponibles, permitiendo una asignación precisa de audiencias en función de todos los criterios. Después de llamar a este método, puede realizar un análisis detallado del rendimiento del segmento en el Audiences Explorer.
Argumentos
Valor devuelto
Errores

get_datafile()

Para evaluar todos los feature flags, utilice Client.get_variations. Este método es más eficiente que llamar a DataFile e iterar sobre los flags con Client.get_variation.
Devuelve la configuración actual del SDK como un objeto DataFile.
Valor devuelto
Errores

Datos del visitante

get_visitor_code()

Utilice get_visitor_code() para obtener el visitor_code actual de Kameleoon del visitante. El método funciona con cualquier almacén de cookies que implemente el behaviour Kameleoon.CookieAccessor. La lógica de implementación es la siguiente:
  1. El SDK comprueba si ya hay una cookie kameleoonVisitorCode disponible a través del accessor proporcionado.
  2. Si la cookie está ausente, el SDK utiliza default_visitor_code cuando se proporciona uno.
  3. De lo contrario, el SDK genera un nuevo código de visitante y lo almacena a través del accessor.
Para más información, consulte Experimentación híbrida.
Si proporciona su propio visitor_code, su unicidad debe garantizarse por su parte. Tenga en cuenta también que la longitud del visitor_code está limitada a 255 caracteres.
El método Client.get_visitor_code le permite establecer variaciones simuladas para un visitante. Cuando las cookies (de una solicitud o documento) contienen la clave kameleoonSimulationFFData, se omite el proceso de evaluación estándar. En su lugar, el método devuelve directamente una Variation basada en los datos proporcionados.Puede aplicar simulaciones de dos maneras:
  • Automáticamente (recomendado): Si utiliza Kameleoon Web Experimentation o el SDK en modo híbrido, la cookie se crea automáticamente al simular la visualización de una variante mediante el Simulation Panel.
  • Manualmente: Establezca la cookie kameleoonSimulationFFData manualmente.
Es importante distinguir las variaciones simuladas de las variaciones forzadas:
  • Variaciones simuladas: Afectan al resultado global del feature flag.
  • Variaciones forzadas: Son específicas para un experimento individual.
⚙️ Configuración manualAsegúrese de que la cookie kameleoonSimulationFFData siga este formato:
  • kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: Simula la variación con varId del experimento expId para la featureKey dada.
  • kameleoonSimulationFFData={"featureKey":{"expId":0}}: Simula la variación predeterminada (definida en la sección Then, for everyone else in Production, serve) para la featureKey dada.
⚠️ Para garantizar el funcionamiento correcto, el valor de la cookie debe codificarse como un componente URI mediante un método como encodeURIComponent.
Argumentos
El módulo accessor debe implementar get y set. get lee un valor de cookie desde el estado del accessor, y set devuelve el estado actualizado tras recibir key, value, max_age y top_level_domain.
Valor devuelto

add_data()

El método Client.add_data añade datos de segmentación al almacenamiento para que otros métodos puedan usar los datos para decidir si segmentar o no al visitante actual. El método Client.add_data no devuelve ningún valor y no interactúa por sí solo con los servidores back-end de Kameleoon. En su lugar, todos los datos declarados se guardan para su transmisión futura mediante el método Client.flush. Este enfoque reduce el número de llamadas al servidor realizadas, ya que los datos normalmente se agrupan en una sola llamada al servidor que se desencadena con Client.flush. El método Client.track_conversion también envía los datos previamente asociados, al igual que Client.flush. Lo mismo ocurre con los métodos Client.get_variation y Client.get_variations si se activa una regla de experimentación.
Cada visitante solo puede tener una instancia de datos asociados para la mayoría de los tipos de datos. Sin embargo, CustomData es una excepción. Los visitantes pueden tener una instancia de CustomData asociada por índice.
Argumentos
Valor devuelto
Errores

flush()

  • 📨 Envía datos de seguimiento a Kameleoon
El método flush() agrega todos los datos de Kameleoon asociados a un visitante y envía una solicitud de seguimiento al servidor. Esta solicitud incluye cualquier dato añadido previamente mediante el método add_data que aún no se haya transmitido a través de otros mecanismos de seguimiento (consulte los métodos referenciados para más detalles). La operación flush() no es bloqueante, ya que la llamada al servidor se realiza de forma asíncrona. Este método proporciona control sobre cuándo se transmiten los datos vinculados a un visitor_code específico. Por ejemplo, si add_data() se llama varias veces, enviar una solicitud después de cada invocación sería ineficiente. En su lugar, puede agrupar estas actualizaciones y llamar a flush() una vez para enviar todos los datos acumulados en una sola solicitud. El método flush() utiliza el visitor_code proporcionado como identificador único del visitante.
  • flush() — Pone en cola una operación de flush según el intervalo de seguimiento configurado.
  • flush_instant() — Envía los datos de seguimiento inmediatamente sin esperar al intervalo.
Argumentos
Valor devuelto
Errores

get_remote_data()

El método get_remote_data() le permite recuperar datos remotos almacenados en los servidores de Kameleoon para la key especificada. En la mayoría de las configuraciones, estos datos se escriben a través de la Data API de Kameleoon y luego pueden ser obtenidos por su servicio Elixir cuando necesite contexto adicional de la aplicación. Este método es útil cuando desea mantener información estructurada en la infraestructura remota de Kameleoon y reutilizarla desde su back-end sin mantener un mecanismo de recuperación independiente.
Argumentos
Valor devuelto
Errores

get_remote_visitor_data()

get_remote_visitor_data() recupera los datos de visita de Kameleoon para el visitor_code proporcionado. El método añade los datos al almacenamiento local del visitante para que otros métodos del SDK puedan usarlos para tomar decisiones de segmentación. Los datos obtenidos con este método son especialmente útiles cuando desea:
  • utilizar datos recopilados desde otros dispositivos.
  • acceder al historial de un visitante, como las páginas vistas previamente en visitas pasadas.
  • utilizar datos que solo están disponibles en el lado del cliente, como variables del datalayer y conversiones de objetivos de front-end.
Lea este artículo para comprender mejor los posibles casos de uso.
De forma predeterminada, get_remote_visitor_data() recupera automáticamente los datos personalizados más recientes almacenados con scope=Visitor y los adjunta al visitante sin necesidad de llamar a add_data(). Esto es especialmente útil para sincronizar datos personalizados entre varios dispositivos.
Argumentos
Valor devuelto
Errores
Uso de parámetros en get_remote_visitor_data()
El método get_remote_visitor_data() le permite controlar qué datos se recuperan para un visitante. El mismo enfoque de filtrado funciona para objetivos, experimentos, variaciones y otros datos del visitante. Por ejemplo, si quiere segmentar a los usuarios que convirtieron en un objetivo durante sus últimas cinco visitas, puede establecer previous_visit_amount en 5 y conversions en true. La flexibilidad mostrada en este ejemplo no se limita a los datos de objetivos. Puede utilizar el filtro para recuperar muchos comportamientos diferentes del visitante y ponerlos a disposición de la lógica de segmentación y de informes en su aplicación Elixir.
Campos de RemoteVisitorDataFilter

get_visitor_warehouse_audience()

Este método recupera los datos de audiencia asociados a un visitante en su integración de warehouse utilizando el visitor_code especificado y, opcionalmente, una warehouse_key. La warehouse_key suele ser su ID de usuario interno. El parámetro custom_data_index corresponde a los datos personalizados de Kameleoon que Kameleoon utiliza para segmentar a sus visitantes. Cuando la llamada tiene éxito, el SDK convierte la lista de audiencias devuelta en CustomData, la añade al visitante localmente y la pone a disposición para fines de segmentación. Para más contexto, consulte la documentación de segmentación de warehouse.
Argumentos
Valor devuelto
Errores
Debe utilizar este método para especificar si el visitante ha dado su consentimiento legal para el uso de sus datos personales. Establecer legal_consent en false limita los tipos de datos que se pueden incluir en las solicitudes de seguimiento. Esto le ayuda a cumplir con los requisitos legales y reglamentarios al tiempo que gestiona de forma responsable los datos del visitante. Para más información, consulte la política de gestión del consentimiento. El SDK de Elixir actualiza las cookies del visitante a través del adaptador Kameleoon.CookieAccessor requerido y devuelve el estado actualizado del adaptador.
Argumentos
Valor devuelto
Errores
Comportamiento de revocación del consentimiento
Cuando llama a Client.set_legal_consent con legal_consent=false, el SDK no elimina la cookie kameleoonVisitorCode. En su lugar, deja de extender la fecha de caducidad de la cookie, permitiendo que la cookie persista hasta que caduque de forma natural. Si sus requisitos de cumplimiento exigen la eliminación inmediata del archivo de cookies tras la exclusión voluntaria, debe eliminarlo manualmente utilizando los métodos nativos de gestión de cookies de su framework. El SDK no eliminará el archivo automáticamente.

Objetivos y analítica de terceros

track_conversion()

  • 📨 Envía datos de seguimiento a Kameleoon
Utilice este método para realizar el seguimiento de una conversión para un objetivo y un usuario específicos. Este método requiere visitor_code y goal_id. Además, este método también acepta los argumentos opcionales revenue, negative y metadata. El visitor_code suele ser idéntico al que se utilizó al activar el experimento.
Este método no es bloqueante ya que la llamada al servidor se realiza de forma asíncrona.
Argumentos
Los valores de metadata son accesibles a través de las exportaciones de datos en bruto y la página de resultados.Si se proporciona el parámetro metadata, Kameleoon utilizará estos valores especificados para la conversión actual en lugar de lo que se haya recopilado previamente con el método Client.add_data. Si se omite el parámetro, Kameleoon utilizará los últimos valores rastreados para esos CustomData antes de la conversión y dentro de la misma visita.Kameleoon solo tendrá en cuenta los valores de metadata que se pasen explícitamente como parámetros al método Client.track_conversion.En el ejemplo siguiente, Kameleoon asociará la conversión solo con el valor del dato personalizado proporcionado explícitamente como parámetro (aquí: índice 5 con el valor ‘Amex Credit Card’).
Valor devuelto
Errores

get_engine_tracking_code()

Kameleoon se integra con varias soluciones de analítica, incluidas Mixpanel, Google Analytics 4 y Segment. Para realizar correctamente el seguimiento de experimentos del lado del servidor, llame al método Client.get_engine_tracking_code después de que el visitante active un experimento. El SDK devuelve comandos de cola JavaScript para los experimentos que el visitante activó durante los cinco segundos anteriores. Cuando inserta este código en la página, Engine.js procesa los comandos y envía los eventos de exposición a través de la integración de analítica activa. Consulte experimentación híbrida para más información sobre la implementación de este método.
  • Para utilizar esta funcionalidad, implemente tanto el SDK de Elixir como Engine.js de Kameleoon. Dado que Engine.js solo se utiliza para el seguimiento en este flujo, puede instalar la etiqueta asíncrona antes de la etiqueta de cierre </body>.
  • Si solo desea realizar el seguimiento de experimentos en Kameleoon y no necesita enviar eventos de exposición a herramientas de analítica de terceros, utilice el SDK de JavaScript / TypeScript. Esta opción funciona bien para plataformas serverless de edge compute. El SDK de JavaScript / TypeScript rastrea automáticamente las variaciones cuando llama a getVisitorCode, siempre que añada las asignaciones de experimentos correspondientes a window.kameleoonQueue.
  • Puede insertar el código de seguimiento devuelto directamente en una etiqueta HTML <script>.
En este ejemplo, 123456 y 234567 son IDs de experimentos, y 7890 y 8901 son IDs de variaciones. En su implementación, el SDK genera estos valores en el código de seguimiento devuelto.
Argumentos
Valor devuelto
Errores

Eventos

on_datafile_update()

El método Client.on_datafile_update le permite gestionar el evento que se produce cuando la configuración ha actualizado los datos. Toma un parámetro de entrada, handler. El manejador que se llamará cuando la configuración se actualice mediante un evento de configuración en tiempo real.
Argumentos

Tipos de datos

Esta sección lista los tipos de datos de Elixir disponibles bajo Kameleoon.Data.

ApplicationVersion

ApplicationVersion representa el número de versión semántica de su aplicación.
Un visitante solo puede tener un ApplicationVersion. Añadir una segunda instancia sobrescribirá la primera.

Browser

El conjunto de datos Browser almacenado aquí puede utilizarse para filtrar los informes de experimentos y personalización por cualquier valor asociado.

Conversion

El conjunto de datos Conversion almacenado aquí puede utilizarse para filtrar los informes de experimentos y personalización por cualquier objetivo asociado.
  • Cada visitante puede tener varios objetos Conversion.
  • Puede encontrar el goal_id en la aplicación de Kameleoon.
Cookie contiene información sobre las cookies almacenadas en el dispositivo del visitante.
Cada visitante solo puede tener una Cookie. Añadir una segunda Cookie sobrescribe la primera.

CustomData

CustomData permite la asociación de cualquier tipo de datos con cada visitante, convirtiéndolo en una herramienta eficaz para las condiciones de segmentación en segmentos. Además, puede utilizarse como filtro o desglose en los informes de experimentos. Para más información sobre datos personalizados, consulte este artículo. Defina los tipos de datos personalizados en la aplicación de Kameleoon o en la Data API y utilícelos desde el SDK.
  • Cada visitante solo puede tener un CustomData por cada index(name) único. Añadir otro CustomData con el mismo index(name) reemplazará al existente.
  • El ‘index’ del dato personalizado se encuentra en el panel de Custom Data en la columna “INDEX”.
  • Para evitar que el SDK envíe datos con el índice seleccionado a los servidores de Kameleoon por razones de privacidad, active la opción: Use this data only locally for targeting purposes al crear el dato personalizado.
  • Añadir una instancia de CustomData creada con un nombre cuando la instancia del SDK no esté inicializada o el nombre no esté registrado, hará que los datos sean ignorados.

Device

Puede usar los datos del dispositivo para filtrar los informes de experimentos y personalización por cualquier valor asociado.

Geolocation

Geolocation contiene los detalles de geolocalización del visitante.
  • Cada visitante solo puede tener una Geolocation. Añadir una segunda Geolocation sobrescribe la primera.

OperatingSystem

OperatingSystem contiene información sobre el sistema operativo del dispositivo del visitante.
Cada visitante solo puede tener un OperatingSystem. Añadir un segundo OperatingSystem sobrescribe el primero.

PageView

Almacena eventos de visualización de páginas.
El índice del referrer está disponible en la aplicación de Kameleoon en la página de configuración del canal de adquisición. Tenga cuidado: el índice empieza en 0, así que el primer canal de adquisición que cree tendrá el ID 0, no 1.

UniqueIdentifier

Si no añade UniqueIdentifier para un visitante, se utiliza visitor_code como identificador único del visitante, lo que es útil para la experimentación entre dispositivos. Cuando añade UniqueIdentifier(true), el SDK vincula los datos transmitidos (flushed) con el visitante asociado al identificador especificado. Esto puede ser útil en situaciones en las que no puede acceder al visitor_code anónimo asignado originalmente a un visitante, pero sí tiene acceso a un identificador interno conectado con ese visitante a través de la fusión de sesiones.

UserAgent

Los experimentos del lado del servidor son más propensos a verse afectados por el tráfico de bots que los del lado del cliente. Kameleoon utiliza la IAB/ABC International Spiders and Bots List para reconocer bots y spiders conocidos, y también utiliza el campo UserAgent para filtrar otro tráfico no deseado que pueda distorsionar sus métricas de conversión. Para más información, consulte el artículo de ayuda sobre filtrado de bots. Si utiliza bots internos, recomendamos enviar el valor de user-agent curl/8.0 para excluirlos de la analítica.

Tipos devueltos

DataFile

El DataFile contiene los detalles de configuración del SDK. Puede ampliarse con información adicional si los clientes lo requieren. Si necesita más detalles, póngase en contacto con su Customer Success Manager.

FeatureFlag

El FeatureFlag representa un conjunto de propiedades que definen un feature flag en sí — por ejemplo, sus Variations, Rules, estado del entorno y otros detalles relacionados. Puede ampliarse con información adicional si los clientes lo requieren. Si necesita más detalles, póngase en contacto con su Customer Success Manager.

Rule

Rule representa un conjunto de propiedades que definen una regla en sí — por ejemplo, sus Variations. Puede ampliarse con información adicional si los clientes lo requieren. Si necesita más detalles, póngase en contacto con su Customer Success Manager.

Variation

Variation contiene información sobre la variación asignada al visitante, o la variación predeterminada cuando no existe una asignación específica.
  • Variation describe la variación asignada o predeterminada, mientras que Variable contiene los detalles de cada variable individual.
  • id y experiment_id pueden ser nil, lo que indica una variación predeterminada que no está ligada a una asignación específica de experimento.
Métodos auxiliares adicionales:

Variable

Variable contiene información sobre una variable asociada a la variación asignada.