Kameleoon Command Queue
La forma más eficiente de interactuar con la API de Kameleoon —ya sea para convertir objetivos, establecer datos personalizados o desencadenar eventos— es aprovechar los disparadores existentes en su Tag Manager (por ejemplo, Google Tag Manager) junto con la Kameleoon Command Queue. Este debería ser su enfoque principal al añadir JavaScript a Kameleoon. En lugar de escribir extensos códigos JavaScript directamente en Kameleoon, puede lograr los mismos resultados con tan solo dos líneas de código dentro de su Tag Manager.Ejemplos
- Convertir un objetivo de ingresos En su Tag Manager, cree un disparador en la página de confirmación para capturar los ingresos y añada el siguiente código:kameleoonQueue, consulte las recomendaciones específicas para cada script disponible que se detallan a continuación.
Script Global y scripts de variación
Optimizar la ejecución de JavaScript con la Activation API
Utilice la Activation API de Kameleoon para aplicar las variaciones en el momento adecuado. Este enfoque ayuda a prevenir problemas de rendimiento y garantiza una experiencia fluida para los visitantes. A continuación se muestran algunas funciones esenciales de la Activation API que pueden utilizarse para mejorar la experiencia del visitante:runWhenConditionTrue: Ejecuta el código cuando se cumple una condición específica. De forma predeterminada, se ejecuta cada 200 milisegundos. Sin embargo, tenga cuidado con las condiciones que nunca puedan resolverse, ya que esto puede provocar bucles innecesarios. Tenga en cuenta que el bucle seguirá ejecutándose hasta que la función devuelva explícitamentetrue. Devolverfalseoundefinedno detendrá el bucle ni desencadenará el callback.
true en ninguna página que no sea la de producto, lo que provocará que el bucle se ejecute indefinidamente:
Es preferible obtener información a partir de la URL o de las cookies/localStorage en lugar de depender de
runWhenConditionTrue para esperar al dataLayer u otros objetos de carga tardía, como cuando se intenta obtener información sobre el tipo de página. Este enfoque garantiza una ejecución más rápida y un mejor rendimiento.runWhenElementPresent: Este método garantiza que su código se ejecute solo cuando un elemento concreto está presente en el DOM, evitando retrasos innecesarios causados por elementos que se cargan de forma dinámica.
Consideraciones clave
- Utiliza Mutation Observers de forma predeterminada (recomendado por su rendimiento).
- Si los Mutation Observers están deshabilitados en su sitio, puede especificar un intervalo de polling como tercer argumento de este método.
- Si el elemento se inserta dinámicamente en el DOM, establezca
isDynamicElemententruecomo cuarto argumento de este método:
Acote el ámbito de su código a páginas específicas
Para optimizar el rendimiento, asegúrese de que su código se ejecute solo en las páginas relevantes. Esto es especialmente importante al usar métodos basados en bucles comorunWhenConditionTrue y runWhenElementPresent, ya que ejecutar estos métodos en todo el sitio puede provocar ejecuciones innecesarias e impactar en el rendimiento. Por ejemplo, si está esperando información de ingresos en el dataLayer, envuelva su código en una condición que compruebe si la URL corresponde a la página de confirmación. Este enfoque garantiza que el código solo se ejecute en la página de confirmación, en lugar de activarse en todo el sitio.
Ejemplo: Apuntar a una página de confirmación específica antes de ejecutar un bucle
3. Prefiera CSS para los cambios visuales en lugar de utilizar JavaScript, especialmente cuando trabaje con variaciones en los scripts
Usar CSS en lugar de JavaScript proporciona una renderización más rápida y fluida. CSS puede utilizarse para ocultar o modificar elementos, intercambiar bloques y cambiar estilos o textos.Gestión de aplicaciones de página única (SPAs)
Si un experimento se ejecuta en una aplicación de página única (SPA) o en una página que se actualiza dinámicamente, se requieren pasos de implementación específicos. A diferencia de los sitios web tradicionales, las SPAs no recargan páginas enteras, por lo que Kameleoon necesita identificar cuándo se producen las actualizaciones de contenido. Consulte la guía sobre la configuración de un experimento en una aplicación de página única para conocer las mejores prácticas.Segmentos / Disparadores
La primera mejor práctica es basar la segmentación en datos que estén disponibles inmediatamente cuando se carga la página. Esto incluye información como la URL de la página, el tipo de navegador, el tipo de dispositivo y cualquier dato almacenado en cookies o local storage. Si su segmentación requiere datos que no son accesibles de forma inmediata, siga estas directrices para garantizar una ejecución eficiente y evitar retrasos innecesarios.1. Condición JavaScript personalizada
Esta condición le permite utilizar JavaScript personalizado para segmentar a los visitantes. Hay dos opciones principales disponibles: ####- a. Comprobación inmediata de la condición Este script se ejecuta cada 75 milisegundos antes de que el DOM esté completamente cargado, y después cada 250 milisegundos. De forma predeterminada, devuelveundefined, lo que provoca que el script siga ejecutándose en bucle hasta que devuelva explícitamente true (para incluir al visitante) o false (para excluirlo). Asegúrese siempre de que su condición acabe resolviéndose en true o false para evitar bucles innecesarios. Aquí tiene un ejemplo optimizado:
- Si desea apuntar a un elemento específico, utilice en su lugar la condición nativa “Elemento en la página”.
- Si desea esperar información en la página, utilice la opción “comprobar condición inmediatamente” anterior.
2. Evento personalizado
El uso de eventos personalizados es una forma eficaz y pasiva de segmentar a los visitantes. En lugar de monitorizar continuamente condiciones, este método escucha un evento personalizado específico que usted defina y activa la segmentación cuando ese evento se produce. Este enfoque resulta especialmente útil en dos escenarios clave:Escenario 1: Cuando la lógica de segmentación es compleja
Es preferible evitar incrustar toda la lógica directamente en una condición JavaScript dentro de la segmentación. En su lugar, puede definir un evento personalizado en el Script Global. Por ejemplo, si desea segmentar a los visitantes en la página del carrito que tengan al menos tres productos en su carrito y un importe total superior a 30 $, desencadenaría un evento en el Script Global una vez se cumplan estas condiciones, en lugar de escribir toda la lógica dentro de la condición de JavaScript del segmento.Escenario 2: Cuando varios segmentos comparten una lógica similar
Si varios segmentos requieren las mismas variaciones o ligeras variaciones de la misma condición, utilizar un evento personalizado evita código redundante y mejora la mantenibilidad. Ejemplo: Necesita segmentar a los visitantes en función de diferentes importes del carrito. En lugar de duplicar la lógica en varios segmentos, defina un único script en el Script Global y desencadene diferentes eventos personalizados para cada segmento:Datos personalizados
Los datos personalizados, al igual que los eventos personalizados, ayudan a evitar código duplicado al permitirle almacenar y reutilizar valores. Puede definir datos personalizados en el Script Global o en otros scripts, y luego utilizarlos dentro de los segmentos. Sin embargo, los datos personalizados se diferencian de los eventos personalizados en dos aspectos clave:a. Por las opciones de ámbito: “Página”, “Visita” o “Visitante”
A diferencia de los eventos personalizados, que solo se aplican a la página actual, los datos personalizados pueden persistir a lo largo de varias páginas y sesiones:- Ámbito de visita: Mantiene el valor durante toda la sesión del visitante.
- Ámbito de visitante: Almacena el valor hasta 365 días, en función de la política de cookies.