Saltar al contenido principal
Configurar un objetivo de ingresos en Kameleoon es sencillo, pero requiere pasos cuidadosos para garantizar que todo funcione correctamente. Cada sitio web tiene su propia estructura, flujo de compra, configuración de seguimiento y casos especiales, lo que significa que no existe una solución única para todos. Sin una configuración adecuada, corre el riesgo de perder datos clave, contar transacciones por duplicado o malinterpretar el rendimiento. Para ayudarle a evitar estos problemas y garantizar que el seguimiento de los ingresos sea preciso y significativo, este artículo reúne un conjunto de directrices prácticas. Las recomendaciones están diseñadas para cubrir los desafíos más comunes a los que se enfrentan los usuarios de Kameleoon, al tiempo que ofrecen soluciones flexibles que puede adaptar a su configuración.

Método de implementación

Kameleoon admite múltiples métodos de integración para realizar un seguimiento eficaz de los objetivos de ingresos, según su tipo de experimentación y configuración técnica. A continuación se presentan los enfoques recomendados tanto para Web Experimentation (WE) como para Feature Experimentation (FE), incluida la compatibilidad con conversiones sin conexión a través de la API de Datos de Kameleoon.

Web Experimentation

  • Uso de un gestor de etiquetas: Debe implementar la kameleoonQueue, que garantiza que los eventos de conversión se activen en sincronía con su plataforma de analítica, manteniendo la coherencia de los datos entre las herramientas y mejorando el rendimiento de su sitio. Para una guía de implementación detallada en Google Tag Manager, consulte esta guía completa y los pasos de configuración a continuación para configurar el objetivo de ingresos.
  • Uso del script personalizado global: Si kameleoonQueue no es compatible con su configuración, puede implementar manualmente el objetivo de ingresos utilizando la API de Activación dentro del script personalizado global en la aplicación Kameleoon.

Feature Experimentation

Si utiliza uno de los SDK de Kameleoon, puede realizar el seguimiento de los objetivos de ingresos utilizando el método trackConversion(). Consulte los pasos a continuación para configurar correctamente el objetivo de ingresos según su entorno de SDK.

API de Datos

(Aplicable tanto para WE como para FE) Para las conversiones sin conexión, como las compras realizadas por teléfono o en tienda, puede utilizar la API de Datos de Kameleoon para procesar las conversiones de objetivos sin conexión. Este método es el más adecuado cuando el evento de conversión se produce fuera del recorrido en línea del usuario, pero aún debe ser objeto de seguimiento y atribución dentro de sus experimentos de Kameleoon.

Configuración

Alcance

Antes de configurar su objetivo de ingresos, compruebe si la confirmación de la transacción se produce siempre en una única página coherente. En algunas configuraciones, especialmente las que implican aplicaciones móviles, pagos integrados o proveedores de pago externos, la confirmación puede aparecer en una web-view o en un dominio independiente. Asegúrese de que Kameleoon esté correctamente instalado en todas las páginas o vistas relevantes en las que pueda aparecer la confirmación. Esta configuración garantiza que las conversiones se realicen de forma fiable y que no se pierda ningún dato de ingresos. Si un usuario puede completar una transacción a través de varias URL (por ejemplo, debido a variaciones en los parámetros de la cadena de consulta o a diferentes flujos de pago), añada todas las URL relevantes en la configuración de Kameleoon para que se realice el seguimiento. De esta manera, no se perderá ninguna conversión.

Objetivo de transacción (acceso a la página de confirmación)

Es una buena práctica establecer un objetivo para acceder a la página de confirmación, sin la cantidad de ingresos. Este objetivo podría ayudar a realizar un seguimiento de las conversiones que faltan en el objetivo de ingresos. Las conversiones perdidas suelen deberse a retrasos en la carga del importe de los ingresos en la página (ya sea en el DOM, el dataLayer u otro objeto similar). Para configurar un objetivo de transacción en WE, puede elegir entre dos tipos de objetivos:
  • Acceso a una página: Debe establecer la URL en la configuración del objetivo. Según la estructura de la URL, puede utilizar La URL contiene o Coincide con la expresión regular para tener en cuenta las variaciones en la URL (diferentes rutas o parámetros de consulta, por ejemplo). Evite utilizar Corresponde exactamente a, ya que la URL probablemente incluirá parámetros que pueden variar.
Cuando se utiliza el tipo de objetivo Acceso a una página, si los visitantes pueden recargar la confirmación sin ser redirigidos (a la página de inicio, por ejemplo), el objetivo puede activarse de nuevo. Si esta es su configuración, lo mejor es basarse en las métricas de visitas convertidas en lugar de todas las conversiones en la página de Resultados para evitar el sobreconteo.
  • Objetivo personalizado: Este tipo de objetivo es útil para garantizar que el objetivo no se vuelva a convertir si se recarga la página de confirmación. Puede implementar un objetivo personalizado en el script personalizado global y utilizar una comprobación de sessionStorage para evitar conversiones duplicadas (consulte el ejemplo de código a continuación). Se recomienda este enfoque porque puede utilizar el mismo código para activar el objetivo de ingresos, mejorando el rendimiento al eliminar la necesidad de un objetivo nativo Acceso a una página.
if (
   document.location.href.includes("/confirmation/") &&
   !window.sessionStorage.getItem("kameleoonGoalConverted")
 ) {
   // Set an item in sessionStorage to prevent a second conversion if the page is reloaded
   window.sessionStorage.setItem("kameleoonGoalConverted", "true");
   // Convert the transaction goal, replace the ID below
   Kameleoon.API.Goals.processConversion(355733);
 } else if (!document.location.href.includes("confirmation")) {
   // Remove the item from sessionStorage to allow conversion for a new transaction
   window.sessionStorage.removeItem("kameleoonGoalConverted");
 }

Formato de los ingresos

Asegúrese de que el importe de los ingresos tenga el formato adecuado y se valide antes de procesarlo, incluyendo:
  • Sustituir las comas (,) por puntos (.) para mantener la coherencia decimal.
  • Eliminar los espacios (pueden estar presentes en importes superiores a 1000).
  • Eliminar los símbolos de moneda (como $).
  • Convertir la cadena limpia en un tipo de dato numérico para realizar cálculos precisos.
Por ejemplo:
let revenue = parseFloat(revenue.replace(",", ".").replace(/user-manual/[^0-9.]/g, "").replace(/user-manual/\s+/g, ""));

Monedas

Un sitio web puede admitir varias monedas. Asegúrese de comparar valores de conversión expresados en la misma moneda para evitar resultados engañosos o análisis incorrectos. Verifique que la moneda utilizada en su seguimiento e informes sea coherente en todas las conversiones. Puede activar un objetivo para cada moneda y/o utilizar el servicio web de conversión de Kameleoon. El punto final se proporciona a continuación: asegúrese de que todos los argumentos pasados sean válidos.
<https://customers.kameleoon.com/kameleoon/currencies/convert?inputCurr=${inputCurr}&outputCurr=${outputCurr}&amount=${revenue}>;
Nunca convierta el mismo objetivo utilizando importes en monedas diferentes. Debe crear un objetivo separado para cada moneda o unificarlas configurando un objetivo global utilizando el punto final del servicio web anterior. Este servicio convertirá todos los importes en una sola moneda de su elección.
Consulte el ejemplo de código completo al final de este artículo para ver una implementación detallada del servicio web de conversión de moneda.

ID de pedido

Debe añadir un dato personalizado para almacenar el ID de pedido (número de pedido) y utilizarlo como metadatos para el objetivo de ingresos. Este dato personalizado vinculará cada conversión al ID de pedido y le ayudará a relacionar con precisión las transacciones con su herramienta de analítica e investigar cualquier posible discrepancia de datos. Para configurar el dato personalizado, consulte la captura de pantalla a continuación. Ajuste el formato según si el ID de pedido en su sitio es un número o una cadena.
A continuación, asocie el dato personalizado OrderID a su objetivo de ingresos.
Por último, consulte el ejemplo de código completo a continuación, que establece el valor del dato personalizado.

Ejemplo completo

Este ejemplo es para WE y puede utilizarse como referencia para la implementación en FE. Ahora que ha revisado cada elemento clave —alcance, lógica de transacción, formato de ingresos, gestión de moneda y seguimiento del ID de pedido— está listo para unirlo todo. A continuación se muestra un ejemplo completo de cómo implementar el objetivo de ingresos utilizando el script personalizado global en Kameleoon.
 // Amount conversion using Kameleoon's currency conversion web service
 const convertCurrency = async (revenue, inputCurr, outputCurr) => {
     if (revenue == 0) return 0;
     const response = await fetch(
         `https://customers.kameleoon.com/kameleoon/currencies/convert?inputCurr=${inputCurr}&outputCurr=${outputCurr}&amount=${revenue}`,
         {
             method: 'GET',
             headers: {
                 'Content-Type': 'text/plain',
             },
         }
     );
     return response.json();
 };
 

 // Logic to:
 // - Convert the transaction goal 
 // - Convert a goal for each currency
 // - Convert the global revenue goal
 // - Set the orderID custom data
 // repalce all goal IDs in the code
 if (document.location.href.includes("/confirmation/") && !window.sessionStorage.getItem("kameleoonGoalConverted")) {
     Kameleoon.API.Goals.processConversion(355733); // Transaction goal
     sessionStorage.setItem("kameleoonGoalConverted", "true");
 

     let revenueLayer;
     Kameleoon.API.Core.runWhenConditionTrue(() => {
         revenueLayer = window.dataLayer?.find(layer => layer.ecommerce?.purchase?.actionField?.revenue);
         return revenueLayer;
     }, () => {
         let revenue = parseFloat(revenueLayer.ecommerce.purchase.actionField.revenue);
         const inputCurr = revenueLayer.ecommerce.purchase.actionField.inputCurrency;
         const orderID = revenueLayer.ecommerce.purchase.actionField.orderID;
 

         if (!isNaN(revenue)) {
             revenue = revenue.toString().replace(",", ".").replace(/user-manual/[^0-9.]/g, "").replace(/user-manual/\s+/g, "");
             // Currency-specific revenue goals
             switch (inputCurr) {
                 case 'GBP':
                     Kameleoon.API.Goals.processConversion(355641, revenue);
                     break;
                 case 'USD':
                     Kameleoon.API.Goals.processConversion(355643, revenue);
                     break;
                 case 'EUR':
                     Kameleoon.API.Goals.processConversion(355642, revenue);
                     break;
                 default:
                     Kameleoon.API.Goals.processConversion(355649); // Other currencies (no revenue passed)
             }
             // Global revenue goal in output currency (you can use ISO 4217 codes for each country)
             const outputCurr = "USD";
             convertCurrency(revenue, inputCurr, outputCurr).then((convertedRevenue) => {
                 // The custom data must be set before the goal is converted
                 Kameleoon.API.Data.setCustomData("orderID", orderID);
                 Kameleoon.API.Goals.processConversion(353518, convertedRevenue);
             }).catch((error) => {
// Create a Custom Data to store potential errors for debugging
                 Kameleoon.API.Data.setCustomData("[KAM] - currency webservice error", `error: ${error.toString()}; revenue: ${revenue}; inputCurr ${inputCurr}; outputCurr ${outputCurr}`);
                 console.error("Error in currency conversion:", error);
             });
         }
     });
 } else if (!document.location.href.includes("/confirmation/")) {
     sessionStorage.removeItem("kameleoonGoalConverted");
 } 
A continuación se muestra una captura de pantalla de la estructura del dataLayer en la página de confirmación como referencia.
Configurar un objetivo de ingresos fiable en Kameleoon requiere una alineación cuidadosa con la estructura de su sitio, la configuración del dataLayer y los formatos de moneda. Siguiendo las directrices anteriores, ya sea a través de un gestor de etiquetas o de un script personalizado global, puede garantizar un seguimiento preciso, reducir las discrepancias con sus herramientas de analítica y obtener información más significativa de sus experimentos. No olvide realizar pruebas exhaustivas y validar su implementación para mantener la integridad de los datos.