Flux d’exécution du moteur
Apprenez comment le moteur d’expérimentation charge, suit et exécute les expériences.Vue d’ensemble du moteur d’expérimentation
Kameleoon offre une solution d’optimisation à plateforme unique pour l’expérimentation des applications web et full-stack. La plateforme prend en charge deux solutions principales :- Web Experimentation : Effectuez des A/B tests et d’autres formes d’expérimentation pour les sites web et applications web.
- Feature Experimentation : Activez le feature flagging full-stack et l’expérimentation. Kameleoon fournit également des API et outils supplémentaires pour éliminer le clignotement dans les expériences A/B, intégrer vos outils existants et automatiser les tâches.
Flux de code : chargement
Le moteur Kameleoon exécute le tagengine.js (précédemment kameleoon.js). Invoquez ce tag JavaScript via le code source HTML des pages de votre application.
Au point d’entrée, le moteur :
-
Activation : Le tag
engine.jsinvoque un appel à l’API d’activation viaKameleoon.Analyst.load(). - Exécution de la file de commandes : Après le chargement, le moteur vérifie le tableau kameleoonQueue et exécute les commandes dans l’ordre où vous les avez ajoutées. Utilisez ceci pour le code qui doit s’exécuter avant que Kameleoon n’instancie les fonctions.
Kameleoon n’exécute que les fonctions ajoutées à la file avec le paramètre
IMMEDIATE.- Anti-flicker et variables globales : Le clignotement se produit lorsque la page d’origine s’affiche brièvement avant l’apparition de la variation. Cet effet peut conduire à des résultats inexacts. Kameleoon utilise des techniques avancées pour éliminer le clignotement. Si vous configurez l’anti-flicker, le système charge le script Kameleoon de manière asynchrone avec le code anti-flicker.
window.KameleoonEndLoadTime stocke l’horodatage de fin.
Ajustez le timeout à l’aide de la variable
kameleoonLoadingTimeout dans le snippet d’installation. Nous recommandons de conserver la valeur par défaut de 1000 millisecondes (ou 750 millisecondes pour les implémentations modernes). Cette variable détermine le temps maximal pendant lequel le tag d’installation peut retarder l’affichage de la page en attendant le fichier d’application.-
Vérification des motifs de blocage : Avant de terminer l’initialisation, le moteur vérifie ces motifs de blocage :
- Storage : Si le stockage local ou de session est indisponible, le moteur s’arrête et renvoie l’événement
Kameleoon::Abortedavec le codeSTORAGE. - Timeout : Si
engine.jsmet plus de 750 ms à charger et que vous avez configuré le projet pour désactiver Kameleoon pour la page ou la visite, le moteur renvoieTIMEOUT. - Prerender : Kameleoon exige que le document soit prêt (
document.visibilityState == "prerender"). Si ce n’est pas le cas, le script s’arrête et renvoiePRERENDER. Il recharge lorsque l’état de visibilité change. - Custom script : Si un script personnalisé annule la session, le moteur renvoie
SCRIPT. - Parameter : Si l’URL contient
KameleoonDisabled == true, le moteur renvoiePARAMETERet s’arrête. - Disabled : Si vous désactivez le projet dans le dashboard, le moteur renvoie
DISABLED. Voir cet article pour plus de détails.
- Storage : Si le stockage local ou de session est indisponible, le moteur s’arrête et renvoie l’événement
Seul un account manager technique Kameleoon peut configurer des scripts d’arrêt personnalisés.
- Différés : Le moteur reporte le code et les campagnes à un second appel si nécessaire. Dans ce cas, le moteur récupère la configuration et les campagnes en mode SYNC depuis
https://SITECODE.kameleoon.com/engine-configuration.js(précédemment nommékameleoon-configuration.js) ethttps://SITECODE.kameleoon.com/engine-campaigns.js(précédemment nommékameleoon-actions.js), respectivement.
Seul un account manager technique Kameleoon peut configurer l’option de différer toutes les campagnes. Vous pouvez différer des expériences spécifiques en utilisant le tag “DELAYED”.
Flux de code : suivi
Après l’initialisation, Kameleoon récupère les données du visiteur :- Kameleoon collecte les données techniques telles que le navigateur et le système d’exploitation du visiteur.
- Si vous activez unifier les données de session entre sous-domaines, Kameleoon récupère les données antérieures à l’aide d’une iFrame sur le domaine principal de stockage local.
- Si vous activez la
synchronisation en temps réel des visitesou l’optioncross-device, le moteur récupère l’historique d’usage depuis les serveurs Kameleoon.
La synchronisation en temps réel est active par défaut pour Kameleoon Feature Experimentation ou pour Safari afin de gérer les impacts ITP.
- Le moteur initialise un visiteur. S’il n’existe aucun code dans le cookie
kameleoonVisitorCodeou dans le stockage local, le moteur assigne un nouveau code visiteur et analyse toutes les visites. - Le moteur analyse et stocke des données telles que l’URL de la page, l’appareil, le système d’exploitation, la géolocalisation et les objectifs.
Si vous utilisez le module complémentaire de recommandation produit, Kameleoon instancie le moteur de recommandation ici.
- Le script personnalisé global exécute tout JavaScript inséré avant d’initialiser les expériences.
- Le script global d’expérience s’exécute après le script personnalisé global. Ce script s’exécute indépendamment du ciblage et s’arrête lorsque l’expérience est mise en pause. Consultez ce guide pour plus de détails.
- Le moteur exécute les commandes en attente de la
CommandQueuequi n’utilisent pas le paramètreIMMEDIATE. - L’événement
Kameleoon::Startedse déclenche lorsque l’initialisation est terminée et le moteur stocke les données. - Si vous activez la gestion SPA, Kameleoon surveille les changements d’URL. Lorsque l’URL change, le moteur recharge pour s’assurer que les campagnes fonctionnent correctement sur la nouvelle vue.
- Avant d’initialiser les campagnes, Kameleoon :
- Vérifie la présence d’un bloqueur de publicités.
- Exécute
mutationObserverpour optimiser les opérationsquerySelector. - Récupère les données de géolocalisation depuis
https://eu-data.kameleoon.io/ipsi le segment l’exige.
- Pour charger la configuration des campagnes, Kameleoon récupère les données depuis
https://SITECODE.kameleoon.com/live-experiments/config.jset les met en cache pendant 2 minutes.
La fonctionnalité Live Update Experiments rafraîchit les expériences taguées
LIVE-UPDATE pour permettre des changements de configuration en temps réel sans retards de mise en cache du navigateur.Flux de code : exécution
Lorsque la boucle d’expérimentation s’exécute, le moteur :- Si le visiteur fait partie d’un groupe “holdout”, le moteur envoie un événement d’inclusion holdout.
- Le moteur déclenche un événement d’exposition contenant un
nonce, unexperimentIDet unvariationId. Par exemple :eventType=experiment&nonce=5800F1BDD0667747&id=250830&variationId=978588. - Si le visiteur n’est pas dans un groupe holdout, le moteur envoie un “événement d’exclusion holdout”.
Les expériences holdout vous permettent de gérer et de bloquer d’autres expériences :
- Le moteur vérifie d’abord les expériences holdout.
- Si un utilisateur est dans un groupe holdout, le moteur l’assigne à un groupe et envoie un événement à des fins de reporting.
- Si l’utilisateur est dans le groupe de référence, le moteur bloque toutes les autres expériences.
- Si l’utilisateur est dans le groupe de variation, le moteur permet aux autres expériences de se dérouler.
- PERSONALIZATION_CAPPING : La personnalisation a atteint sa limite globale de visiteurs.
- SCHEDULE : La personnalisation est désactivée en fonction de son planning.
- SCENARIO : Certaines conditions de scénario ne sont pas remplies.
- PRIORITY : Une personnalisation de priorité supérieure existe.
- VISITOR_CAPPING : Le visiteur a atteint une limite empêchant l’affichage.
DELAYED à une expérience, le moteur la déclenche après le premier chargement de page. Le moteur télécharge les données de variation depuis https://SITECODE.kameleoon.com/(personalizations)/$campaign_id/variations/$variation_id.js.
Différer une expérience est utile pour les popups ou les modifications situées sous la ligne de flottaison, où le clignotement est minime.
https://SITECODE.kameleoon.com/audiences/segments.js pour détecter les opportunités.
Kameleoon vérifie les segments créés ou modifiés au cours des 90 derniers jours, à l’exclusion de ceux commençant par
[DEV], [TEST] ou [QA].