Ausfuehrungsablauf der Engine
Erfahren Sie, wie die Experimentations-Engine Experimente laedt, verfolgt und ausfuehrt.Ueberblick ueber die Experimentations-Engine
Kameleoon bietet eine Einzelplattform-Optimierungsloesung fuer Web- und Full-Stack-Anwendungsexperimente. Die Plattform unterstuetzt zwei Hauptloesungen:- Web Experimentation: Fuehren Sie A/B-Tests und andere Formen von Experimenten fuer Websites und Webanwendungen durch.
- Feature Experimentation: Ermoeglichen Sie Full-Stack-Feature-Flagging und -Experimentation. Kameleoon stellt zudem zusaetzliche APIs und Tools bereit, um Flackern in A/B-Experimenten zu beseitigen, in Ihre bestehenden Tools zu integrieren und Aufgaben zu automatisieren.
Code-Ablauf: Laden
Die Kameleoon-Engine fuehrt dasengine.js-Tag (frueher kameleoon.js) aus. Rufen Sie dieses JavaScript-Tag ueber den HTML-Quellcode Ihrer Anwendungsseiten auf.
Am Einstiegspunkt fuehrt die Engine Folgendes aus:
-
Aktivierung: Das
engine.js-Tag ruft ueberKameleoon.Analyst.load()einen Aufruf der Activation API auf. - Ausfuehrung der Befehlswarteschlange: Nach dem Laden prueft die Engine das kameleoonQueue-Array und fuehrt Befehle in der Reihenfolge aus, in der Sie sie hinzugefuegt haben. Verwenden Sie dies fuer Code, der ausgefuehrt werden muss, bevor Kameleoon Funktionen instanziiert.
Kameleoon fuehrt nur Funktionen aus, die der Warteschlange mit dem Parameter
IMMEDIATE hinzugefuegt wurden.- Anti-Flicker und globale Variablen: Flackern tritt auf, wenn die Originalseite kurz angezeigt wird, bevor die Variation erscheint. Dieser Effekt kann zu ungenauen Ergebnissen fuehren. Kameleoon verwendet fortschrittliche Techniken, um Flackern zu beseitigen. Wenn Sie Anti-Flicker konfigurieren, laedt das System das Kameleoon-Skript asynchron mit Anti-Flicker-Code.
window.KameleoonEndLoadTime den Abschlusszeitstempel.
Passen Sie das Timeout mithilfe der Variable
kameleoonLoadingTimeout im Installations-Snippet an. Wir empfehlen, den Standardwert von 1000 Millisekunden (oder 750 Millisekunden fuer moderne Implementierungen) beizubehalten. Diese Variable legt fest, wie lange das Installations-Tag das Anzeigen der Seite maximal verzoegern darf, waehrend es auf die Anwendungsdatei wartet.-
Pruefung auf blockierende Gruende: Bevor die Initialisierung abgeschlossen wird, prueft die Engine die folgenden blockierenden Gruende:
- Storage: Wenn lokaler oder Sitzungsspeicher nicht verfuegbar ist, beendet die Engine den Vorgang und gibt das Ereignis
Kameleoon::Abortedmit dem CodeSTORAGEzurueck. - Timeout: Wenn das Laden von
engine.jsmehr als 750 ms dauert und Sie das Projekt so konfiguriert haben, dass Kameleoon fuer die Seite oder den Besuch deaktiviert wird, gibt die EngineTIMEOUTzurueck. - Prerender: Kameleoon erfordert, dass das Dokument bereit ist (
document.visibilityState == "prerender"). Ist dies nicht der Fall, beendet das Skript den Vorgang und gibtPRERENDERzurueck. Es laedt erneut, wenn sich der Sichtbarkeitsstatus aendert. - Custom script: Wenn ein benutzerdefiniertes Skript die Sitzung abbricht, gibt die Engine
SCRIPTzurueck. - Parameter: Wenn die URL
KameleoonDisabled == trueenthaelt, gibt die EnginePARAMETERzurueck und beendet den Vorgang. - Disabled: Wenn Sie das Projekt im Dashboard deaktivieren, gibt die Engine
DISABLEDzurueck. Siehe diesen Artikel fuer Details.
- Storage: Wenn lokaler oder Sitzungsspeicher nicht verfuegbar ist, beendet die Engine den Vorgang und gibt das Ereignis
Nur ein technischer Account Manager von Kameleoon kann benutzerdefinierte Abbruchskripte konfigurieren.
- Verzoegerungen: Die Engine verschiebt Code und Kampagnen bei Bedarf auf einen zweiten Aufruf. In diesem Fall ruft die Engine die Konfiguration und Kampagnen im SYNC-Modus von
https://SITECODE.kameleoon.com/engine-configuration.js(frueherkameleoon-configuration.jsgenannt) undhttps://SITECODE.kameleoon.com/engine-campaigns.js(frueherkameleoon-actions.jsgenannt) ab.
Nur ein technischer Account Manager von Kameleoon kann die Option zum Verschieben aller Kampagnen konfigurieren. Sie koennen bestimmte Experimente mit dem Tag “DELAYED” verschieben.
Code-Ablauf: Tracking
Nach der Initialisierung ruft Kameleoon Besucherdaten ab:- Kameleoon erfasst technische Daten wie den Browser und das Betriebssystem des Besuchers.
- Wenn Sie Sitzungsdaten ueber Subdomains vereinheitlichen aktivieren, ruft Kameleoon vergangene Daten ueber ein iFrame auf der Hauptdomain des lokalen Speichers ab.
- Wenn Sie die
Echtzeit-Synchronisation von Besuchenoder dieCross-Device-Option aktivieren, ruft die Engine die Nutzungshistorie von den Kameleoon-Servern ab.
Die Echtzeit-Synchronisation ist fuer Kameleoon Feature Experimentation oder fuer Safari standardmaessig aktiv, um die Auswirkungen von ITP zu verwalten.
- Die Engine initialisiert einen Besucher. Wenn im Cookie
kameleoonVisitorCodeoder im lokalen Speicher kein Code vorhanden ist, weist die Engine einen neuen Besuchercode zu und analysiert alle Besuche. - Die Engine parst und speichert Daten wie Seiten-URL, Geraet, Betriebssystem, Geolokalisierung und Ziele.
Wenn Sie das Add-on fuer Produktempfehlungen verwenden, instanziiert Kameleoon hier die Empfehlungs-Engine.
- Das globale benutzerdefinierte Skript fuehrt eingefuegtes JavaScript aus, bevor Experimente initialisiert werden.
- Das globale Experimentskript wird nach dem benutzerdefinierten globalen Skript ausgefuehrt. Dieses Skript wird unabhaengig vom Targeting ausgefuehrt und stoppt, wenn das Experiment pausiert. Siehe diesen Leitfaden fuer Details.
- Die Engine fuehrt ausstehende Befehle aus der
CommandQueueaus, die den ParameterIMMEDIATEnicht verwenden. - Das Ereignis
Kameleoon::Startedwird ausgeloest, wenn die Initialisierung abgeschlossen ist, und die Engine speichert die Daten. - Wenn Sie die SPA-Verwaltung aktivieren, ueberwacht Kameleoon URL-Aenderungen. Wenn sich die URL aendert, laedt die Engine neu, um sicherzustellen, dass die Kampagnen in der neuen Ansicht ordnungsgemaess funktionieren.
- Bevor die Kampagnen initialisiert werden, fuehrt Kameleoon Folgendes aus:
- Prueft auf einen Werbeblocker.
- Fuehrt
mutationObserveraus, umquerySelector-Operationen zu optimieren. - Ruft Geolokalisierungsdaten von
https://eu-data.kameleoon.io/ipab, falls das Segment dies erfordert.
- Um die Kampagnenkonfiguration zu laden, ruft Kameleoon Daten von
https://SITECODE.kameleoon.com/live-experiments/config.jsab und speichert sie 2 Minuten lang im Cache.
Die Funktion Live Update Experiments aktualisiert mit
LIVE-UPDATE markierte Experimente, um Echtzeit-Konfigurationsaenderungen ohne Browser-Caching-Verzoegerungen zu ermoeglichen.Code-Ablauf: Ausfuehrung
Wenn die Experimentations-Schleife ausgefuehrt wird, geht die Engine wie folgt vor:- Wenn der Besucher Teil einer “Holdout”-Gruppe ist, sendet die Engine ein Holdout-Einschlussereignis.
- Die Engine loest ein Expositionsereignis aus, das eine
nonce, eineexperimentIDund einevariationIdenthaelt. Beispiel:eventType=experiment&nonce=5800F1BDD0667747&id=250830&variationId=978588. - Wenn der Besucher nicht in einer Holdout-Gruppe ist, sendet die Engine ein “Holdout-Ausschlussereignis”.
Holdout-Experimente ermoeglichen es Ihnen, andere Experimente zu verwalten und zu blockieren:
- Die Engine prueft zuerst auf Holdout-Experimente.
- Wenn sich ein Nutzer in einer Holdout-Gruppe befindet, weist die Engine ihn einer Gruppe zu und sendet ein Ereignis zum Reporting.
- Wenn sich der Nutzer in der Referenzgruppe befindet, blockiert die Engine alle anderen Experimente.
- Wenn sich der Nutzer in der Variationsgruppe befindet, erlaubt die Engine, dass andere Experimente fortgesetzt werden.
- PERSONALIZATION_CAPPING: Die Personalisierung hat ihr globales Besucherlimit erreicht.
- SCHEDULE: Die Personalisierung ist aufgrund ihres Zeitplans deaktiviert.
- SCENARIO: Einige Szenariobedingungen sind nicht erfuellt.
- PRIORITY: Es existiert eine Personalisierung mit hoeherer Prioritaet.
- VISITOR_CAPPING: Der Besucher hat ein Limit erreicht, das die Anzeige verhindert.
DELAYED-Tag zuordnen, loest die Engine es nach dem ersten Seitenladevorgang aus. Die Engine laedt Variationsdaten von https://SITECODE.kameleoon.com/(personalizations)/$campaign_id/variations/$variation_id.js herunter.
Das Verzoegern eines Experiments ist nuetzlich fuer Popups oder Aenderungen unterhalb des sichtbaren Bereichs, bei denen das Flackern minimal ist.
https://SITECODE.kameleoon.com/audiences/segments.js herunter, um Gelegenheiten zu erkennen.
Kameleoon prueft Segmente, die in den letzten 90 Tagen erstellt oder geaendert wurden, mit Ausnahme jener, die mit
[DEV], [TEST] oder [QA] beginnen.