Passer au contenu principal
En plus des méthodes et des structures de données fournies par l’Activation API, le moteur JavaScript déclenche des événements DOM personnalisés. Ces événements constituent d’excellents points d’entrée pour personnaliser le comportement de Kameleoon et étendre la plateforme. Par exemple, écoutez l’événement Kameleoon::ExperimentTriggered pour recevoir une notification lorsqu’une expérience se déclenche. La liste suivante détaille les événements actuellement implémentés. Si l’Activation API actuelle ne dispose pas d’un événement requis, contactez le support technique pour demander une amélioration. De nouveaux événements peuvent être ajoutés pour répondre à des exigences spécifiques.
Comme il n’y a qu’un seul thread d’exécution dans un environnement JavaScript, les événements déclenchés dans un bloc d’exécution synchrone continu sont reçus simultanément. Les écouteurs de rappel s’exécutent après la fin complète du bloc de code Kameleoon, plutôt qu’au moment exact où le code déclenche l’événement. Par exemple, Kameleoon::Loaded et Kameleoon::Started peuvent être reçus simultanément si le chargement du stockage local est implémenté de manière synchrone (cas typique, sauf dans une configuration multi-domaines lorsque l’URL actuelle ne se trouve pas sur le domaine principal). Kameleoon::Started et Kameleoon::ExperimentTriggered sont également simultanés pour les expériences dont le ciblage peut être évalué immédiatement.

Liste des événements

Kameleoon::Loaded

window.addEventListener('Kameleoon::Loaded', function (event) {
  var loadTime = event.detail.loadTime;
  var timeout = event.detail.timeout;
});
Cet événement est déclenché lorsque le fichier d’application Kameleoon a terminé son chargement et que le code du moteur est disponible pour exécution dans le navigateur. L’événement se déclenche au début du processus de configuration. Les événements suivants (détaillés ci-dessous) se déclenchent à mesure que l’initialisation atteint des étapes spécifiques.
Données disponibles dans l’événement
NomTypeDescription
loadTimeNumberHeure du chargement complet du fichier d’application Kameleoon (format UTC - ms depuis le 1er janvier 1970).
timeoutBooleantrue si un timeout s’est produit pendant le chargement (asynchrone) du fichier d’application Kameleoon.

Kameleoon::Aborted

window.addEventListener('Kameleoon::Aborted', function (event) {
  var reason = event.detail.reason;
});
Cet événement se déclenche lorsque le moteur Kameleoon arrête l’exécution sur la page actuelle. Cet événement indique que Kameleoon est inactif pour le visiteur et la page en cours. L’événement fournit la raison de l’abandon :
  • BROWSER : Le navigateur n’est pas pris en charge.
  • PRERENDER : Il s’agit d’une requête de prérendu (par exemple, optimisation Chrome), et non d’une page web consultée par un humain. Kameleoon ne s’exécute pas pour éviter de fausses statistiques.
  • STORAGE : Les prérequis techniques pour un fonctionnement normal, tels que les écritures dans le stockage local, ne peuvent pas être satisfaits.
  • TIMEOUT : Le temps de chargement du fichier a dépassé la durée autorisée, et la configuration nécessite un abandon.
  • DISABLED : Kameleoon a été désactivé via l’application back-office. Tous les chargements front-end Kameleoon sont immédiatement abandonnés lorsque ce statut est actif.
  • PARAMETER : Un paramètre spécial dans l’URL (par exemple, kameleoonDisabled=true) provoque l’arrêt de l’exécution du moteur à des fins de débogage ou de vérification.
  • SCRIPT : Un script d’abandon personnalisé a retourné true pour le chargement actuel.
Données disponibles dans l’événement
NomTypeDescription
reasonStringRaison / cause de l’abandon.

Kameleoon::Started

window.addEventListener('Kameleoon::Started', function (event) {
  var newVisitor = event.detail.newVisitorCode;
});
Cet événement est déclenché lorsque le moteur Kameleoon termine son initialisation principale. À ce stade, le moteur a chargé les données du stockage local et exécuté le script global, le code d’acquisition de données personnalisées et les commandes différées via la Command Queue. Suite à cet événement, les boucles d’activation et de suivi de Kameleoon démarrent. Les expériences et personnalisations se déclenchent (si les conditions de ciblage correspondent), et la collecte de données commence. Les méthodes de l’Activation API sont disponibles. Kameleoon.API est lisible, bien que certaines données (telles que les données de géolocalisation obtenues via des appels asynchrones ultérieurs) puissent ne pas être disponibles. Les données de l’événement indiquent si l’initialisation a généré un nouveau visitorCode.
Données disponibles dans l’événement
NomTypeDescription
newVisitorCodeBooleantrue si un nouveau visitorCode (aléatoire) a été généré pour ce visiteur (visiteur inconnu / nouveau pour Kameleoon), sinon false.

Kameleoon::DataGathered

window.addEventListener('Kameleoon::DataGathered', function (event) {
  // At this point, we're guaranteed that the object will be present and correct.
  var currentLocation = Kameleoon.API.CurrentVisit.geolocation;
});
Cet événement se déclenche lorsque le moteur Kameleoon termine la collecte de données. Comme la collecte implique souvent des appels distants ou des méthodes asynchrones, cet événement se déclenche après la fin de ces processus. L’Activation API est pleinement utilisable une fois cet événement déclenché. Tous les champs de l’API contiennent des valeurs correctes. Kameleoon effectue souvent des appels distants uniquement au début d’une visite, donc cet événement se déclenche plus tard lors de la première vue de page et presque immédiatement lors des vues suivantes. Bien que la lecture des données de l’Activation API tôt puisse fonctionner sur les vues suivantes, la présence et l’exactitude des données ne sont pas garanties. Il est fortement recommandé d’écouter cet événement avant d’effectuer des opérations de lecture (en particulier pour les données de visite telles que la géolocalisation ou la météo).

Kameleoon::RemoteSynchronizationPerformed

window.addEventListener('Kameleoon::RemoteSynchronizationPerformed', function (event) {
  var allVisits = event.detail.visits;
});
Cet événement se déclenche lorsque le moteur Kameleoon termine un Server Synchronization Call (SSC) initié par la méthode Kameleoon.API.Data.performRemoteSynchronization(). Cela se produit lors de la réconciliation de l’historique entre appareils, de la prévention du suivi intelligent ou des mises à jour de données personnalisées. En savoir plus sur les SSC ici.
Données disponibles dans l’événement
NomTypeDescription
visitsArrayListe des objets Visit correspondant à ce visiteur, retournés par la Data API.
currentVisitOnlyBooleantrue si Kameleoon.API.Data.performRemoteSynchronization() a été appelé avec l’argument currentVisitOnly défini sur true, sinon false.

Kameleoon::LegalConsentUpdated

window.addEventListener('Kameleoon::LegalConsentUpdated', function (event) {
  var legalConsentUpdate = event.detail.legalConsentUpdate;
});
Cet événement se déclenche chaque fois que le statut de consentement légal change pour le visiteur actuel. Les modifications incluent l’acceptation (Kameleoon.API.Core.enableLegalConsent()) ou le refus (Kameleoon.API.Core.disableLegalConsent()) pour les modules AB Testing ou Personalization. Accédez au statut mis à jour via Kameleoon.API.Visitor.experimentLegalConsent ou Kameleoon.API.Visitor.personalizationLegalConsent ; l’objet de l’événement contient les détails de la mise à jour.
Données disponibles dans l’événement
NomTypeDescription
legalConsentUpdateObjectMise à jour qui vient d’être traitée. Elle suit le format {“AB_TESTING”: true|false, “PERSONALIZATION”: true|false}. Cela pourrait donc être égal à {“AB_TESTING”: false} si nous venons d’enregistrer un refus uniquement pour le module AB Testing, ou à {“AB_TESTING”: true, “PERSONALIZATION”: true} si une acceptation a eu lieu pour les deux modules.

Kameleoon::ExperimentTriggered

window.addEventListener('Kameleoon::ExperimentTriggered', function (event) {
  var experiment = event.detail.experiment;
  var experimentId = experiment.id;
});
Cet événement se déclenche lorsqu’une expérience se déclenche (c’est-à-dire lorsque le visiteur correspond au segment cible). Des options supplémentaires, telles que l’exclusion de trafic ou le plafonnement, peuvent permettre à un visiteur de déclencher une expérience sans l’activer (voir l’événement suivant). Si l’expérience se déclenche sur plusieurs pages, l’événement se déclenche à chaque fois.
Données disponibles dans l’événement
NomTypeDescription
experimentObjectObjet Experiment

Kameleoon::ExperimentActivated

window.addEventListener('Kameleoon::ExperimentActivated', function (event) {
  var experiment = event.detail.experiment;
  var experimentId = experiment.id;
  var associatedVariationId = experiment.associatedVariation.id;
});
Cet événement se déclenche lorsqu’une expérience s’active (c’est-à-dire lorsque le visiteur est comptabilisé dans les résultats de l’expérience). L’activation se produit lorsqu’une expérience se déclenche et que toutes les conditions d’exposition correspondent. Si l’activation se produit sur plusieurs pages, l’événement se déclenche à chaque fois.
Données disponibles dans l’événement
NomTypeDescription
experimentObjectObjet Experiment

Kameleoon::PersonalizationTriggered

window.addEventListener('Kameleoon::PersonalizationTriggered', function (event) {
  var personalization = event.detail.personalization;
  var personalizationId = personalization.id;
});
Cet événement se déclenche lorsqu’une personnalisation se déclenche (c’est-à-dire lorsque le visiteur correspond au segment cible). Des options d’exposition supplémentaires, telles que le plafonnement, peuvent empêcher l’action de personnalisation (par exemple, l’affichage d’une bannière ou d’un pop-in). Dans ce scénario, la personnalisation ne s’active pas (voir l’événement suivant). Si la personnalisation se déclenche sur plusieurs pages, l’événement se déclenche à chaque fois.
Données disponibles dans l’événement
NomTypeDescription
personalizationObjectObjet Personalization

Kameleoon::PersonalizationActivated

window.addEventListener('Kameleoon::PersonalizationActivated', function (event) {
  var personalization = event.detail.personalization;
  var personalizationId = personalization.id;
  var associatedVariationId = personalization.associatedVariation.id;
});
Cet événement se déclenche lorsqu’une personnalisation s’active (c’est-à-dire lorsque la personnalisation s’affiche sur la page). L’activation se produit lorsqu’une personnalisation se déclenche et que toutes les conditions d’exposition correspondent. Si l’activation se produit sur plusieurs pages, l’événement se déclenche à chaque fois.
Données disponibles dans l’événement
NomTypeDescription
personalizationObjectObjet Personalization

Kameleoon::CustomDataSet

window.addEventListener('Kameleoon::CustomDataSet', function (event) {
  var customDataName = event.detail.name;
  var customDataValue = event.detail.value;
});
Cet événement se déclenche chaque fois qu’une donnée personnalisée est définie (c’est-à-dire lorsque sa valeur est fournie). Cet événement se déclenche quelle que soit la méthode d’acquisition (intégration Data Layer, Activation API, Data API ou code JS personnalisé).
Données disponibles dans l’événement
NomTypeDescription
nameStringNom de la donnée personnalisée.
valueAnyValeur de la donnée personnalisée. Son type dépend du type défini de la donnée personnalisée.

Kameleoon::ConversionTriggered

window.addEventListener('Kameleoon::ConversionTriggered', function (event) {
  var goal = event.detail.goal;
});
Cet événement se déclenche lorsqu’une conversion se déclenche (c’est-à-dire lorsqu’un objectif est atteint).
Données disponibles dans l’événement
NomTypeDescription
goalObjectObjet Goal

Kameleoon::SegmentTriggered

window.addEventListener('Kameleoon::SegmentTriggered', function (event) {
  var segment = event.detail.segment;
});
Cet événement se déclenche lorsqu’un segment actif se déclenche (c’est-à-dire lorsqu’un visiteur correspond à toutes les conditions du segment de ciblage). Un segment est actif s’il est associé à une expérience en cours, une personnalisation ou à l’outil Audiences. Kameleoon considère tous les autres segments comme inactifs.
Données disponibles dans l’événement
NomTypeDescription
segmentObjectObjet Segment

Kameleoon::ConversionScoreComputed

window.addEventListener('Kameleoon::ConversionScoreComputed', function (event) {
  var kcs = event.detail.kcs;
  var segmentId = event.detail.targetSegment.id;
});
Cet événement se déclenche lorsqu’un segment défini comme moment clé se déclenche. À ce stade, les algorithmes d’apprentissage automatique calculent et fournissent un Kameleoon Conversion Score (KCS).
Données disponibles dans l’événement
NomTypeDescription
kcsNumberKCS (Kameleoon Conversion Score), un entier de 0 à 100.
targetSegmentObjectObjet Segment correspondant au moment clé où le KCS est calculé.