Saltar al contenido principal
La plataforma Kameleoon ofrece una Activation API basada en JavaScript para recuperar datos (como la geolocalización del visitante) y modificar el comportamiento del motor (como la asignación manual de variaciones). Sin embargo, los desarrolladores deben asegurarse de que el motor de Kameleoon esté cargado antes de acceder a la Activation API. Este requisito complica la incrustación directa de código JavaScript en archivos HTML. La Kameleoon Command Queue permite la ejecución diferida de comandos, de forma similar a Google Analytics. En lugar de llamar a la Activation API a través del objeto Kameleoon.API, pase los comandos y funciones al objeto kameleoonQueue. El motor ejecuta estos comandos inmediatamente si ya está cargado; en caso contrario, los pone en cola para ejecutarlos cuando esté listo.

Uso y descripción del objeto Command Queue

Para usar el objeto kameleoonQueue, ejecute primero el siguiente código de inicialización. El tag de instalación de Kameleoon suele incluir este código en la parte superior del archivo HTML, después de la etiqueta de apertura <head>. En ese caso, no se requiere ninguna acción adicional. No obstante, si utiliza una configuración personalizada (por ejemplo, cargando Kameleoon mediante un Tag Manager), inicialice la cola antes de añadir código personalizado.
window.kameleoonQueue = window.kameleoonQueue || [];
Mientras se carga el archivo de la aplicación de Kameleoon, kameleoonQueue actúa como un array de JavaScript estándar que acepta comandos a través del método push(). Tras la carga, el motor procesa el array y ejecuta los comandos en orden. A continuación, el motor reemplaza el array por un objeto personalizado cuyo método push() ejecuta los comandos de inmediato.

Sintaxis

Pase al método push() un array o una función anónima.
kameleoonQueue.push(['Kameleoon.API.Events.trigger', 'myCustomEvent']);
kameleoonQueue.push(['Events.trigger', 'anotherEvent']);
Cuando se pasa un array, el primer objeto representa el nombre del método de la API de Kameleoon (como cadena) y los objetos siguientes representan los argumentos del método.
Utilice el nombre completo del método (por ejemplo, Kameleoon.API.Core.enableLegalConsent) o el nombre corto (por ejemplo, Core.enableLegalConsent). Los argumentos adicionales son opcionales.
Pase una función anónima directamente como argumento. Kameleoon utiliza la función como callback cuando esté listo para procesarla.
kameleoonQueue.push(function() {
  const experimentID = 1;
  const variationID = 3;
  Kameleoon.API.Experiments.assignVariation(experimentID, variationID);
});
La command queue también funciona dentro del código HTML, como se muestra en el ejemplo siguiente. Inicialice kameleoonQueue antes de que el navegador encuentre el elemento HTML de destino para garantizar el seguimiento del clic, incluso si el motor aún no se ha cargado.
<button onclick="kameleoonQueue.push(['Goals.processConversion', 42]);">
  Action Button with Kameleoon goalID = 42
</button>
De forma predeterminada, Kameleoon ejecuta los comandos en cola cuando la configuración (campañas, objetivos, segmentos, etc.) está lista y después de que se ejecute el script personalizado global.Use el argumento level: "IMMEDIATE" al añadir un comando para ejecutarlo inmediatamente, sin esperar al procesamiento de la configuración. Esto resulta útil para código que debe ejecutarse antes de que Kameleoon instancie las funciones.A continuación se muestra un ejemplo de cómo usar el argumento level: "IMMEDIATE":
function callback = () => {
 {... cualquier código que deba ejecutarse antes de que Kameleoon dispare código de campaña}   
};
window.kameleoonQueue.push({
	level: "IMMEDIATE",
	command: callback
});
En este ejemplo, la función callback se ejecuta inmediatamente, independientemente del procesamiento de la configuración.Use el argumento level: "IMMEDIATE" para sobrescribir funciones internas de Kameleoon. La redefinición estándar de funciones falla si el motor se carga y ejecuta primero la versión original. El nivel IMMEDIATE garantiza que la función personalizada se ejecute antes de que el motor cargue su propia versión.