Saltar al contenido principal
Además de los métodos y estructuras de datos que ofrece la Activation API, el motor JavaScript dispara eventos DOM personalizados. Estos eventos son excelentes puntos de entrada para personalizar el comportamiento de Kameleoon y ampliar la plataforma. Por ejemplo, escuche el evento Kameleoon::ExperimentTriggered para recibir una notificación cuando se dispare un experimento. La siguiente lista detalla los eventos implementados actualmente. Si la Activation API actual no incluye algún evento que necesite, contacte con el soporte técnico para solicitar una mejora. Se pueden añadir nuevos eventos para adaptarse a requisitos específicos.
Como solo hay un hilo de ejecución en un entorno JavaScript, los eventos disparados en un bloque continuo de ejecución sincrónica se reciben simultáneamente. Los listeners de callback se ejecutan después de que finalice el bloque completo de código de Kameleoon, en lugar de en el momento exacto en que el código dispara el evento. Por ejemplo, Kameleoon::Loaded y Kameleoon::Started pueden recibirse simultáneamente si la carga del almacenamiento local se implementa de forma sincrónica (el caso habitual, salvo en una configuración entre dominios cuando la URL actual no está en el dominio principal). Kameleoon::Started y Kameleoon::ExperimentTriggered también son simultáneos para experimentos cuya segmentación puede evaluarse de inmediato.

Lista de eventos

Kameleoon::Loaded

window.addEventListener('Kameleoon::Loaded', function (event) {
  var loadTime = event.detail.loadTime;
  var timeout = event.detail.timeout;
});
Este evento se dispara cuando el archivo de la aplicación de Kameleoon termina de cargarse y el código del motor está disponible para su ejecución en el navegador. El evento se dispara al inicio del proceso de configuración. Los eventos posteriores (detallados a continuación) se disparan a medida que la inicialización alcanza pasos específicos.
Datos disponibles en el evento
NombreTipoDescripción
loadTimeNumberHora en la que se completó la carga del archivo de la aplicación de Kameleoon (formato UTC, ms desde el 1 de enero de 1970).
timeoutBooleantrue si se produjo un timeout durante la carga (asincrónica) del archivo de la aplicación de Kameleoon.

Kameleoon::Aborted

window.addEventListener('Kameleoon::Aborted', function (event) {
  var reason = event.detail.reason;
});
Este evento se dispara cuando el motor de Kameleoon detiene su ejecución en la página actual. Este evento indica que Kameleoon está inactivo para el visitante y la página actuales. El evento proporciona el motivo de la interrupción:
  • BROWSER: el navegador no es compatible.
  • PRERENDER: se trata de una solicitud de prerender (por ejemplo, una optimización de Chrome) y no de una página web vista por una persona. Kameleoon no se ejecuta para evitar estadísticas falsas.
  • STORAGE: no se cumplen los prerrequisitos técnicos para el funcionamiento normal, como las escrituras en Local Storage.
  • TIMEOUT: el tiempo de carga del archivo superó el límite permitido y la configuración exige la interrupción.
  • DISABLED: Kameleoon fue desactivado desde la aplicación de back-office. Todas las cargas front-end de Kameleoon se interrumpen inmediatamente cuando este estado está activo.
  • PARAMETER: un parámetro especial en la URL (por ejemplo, kameleoonDisabled=true) hace que el motor detenga la ejecución para depuración o verificación.
  • SCRIPT: un script de interrupción personalizado devolvió true para la carga actual.
Datos disponibles en el evento
NombreTipoDescripción
reasonStringRazón o causa de la interrupción.

Kameleoon::Started

window.addEventListener('Kameleoon::Started', function (event) {
  var newVisitor = event.detail.newVisitorCode;
});
Este evento se dispara cuando el motor de Kameleoon completa su inicialización principal. En esta fase, el motor ha cargado los datos del almacenamiento local y ha ejecutado el script global, el código de adquisición de datos personalizados y los comandos diferidos a través de la Command Queue. Tras este evento, comienzan los bucles de activación y seguimiento de Kameleoon. Los experimentos y personalizaciones se disparan (si se cumplen las condiciones de segmentación) y comienza la recopilación de datos. Los métodos de la Activation API están disponibles. Kameleoon.API es legible, aunque algunos datos (como los datos de geolocalización obtenidos mediante llamadas asincrónicas posteriores) pueden no estar disponibles. Los datos del evento indican si la inicialización generó un nuevo visitorCode.
Datos disponibles en el evento
NombreTipoDescripción
newVisitorCodeBooleantrue si se ha generado un nuevo visitorCode (aleatorio) para este visitante (visitante desconocido / nuevo para Kameleoon); en caso contrario, false.

Kameleoon::DataGathered

window.addEventListener('Kameleoon::DataGathered', function (event) {
  // En este punto, está garantizado que el objeto estará presente y será correcto.
  var currentLocation = Kameleoon.API.CurrentVisit.geolocation;
});
Este evento se dispara cuando el motor de Kameleoon completa la recopilación de datos. Como la recopilación suele implicar llamadas remotas o métodos asincrónicos, este evento se dispara una vez finalizados esos procesos. La Activation API es totalmente utilizable una vez que se dispara este evento. Todos los campos de la API contienen valores correctos. Kameleoon a menudo realiza llamadas remotas solo al inicio de una visita, por lo que este evento se dispara más tarde en la primera vista de página y casi de inmediato en las vistas posteriores. Aunque leer los datos de la Activation API de forma temprana puede funcionar en las vistas posteriores, no se garantiza la presencia ni la exactitud de los datos. Se recomienda encarecidamente escuchar este evento antes de realizar operaciones de lectura (especialmente para datos de visita como la geolocalización o el tiempo meteorológico).

Kameleoon::RemoteSynchronizationPerformed

window.addEventListener('Kameleoon::RemoteSynchronizationPerformed', function (event) {
  var allVisits = event.detail.visits;
});
Este evento se dispara cuando el motor de Kameleoon completa una Server Synchronization Call (SSC) iniciada por el método Kameleoon.API.Data.performRemoteSynchronization(). Esto ocurre durante la reconciliación del historial entre dispositivos, la prevención de seguimiento inteligente (Intelligent Tracking Prevention) o las actualizaciones de datos personalizados. Lea más sobre las SSC aquí.
Datos disponibles en el evento
NombreTipoDescripción
visitsArrayLista de objetos Visit correspondientes a este visitante, devueltos por la Data API.
currentVisitOnlyBooleantrue si se llamó a Kameleoon.API.Data.performRemoteSynchronization() con el argumento currentVisitOnly establecido en true; en caso contrario, false.

Kameleoon::LegalConsentUpdated

window.addEventListener('Kameleoon::LegalConsentUpdated', function (event) {
  var legalConsentUpdate = event.detail.legalConsentUpdate;
});
Este evento se dispara cada vez que cambia el estado del consentimiento legal para el visitante actual. Los cambios incluyen la aceptación (Kameleoon.API.Core.enableLegalConsent()) o el rechazo (Kameleoon.API.Core.disableLegalConsent()) de los módulos AB Testing o Personalization. Acceda al estado actualizado a través de Kameleoon.API.Visitor.experimentLegalConsent o Kameleoon.API.Visitor.personalizationLegalConsent; el objeto del evento contiene los detalles de la actualización.
Datos disponibles en el evento
NombreTipoDescripción
legalConsentUpdateObjectActualización que se acaba de procesar. Sigue el formato {“AB_TESTING”: true|false, “PERSONALIZATION”: true|false}. Por ejemplo, podría ser igual a {“AB_TESTING”: false} si se acaba de registrar un rechazo únicamente para el módulo AB Testing, o a {“AB_TESTING”: true, “PERSONALIZATION”: true} si se produjo una aceptación para ambos módulos.

Kameleoon::ExperimentTriggered

window.addEventListener('Kameleoon::ExperimentTriggered', function (event) {
  var experiment = event.detail.experiment;
  var experimentId = experiment.id;
});
Este evento se dispara cuando un experimento se dispara (es decir, cuando el visitante coincide con el segmento objetivo). Opciones adicionales, como la exclusión de tráfico o el capping, pueden permitir que un visitante dispare un experimento sin activarlo (ver el siguiente evento). Si el experimento se dispara en varias páginas, el evento se lanza cada vez.
Datos disponibles en el evento
NombreTipoDescripción
experimentObjectObjeto Experiment

Kameleoon::ExperimentActivated

window.addEventListener('Kameleoon::ExperimentActivated', function (event) {
  var experiment = event.detail.experiment;
  var experimentId = experiment.id;
  var associatedVariationId = experiment.associatedVariation.id;
});
Este evento se dispara cuando un experimento se activa (es decir, cuando el visitante cuenta para los resultados del experimento). La activación ocurre cuando un experimento se dispara y se cumplen todas las condiciones de exposición. Si la activación ocurre en varias páginas, el evento se lanza cada vez.
Datos disponibles en el evento
NombreTipoDescripción
experimentObjectObjeto Experiment

Kameleoon::PersonalizationTriggered

window.addEventListener('Kameleoon::PersonalizationTriggered', function (event) {
  var personalization = event.detail.personalization;
  var personalizationId = personalization.id;
});
Este evento se dispara cuando una personalización se dispara (es decir, cuando el visitante coincide con el segmento objetivo). Opciones adicionales de exposición, como el capping, pueden impedir la acción de personalización (por ejemplo, la visualización de un banner o pop-in). En este escenario, la personalización no se activa (ver el siguiente evento). Si la personalización se dispara en varias páginas, el evento se lanza cada vez.
Datos disponibles en el evento
NombreTipoDescripción
personalizationObjectObjeto Personalization

Kameleoon::PersonalizationActivated

window.addEventListener('Kameleoon::PersonalizationActivated', function (event) {
  var personalization = event.detail.personalization;
  var personalizationId = personalization.id;
  var associatedVariationId = personalization.associatedVariation.id;
});
Este evento se dispara cuando una personalización se activa (es decir, cuando la personalización se muestra en la página). La activación ocurre cuando una personalización se dispara y se cumplen todas las condiciones de exposición. Si la activación ocurre en varias páginas, el evento se lanza cada vez.
Datos disponibles en el evento
NombreTipoDescripción
personalizationObjectObjeto Personalization

Kameleoon::CustomDataSet

window.addEventListener('Kameleoon::CustomDataSet', function (event) {
  var customDataName = event.detail.name;
  var customDataValue = event.detail.value;
});
Este evento se dispara cada vez que se establece un dato personalizado (custom data), es decir, cuando se proporciona su valor. Este evento se dispara independientemente del método de adquisición (integración con Data Layer, Activation API, Data API o código JS personalizado).
Datos disponibles en el evento
NombreTipoDescripción
nameStringNombre del dato personalizado.
valueAnyValor del dato personalizado. Su tipo depende del tipo definido para el dato personalizado.

Kameleoon::ConversionTriggered

window.addEventListener('Kameleoon::ConversionTriggered', function (event) {
  var goal = event.detail.goal;
});
Este evento se dispara cuando una conversión se dispara (es decir, cuando se alcanza un objetivo).
Datos disponibles en el evento
NombreTipoDescripción
goalObjectObjeto Goal

Kameleoon::SegmentTriggered

window.addEventListener('Kameleoon::SegmentTriggered', function (event) {
  var segment = event.detail.segment;
});
Este evento se dispara cuando un segmento activo se dispara (es decir, cuando un visitante cumple todas las condiciones de segmentación del segmento). Un segmento está activo si está asociado a un experimento, una personalización o la herramienta Audiences en ejecución. Kameleoon considera inactivos a todos los demás segmentos.
Datos disponibles en el evento
NombreTipoDescripción
segmentObjectObjeto Segment

Kameleoon::ConversionScoreComputed

window.addEventListener('Kameleoon::ConversionScoreComputed', function (event) {
  var kcs = event.detail.kcs;
  var segmentId = event.detail.targetSegment.id;
});
Este evento se dispara cuando se dispara un segmento definido como momento clave. En ese punto, los algoritmos de machine learning calculan y proporcionan un Kameleoon Conversion Score (KCS).
Datos disponibles en el evento
NombreTipoDescripción
kcsNumberKCS (Kameleoon Conversion Score), un entero entre 0 y 100.
targetSegmentObjectObjeto Segment correspondiente al momento clave en el que se calcula el KCS.