Qué puede hacer la experimentación entre dispositivos de Kameleoon
- Garantizar la coherencia de la variación: los usuarios autenticados siempre verán la misma variación en un experimento, independientemente del dispositivo que utilicen.
- Habilitar segmentación unificada: considerar todas las visitas y acciones de un mismo usuario, independientemente del dispositivo.
- Proporcionar reporting preciso: contar con exactitud los usuarios únicos entre dispositivos para comprender mejor su comportamiento.
Puntos críticos e información práctica
- El tracking entre dispositivos depende en gran medida de la identificación de los usuarios. Si un usuario permanece anónimo entre dispositivos, fusionar sus datos es imposible. Ningún sistema puede sortear esta limitación.
- Un ID de usuario fiable (como el vinculado a un login) es esencial para vincular datos entre dispositivos. Sin un ID fiable, no es posible fusionar historiales de navegación o acciones.
- Las acciones realizadas en estado anónimo (por ejemplo, navegar sin iniciar sesión) no pueden vincularse a un usuario identificado hasta que se produzca un login. Una vez que el usuario inicia sesión, su historial se fusiona, pero solo hacia adelante.
- No obstante, tenga en cuenta que para Web Experimentation, una vez que se proporcionan los datos personalizados, Kameleoon puede recuperarlos para todas las visitas posteriores en el mismo dispositivo, incluso si el usuario aún no ha iniciado sesión. Esta recuperación ocurre porque los datos se almacenan en local storage, lo cual no ocurre en feature experimentation.
- Aunque la experimentación entre dispositivos funciona para muchos casos de uso, no encajará en todos los experimentos. La experimentación entre dispositivos depende de su stack tecnológico, los recorridos de cliente y los objetivos.
Comprender los límites de identidad
En el contexto de la experimentación entre dispositivos, los límites de identidad se refieren a cómo Kameleoon reconoce y gestiona a los usuarios en diferentes sesiones, dispositivos y estados de identificación. Estos límites son cruciales para determinar si Kameleoon puede vincular los datos del usuario entre experiencias. Kameleoon distingue principalmente entre dos tipos de identidad de usuario:- Usuarios anónimos: se trata de usuarios que no han iniciado sesión y que se identifican mediante un identificador temporal basado en el dispositivo (
visitorCode). Los identificadores anónimos son únicos para el dispositivo y el navegador y no persisten entre dispositivos. - Usuarios identificados: se trata de usuarios que inician sesión, proporcionando identificadores únicos y coherentes (como un user ID). Este identificador está vinculado al usuario individual, lo que permite a Kameleoon fusionar sus acciones e historial entre dispositivos y sesiones.
Activar la reconciliación de historial entre dispositivos
Para usar la reconciliación de historial entre dispositivos, cree una nueva entrada de datos personalizados en Kameleoon y active la opción Use this custom data as a unique identifier for cross-device matching. Cuando esté activada, Kameleoon tratará estos datos personalizados como un identificador único para los visitantes, lo que asocia varias visitas de Kameleoon a un único usuario. También debe establecer el valor del dato personalizado con un identificador único, como un user ID, utilizando alguno de los métodos de adquisición, como el métodoaddData() del SDK o la Activation API.
Si la opción está inactiva para su dato personalizado, indica que es posible que ya tenga un dato personalizado activo configurado como identificador único. Esta restricción se aplica porque solo puede haber un dato personalizado de este tipo por proyecto.
Reconciliación de historial entre dispositivos para la coherencia en la asignación de variaciones
El objetivo de la reconciliación de historial entre dispositivos para la asignación de variaciones es garantizar que los visitantes asignados a un experimento vean de forma consistente la misma variación, independientemente del dispositivo que utilicen para acceder al sitio web. No obstante, es importante reconocer que mantener esta coherencia puede ser un reto en ciertos escenarios. Por ejemplo, si un usuario visita el sitio web en su dispositivo inicial, inicia sesión y dispara un experimento, Kameleoon puede asignarle la variación V1. Si después el mismo usuario visita el sitio web en otro dispositivo y dispara el mismo experimento antes de iniciar sesión, el sistema podría asignarle la variación V2. Esta inconsistencia se produce porque el sistema aún no ha reconocido al usuario entre dispositivos. Kameleoon, intencionadamente, no sobrescribe la asignación de variación durante una única visita para no interrumpir la experiencia del usuario. Para mitigar este problema y garantizar la coherencia, identifique a los visitantes con la mayor brevedad posible a lo largo de su recorrido en el sitio web. Identificar a los visitantes pronto cuando acceden al sitio web desde diferentes dispositivos garantiza que se les asigne de forma consistente la misma variación. Este enfoque permite a Kameleoon proporcionar una experiencia de testing fluida y coherente.Kameleoon Web Experimentation
La solución Kameleoon Web Experimentation utiliza principalmente mecanismos de almacenamiento en el cliente para gestionar la asignación de variaciones (bucketing). La asignación de variación de los usuarios se almacena inicialmente en local storage cuando participan en un experimento. Este almacenamiento garantiza que un usuario vea de forma coherente la misma variación en el mismo dispositivo, incluso si el cliente actualiza la asignación de tráfico del experimento.El rebucketing solo ocurre si se solicita explícitamente, ya sea deshabilitando una variación previamente asignada a un usuario o forzando la reasignación del tráfico del experimento.
Experimentación entre dispositivos para feature experimentation
La feature experimentation ocurre en entornos donde los datos se almacenan en memoria durante la duración de una sesión (por defecto, 30 minutos), lo que la convierte en un almacenamiento poco fiable para la asignación de variación con caducidad. Los SDKs resuelven dinámicamente las variaciones en tiempo de ejecución, lo que introduce complejidades únicas para la coherencia entre dispositivos.Rol de los SDKs
Los SDKs son esenciales para la feature experimentation, ya que:- Resuelven dinámicamente las asignaciones de variación en función de la identidad del usuario (
visitorCode, generado aleatoriamente por el SDK, o su propio user ID) cuando se produce la segmentación. - Utilizan la resolución de identidad para recuperar datos previamente recopilados en diferentes dispositivos, garantizando una asignación de variación coherente cuando el usuario cambia de dispositivo.
Retos y consideraciones
- Sin local storage: a diferencia de Kameleoon Web Experimentation, las variaciones no se almacenan de forma persistente; se recalculan en tiempo de ejecución según la identidad del usuario.
- Sesiones anónimas: garantizar la coherencia cuando los usuarios comienzan como anónimos y luego inician sesión puede ser complejo.
- Resolución de identidad entre dispositivos: atribuir con precisión las variaciones del experimento entre dispositivos depende de una resolución de identidad robusta.
Ejemplos de casos de uso
Los siguientes casos de uso representan los escenarios más comunes al implementar la experimentación entre dispositivos. Estos ejemplos destacan retos y soluciones típicos para garantizar experiencias de usuario coherentes y una atribución de variación precisa en varios dispositivos.Caso de uso 1 (mismo dispositivo)
En la primera sesión, un usuario anónimo es segmentado por un experimento y luego inicia sesión. En la segunda sesión, el visitante está autenticado y es segmentado por el mismo experimento.- Web experimentation: la variación se mantiene coherente con la variación asignada durante la sesión inicial porque Kameleoon recupera la variación previamente asignada de local storage.
- Feature experimentation: si ha asociado el ID de visitante anónimo al user ID utilizando datos personalizados, se devolverá la misma variación cuando se llame a
getVariation()con el ID anónimo o el user ID. Sin embargo, se asignará una nueva variación si se llama agetVariation()cuando se utilice el user ID en el método y no exista un mapeo entre el user ID y el ID anónimo.
Caso de uso 2 (mismo dispositivo)
Un usuario inicia sesión y es segmentado por un experimento durante una sesión. En una sesión posterior, el usuario cierra sesión, queda anónimo y es segmentado por el mismo experimento.- Web experimentation: la variación se mantiene coherente con la variación asignada durante la sesión inicial porque Kameleoon recupera la variación previamente asignada de local storage, garantizando la continuidad entre sesiones.
-
Feature experimentation:
- Si, durante la sesión 1, el usuario pasó de un estado anónimo (
anonymous1) a un estado identificado (userId) y el ID anónimo se mapeó al user ID, en la sesión 2 Kameleoon reutilizaráanonymous1para asignar al usuario la misma variación. - No obstante, si no se gestionó ningún estado anónimo en la sesión 1 (llamando al método
getVisitorCode()), se generará un nuevovisitorCode(anonymous2) para la sesión 2, dando lugar a una nueva asignación de variación.
- Si, durante la sesión 1, el usuario pasó de un estado anónimo (
Caso de uso 3 (diferentes dispositivos)
Un usuario anónimo inicia sesión en un dispositivo y es segmentado por un experimento durante la misma sesión. En una sesión posterior en un dispositivo distinto, el usuario comienza de forma anónima, es segmentado por el mismo experimento e inicia sesión.- Web experimentation: en este escenario, el usuario puede recibir dos variaciones diferentes porque Kameleoon no reconoce al usuario en el segundo dispositivo al tomar una decisión de segmentación. La asignación de variación en el segundo dispositivo se produce antes de que el usuario inicie sesión, dando lugar a una falta de sincronización entre dispositivos.
- Feature experimentation: al igual que en web experimentation, el usuario puede recibir dos variaciones diferentes porque Kameleoon no reconoce al usuario en el segundo dispositivo al tomar una decisión de segmentación. En este caso, la asignación de variación en el segundo dispositivo ocurre antes de que el usuario inicie sesión, lo que significa que no hay sincronización entre dispositivos.
Caso de uso 4 (diferentes dispositivos)
Un usuario anónimo inicia sesión en el primer dispositivo y es segmentado por un experimento. Más tarde, en un segundo dispositivo, el usuario inicia sesión antes de ser segmentado por el mismo experimento.- Web experimentation: la variación se mantiene coherente entre dispositivos. Como el usuario inicia sesión antes de que se reevalúe el experimento, el sistema alinea la variación con la asignada en el primer dispositivo.
-
Feature experimentation: Kameleoon determina la asignación de variación basándose en el mapeo del user ID al ID anónimo más reciente generado para el visitante.
- En Dispositivo 1, un visitante anónimo (
anonymous1) se evalúa para el experimento y recibe una variación (var1). Al iniciar sesión, Kameleoon crea un mapeo entreuserIdyanonymous1. - En Dispositivo 2, si la sesión comienza directamente con el
userId(sin llamada agetVisitorCode()que genere un ID anónimo), llamar agetRemoteVisitorData(userId)permite a Kameleoon recuperar el mapeo del visitante anónimo más reciente (anonymous1). En consecuencia, al llamar agetRemoteVisitorData()ygetVariation()para el experimento, el usuario recibirá la variación (var1) asignada aanonymous1. No obstante, si la sesión comienza en estado anónimo, podría asignarse una nueva variación, ya que el bucketing utilizará la clave de bucketing recién generada.
- En Dispositivo 1, un visitante anónimo (
Caso de uso 5 (diferentes dispositivos)
Un usuario anónimo es segmentado por un experimento en un dispositivo e inicia sesión. En un segundo dispositivo, el usuario inicia sesión y es segmentado por el mismo experimento.- Web experimentation: la variación se mantiene coherente entre dispositivos. Una vez que el usuario inicia sesión, el sistema puede atribuir la misma variación al usuario.
- Feature experimentation: la variación se mantiene coherente solo si se llama a
getRemoteVisitorData(). Sin esta llamada, el sistema puede no asociar las dos sesiones, lo que podría dar lugar a una atribución de variación diferente entre dispositivos.
Reconciliación de historial entre dispositivos para la segmentación
Kameleoon descarga automáticamente una lista de visitas de otros dispositivos y almacena esta información en el almacenamiento del dispositivo actual cuando se inicia una nueva sesión y se establece el dato personalizado con un valor. No obstante, si el dato personalizado está vacío, no se realizará la reconciliación al inicio de la sesión. La reconciliación se dispara solo cuando se pasa el dato personalizado y la segmentación se reevalúa para todos los experimentos y personalizaciones activos. Esto ocurre normalmente cuando un usuario inicia sesión en su sitio y proporciona su user ID, correo electrónico u otro identificador único. Es importante señalar que, una vez proporcionado el dato personalizado, Kameleoon puede recuperarlo para todas las visitas posteriores en el mismo dispositivo, incluso si el usuario aún no ha iniciado sesión. La reconciliación se produce al comienzo de cada visita posterior, garantizando capacidades coherentes de tracking y segmentación.Para mantener un historial de datos unificado coherente para un visitante, se recomienda proporcionar el valor del dato personalizado lo antes posible durante su recorrido en su sitio web. Kameleoon no puede recuperar este historial hasta que se configura el dato personalizado.
Datos afectados por la reconciliación de historial entre dispositivos
La funcionalidad de reconciliación de historial añade la lista de todas las visitas anteriores que aún no se conocen en el dispositivo actual. Esto incluye información típica como- Número de visitas y páginas vistas
- Duración de la sesión
- Canales de adquisición y referrers
- Datos personalizados (nota: los datos personalizados proporcionados en otras sesiones con ámbito de visitante se fusionarán en la sesión actual).
Pueden estar disponibles un máximo de 25 visitas para la reconciliación entre dispositivos, con una política de retención de 3 meses aplicable a los datos recuperables.
Reconciliación de historial entre dispositivos para analítica
La reconciliación de historial afecta solo a la vista de visitor en el reporting de Kameleoon; la vista de visit no se ve afectada. En el modelo de visitor, en lugar de agrupar varias sesiones en un único registro de visitante utilizando el valor estándar del visitorCode de Kameleoon (lo cual solo es posible para visitantes que regresan en el mismo dispositivo), el sistema las fusiona en función del valor del dato personalizado. Si el dato personalizado está vacío o no se proporciona, se utiliza en su lugar el valor del visitorCode. Este enfoque garantiza que las métricas de visitante único sigan siendo precisas, incluso si el usuario aún no está identificado en el sistema del cliente (aunque esta lógica se aplica únicamente a los visitantes que regresan en el mismo dispositivo). Como resultado, la vista de visitor muestra correctamente las métricas en todos los dispositivos para los usuarios identificados. Por ejemplo, un único cliente con tres sesiones en dos dispositivos distintos se contabiliza como un único visitor. Sin la reconciliación de historial, el mismo cliente se contabiliza como dos visitantes distintos (uno por dispositivo).En algunos casos, un usuario puede experimentar varias variaciones de un experimento debido a un cambio en el ID de bucketing, ya sea en diferentes sesiones o en la misma sesión. El reporting y la analítica consideran tales casos de la siguiente manera:
-
Vista de visit En la vista de visit, Kameleoon cuenta cada sesión por separado para la variación con la que el usuario interactuó.
-
Ejemplo:
-
Si un usuario está expuesto a la Variación A durante una sesión y a la Variación B durante otra, los conteos serían:
- Variación A: 1 sesión
- Variación B: 1 sesión
-
Si un usuario está expuesto a la Variación A durante una sesión y a la Variación B durante otra, los conteos serían:
-
Ejemplo:
- Vista de visitor En la vista de visitor, Kameleoon agrupa los datos por códigos de visitante únicos (o ID de mapeo), contando a cada visitante solo una vez por variación.
-
Ejemplo:
-
Si un usuario está expuesto a la Variación A en una sesión y a la Variación B en otra, los conteos serían:
- Variación A: 1 visitor
- Variación B: 1 visitor
-
Si un usuario está expuesto a la Variación A en una sesión y a la Variación B en otra, los conteos serían:
- Sesión única con varias variaciones Cuando un usuario interactúa con varias variaciones en una sesión, Kameleoon solo cuenta la última variación con la que interactuó.