- Le script est chargé et exécuté après que le navigateur a déjà affiché la page ou des parties de celle-ci. Ce problème de timing est directement lié à la manière dont Kameleoon a été implémenté sur votre site web. Si Kameleoon se charge trop tard ou s’il est intégré au sein d’un Tag Management System, le clignotement ne peut être évité.
- Le moteur traitant les variations de l’expérience est trop lent et n’exécute pas les modifications assez rapidement.
Principaux avantages de la technologie :
Voici quelques raisons pour lesquelles la technologie anti-flicker de Kameleoon est unique et puissante :- Snippet asynchrone : Kameleoon charge son script de manière asynchrone depuis un CDN fiable (Cloudflare) pour garantir un premier chargement de page non bloquant et utilise la mise en cache du navigateur pour des chargements de page ultérieurs plus rapides. Kameleoon maintient un Service Level Agreement (SLA) supérieur à 99,99 %.
- Petite taille du script : Le fichier d’application, créé avec TypeScript, a une taille de seulement 29 ko (compressé avec Brotli), ce qui minimise le temps de chargement à la première page.
- Approche de prétraitement : Le script Kameleoon est généré uniquement à partir des composants nécessaires à votre configuration spécifique, en fonction des fonctionnalités et options que vous utilisez.
- Moteur anti-clignotement unique : Le moteur capture les événements du DOM en temps réel et modifie l’affichage des composants impliqués dans une variation d’expérience avant qu’ils ne soient entièrement rendus.
- Appels réseau réduits : Le script regroupe plusieurs événements de suivi dans un seul appel beacon, réduisant ainsi considérablement le nombre total d’appels réseau requis.
- Chargement unique du script : Contrairement à d’autres plateformes nécessitant plusieurs fichiers, Kameleoon charge un seul script consolidé. Cela réduit le nombre de requêtes HTTP.
-
Chargement différé des expériences : Kameleoon vous permet de sélectionner quelles expériences inclure dans le fichier d’application,
engine.js(précédemment nommékameleoon.js) au moment du premier chargement de page, au cas par cas, et de différer les expériences non essentielles après le premier chargement. - Mise à jour en temps réel : Pour fournir des mises à jour plus fréquentes sans être ralenti par la mise en cache du navigateur, la fonctionnalité Live Update Experiments rafraîchit toute expérience taguée “LIVE-UPDATE” en moins d’une minute.
Comment empêcher le clignotement dans vos expériences
Pour éliminer le clignotement qui se produit lors du chargement du fichier d’application, utilisez le tag asynchrone avec prévention anti-flicker. Le snippet comprend une “règle CSS bloquante” qui masque initialement tout le contenu de la page pendant que le script est téléchargé par le navigateur. Kameleoon supprime cette règle dès que le code d’application se charge, ce qui prend généralement moins de 50 millisecondes. Si le code d’application ne se charge pas dans le délai spécifié (par défaut 1000 millisecondes), la règle sera également supprimée pour éviter d’afficher une page vide indéfiniment. Cette approche garantit que Kameleoon ne peut perturber votre site web dans aucune situation.Le timeout est géré par la variable JavaScript
kameleoonLoadingTimeout, que vous pouvez ajuster dans le tag d’installation Kameleoon. Par défaut, cette variable est définie sur 1000 millisecondes. Kameleoon recommande de conserver cette valeur. Cette variable indique le temps maximal pendant lequel le tag d’installation Kameleoon peut empêcher l’affichage de votre site pendant qu’il attend le chargement du fichier d’application Kameleoon.En cas de timeout, une fois que le code Kameleoon est enfin chargé, la configuration choisie détermine ce qui se passe ensuite. Vous avez deux options dans les paramètres de confirmation avancés de votre projet Kameleoon :- Désactiver entièrement Kameleoon : Si un timeout se produit, aucune expérience ou personnalisation ne sera exécutée pour ce visiteur spécifique.
- Exécuter normalement le code de Kameleoon : Dans ce cas, le code s’exécutera tardivement, ce qui peut entraîner un clignotement sur la page.
<head>. Cette garantie existe parce que le navigateur ne rendra aucun contenu tant que le fichier d’application Kameleoon n’est pas entièrement téléchargé et exécuté. Cependant, charger des ressources de manière bloquante n’est pas considéré comme une bonne pratique.
Même si la bonne méthode est implémentée, des effets de clignotement peuvent encore se produire si le moteur sous-jacent d’une solution d’A/B test n’est pas optimisé pour les empêcher. Kameleoon garantit automatiquement ces optimisations pour toutes les modifications apportées via l’éditeur graphique. Pour les variations qui utilisent du code JavaScript personnalisé, des API sont disponibles pour garantir une expérience fluide. Utilisez correctement ces API pour éviter les problèmes. Effectuez toutes les modifications d’un élément ou toutes les actions en attente d’un élément sur la page à l’aide de la méthode d’API JavaScript, en particulier Kameleoon.API.Core.runWhenElementPresent(), plutôt que d’utiliser des pollers codés à la main ou d’autres codes personnalisés.
Lors de l’implémentation de code JavaScript pour une variation, prenez en compte les modifications que vous souhaitez apporter et les éléments DOM spécifiques auxquels elles s’appliqueront. Une fois que vous avez identifié le sélecteur CSS approprié pour ces éléments, encapsulez l’appel de modification dans une fonction de rappel que vous fournirez à
Kameleoon.API.Core.runWhenElementPresent(). Cette approche présente deux avantages clés : premièrement, elle garantit que le code s’exécute au bon moment, uniquement après que les éléments sont présents dans le DOM, évitant les problèmes potentiels qui pourraient survenir si votre code s’exécutait prématurément. Deuxièmement, elle élimine le risque d’effets de clignotement indésirables.