Zum Hauptinhalt springen

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 das engine.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:
  1. Aktivierung: Das engine.js-Tag ruft ueber Kameleoon.Analyst.load() einen Aufruf der Activation API auf.
  2. 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.
  1. 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.
Sobald Kameleoon das Laden beendet hat, speichert die Variable 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.
  1. 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::Aborted mit dem Code STORAGE zurueck.
    • Timeout: Wenn das Laden von engine.js mehr als 750 ms dauert und Sie das Projekt so konfiguriert haben, dass Kameleoon fuer die Seite oder den Besuch deaktiviert wird, gibt die Engine TIMEOUT zurueck.
    • Prerender: Kameleoon erfordert, dass das Dokument bereit ist (document.visibilityState == "prerender"). Ist dies nicht der Fall, beendet das Skript den Vorgang und gibt PRERENDER zurueck. Es laedt erneut, wenn sich der Sichtbarkeitsstatus aendert.
    • Custom script: Wenn ein benutzerdefiniertes Skript die Sitzung abbricht, gibt die Engine SCRIPT zurueck.
    • Parameter: Wenn die URL KameleoonDisabled == true enthaelt, gibt die Engine PARAMETER zurueck und beendet den Vorgang.
    • Disabled: Wenn Sie das Projekt im Dashboard deaktivieren, gibt die Engine DISABLED zurueck. Siehe diesen Artikel fuer Details.
Nur ein technischer Account Manager von Kameleoon kann benutzerdefinierte Abbruchskripte konfigurieren.
  1. 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 (frueher kameleoon-configuration.js genannt) und https://SITECODE.kameleoon.com/engine-campaigns.js (frueher kameleoon-actions.js genannt) 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.
Wenn keine blockierenden Gruende vorliegen, geht die Engine zur Phase des Besucherdaten-Trackings ueber.

Code-Ablauf: Tracking

Nach der Initialisierung ruft Kameleoon Besucherdaten ab:
  1. Kameleoon erfasst technische Daten wie den Browser und das Betriebssystem des Besuchers.
  2. Wenn Sie Sitzungsdaten ueber Subdomains vereinheitlichen aktivieren, ruft Kameleoon vergangene Daten ueber ein iFrame auf der Hauptdomain des lokalen Speichers ab.
  3. Wenn Sie die Echtzeit-Synchronisation von Besuchen oder die Cross-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.
  1. Die Engine initialisiert einen Besucher. Wenn im Cookie kameleoonVisitorCode oder im lokalen Speicher kein Code vorhanden ist, weist die Engine einen neuen Besuchercode zu und analysiert alle Besuche.
  2. 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.
  1. Das globale benutzerdefinierte Skript fuehrt eingefuegtes JavaScript aus, bevor Experimente initialisiert werden.
  2. 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.
  3. Die Engine fuehrt ausstehende Befehle aus der CommandQueue aus, die den Parameter IMMEDIATE nicht verwenden.
  4. Das Ereignis Kameleoon::Started wird ausgeloest, wenn die Initialisierung abgeschlossen ist, und die Engine speichert die Daten.
  5. 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.
  6. Bevor die Kampagnen initialisiert werden, fuehrt Kameleoon Folgendes aus:
    • Prueft auf einen Werbeblocker.
    • Fuehrt mutationObserver aus, um querySelector-Operationen zu optimieren.
    • Ruft Geolokalisierungsdaten von https://eu-data.kameleoon.io/ip ab, falls das Segment dies erfordert.
  7. Um die Kampagnenkonfiguration zu laden, ruft Kameleoon Daten von https://SITECODE.kameleoon.com/live-experiments/config.js ab 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:
  1. Wenn der Besucher Teil einer “Holdout”-Gruppe ist, sendet die Engine ein Holdout-Einschlussereignis.
  2. Die Engine loest ein Expositionsereignis aus, das eine nonce, eine experimentID und eine variationId enthaelt. Beispiel: eventType=experiment&nonce=5800F1BDD0667747&id=250830&variationId=978588.
  3. 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.
Erfahren Sie mehr im Leitfaden zur Holdout-Verwaltung.
Die Engine startet dann die Datenerhebung. Wenn eine Personalisierung ausgeloest wird, aber nicht angezeigt wird, gibt die Engine einen der folgenden blockierenden Gruende zurueck:
  • 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.
Wenn Sie einem Experiment einen 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.
Fuer das Add-on AI Opportunity Detection laedt Kameleoon Segmentdefinitionen von 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.
Analysieren Sie diese Informationen auf der Ergebnisseite, um Konversionsraten und potenzielles Umsatzwachstum zu verfolgen.