Zusätzlich zu den Methoden und Datenstrukturen, die von der Activation API bereitgestellt werden, löst die JavaScript-Engine benutzerdefinierte DOM-Ereignisse aus. Diese Ereignisse dienen als ausgezeichnete Einstiegspunkte, um das Verhalten von Kameleoon anzupassen und die Plattform zu erweitern. Lauschen Sie beispielsweise auf das Ereignis Kameleoon::ExperimentTriggered, um benachrichtigt zu werden, wenn ein Experiment ausgelöst wird.
Die folgende Liste beschreibt die derzeit implementierten Ereignisse. Wenn der aktuellen Activation API ein erforderliches Ereignis fehlt, wenden Sie sich an den technischen Support, um eine Verbesserung anzufordern. Es können neue Ereignisse hinzugefügt werden, um spezifische Anforderungen zu erfüllen.
Da es in einer JavaScript-Umgebung nur einen Ausführungs-Thread gibt, werden Ereignisse, die in einem kontinuierlichen synchronen Ausführungsblock ausgelöst werden, gleichzeitig empfangen. Callback-Listener werden ausgeführt, nachdem der gesamte Kameleoon-Codeblock abgeschlossen ist, und nicht genau zu dem Zeitpunkt, an dem der Code das Ereignis auslöst. Beispielsweise können Kameleoon::Loaded und Kameleoon::Started gleichzeitig empfangen werden, wenn das Laden des lokalen Speichers synchron implementiert ist (der typische Fall, außer in einer domänenübergreifenden Konfiguration, wenn sich die aktuelle URL nicht in der Hauptdomäne befindet). Kameleoon::Started und Kameleoon::ExperimentTriggered sind ebenfalls gleichzeitig für Experimente, deren Targeting sofort ausgewertet werden kann.
Liste der Ereignisse
Kameleoon::Loaded
window.addEventListener('Kameleoon::Loaded', function (event) {
var loadTime = event.detail.loadTime;
var timeout = event.detail.timeout;
});
Dieses Ereignis wird ausgelöst, wenn die Kameleoon-Anwendungsdatei das Laden abgeschlossen hat und der Engine-Code zur Ausführung im Browser verfügbar ist. Das Ereignis wird zu Beginn des Setup-Prozesses ausgelöst. Nachfolgende Ereignisse (unten beschrieben) werden ausgelöst, sobald die Initialisierung bestimmte Schritte erreicht.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| loadTime | Number | Zeitpunkt des abgeschlossenen Ladens der Kameleoon-Anwendungsdatei (UTC-Format - ms seit 1. Januar 1970). |
| timeout | Boolean | true, wenn während des (asynchronen) Ladens der Kameleoon-Anwendungsdatei ein Timeout aufgetreten ist. |
Kameleoon::Aborted
window.addEventListener('Kameleoon::Aborted', function (event) {
var reason = event.detail.reason;
});
Dieses Ereignis wird ausgelöst, wenn die Kameleoon-Engine die Ausführung auf der aktuellen Seite beendet. Dieses Ereignis zeigt an, dass Kameleoon für den aktuellen Besucher und die aktuelle Seite inaktiv ist. Das Ereignis liefert den Grund für den Abbruch:
- BROWSER: Der Browser wird nicht unterstützt.
- PRERENDER: Dies ist eine Prerender-Anfrage (z. B. Chrome-Optimierung), keine von einem Menschen aufgerufene Webseite. Kameleoon wird nicht ausgeführt, um falsche Statistiken zu vermeiden.
- STORAGE: Die technischen Voraussetzungen für den Normalbetrieb, wie z. B. Schreibvorgänge im lokalen Speicher, können nicht erfüllt werden.
- TIMEOUT: Die Ladezeit der Datei hat die zulässige Dauer überschritten, und die Konfiguration erfordert einen Abbruch.
- DISABLED: Kameleoon wurde über die Back-Office-Anwendung deaktiviert. Alle Frontend-Kameleoon-Ladevorgänge werden sofort abgebrochen, wenn dieser Status aktiv ist.
- PARAMETER: Ein spezieller Parameter in der URL (z. B.
kameleoonDisabled=true) bewirkt, dass die Engine die Ausführung zu Debugging- oder Verifizierungszwecken stoppt.
- SCRIPT: Ein benutzerdefiniertes Abbruchskript hat für den aktuellen Ladevorgang true zurückgegeben.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| reason | String | Grund / Ursache des Abbruchs. |
Kameleoon::Started
window.addEventListener('Kameleoon::Started', function (event) {
var newVisitor = event.detail.newVisitorCode;
});
Dieses Ereignis wird ausgelöst, wenn die Kameleoon-Engine ihre Hauptinitialisierung abschließt. Zu diesem Zeitpunkt hat die Engine die Daten aus dem lokalen Speicher geladen und das globale Skript, den Code zur Erfassung benutzerdefinierter Daten und die verzögerten Befehle über die Command Queue ausgeführt. Nach diesem Ereignis starten die Aktivierungs- und Tracking-Schleifen von Kameleoon. Experimente und Personalisierungen werden ausgelöst (wenn die Targeting-Bedingungen übereinstimmen), und die Datenerfassung beginnt.
Die Methoden der Activation API sind verfügbar. Kameleoon.API ist lesbar, obwohl einige Daten (z. B. Geolokalisierungsdaten, die über nachfolgende asynchrone Aufrufe abgerufen werden) möglicherweise nicht verfügbar sind. Die Ereignisdaten geben an, ob die Initialisierung einen neuen visitorCode generiert hat.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| newVisitorCode | Boolean | true, wenn für diesen Besucher ein neuer (zufälliger) visitorCode generiert wurde (unbekannter / neuer Besucher für Kameleoon), sonst 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;
});
Dieses Ereignis wird ausgelöst, wenn die Kameleoon-Engine die Datenerfassung abschließt. Da die Erfassung häufig Remote-Aufrufe oder asynchrone Methoden umfasst, wird dieses Ereignis ausgelöst, nachdem diese Prozesse abgeschlossen sind.
Die Activation API ist vollständig nutzbar, sobald dieses Ereignis ausgelöst wird. Alle API-Felder enthalten korrekte Werte.
Kameleoon führt Remote-Aufrufe oft nur zu Beginn eines Besuchs durch, daher wird dieses Ereignis bei der ersten Seitenansicht später und bei nachfolgenden Ansichten fast sofort ausgelöst. Während das frühe Lesen von Activation API-Daten bei nachfolgenden Ansichten funktionieren kann, ist das Vorhandensein und die Genauigkeit der Daten nicht garantiert. Es wird dringend empfohlen, auf dieses Ereignis zu lauschen, bevor Lesevorgänge durchgeführt werden (insbesondere für Besuchsdaten wie Geolokalisierung oder Wetter).
window.addEventListener('Kameleoon::RemoteSynchronizationPerformed', function (event) {
var allVisits = event.detail.visits;
});
Dieses Ereignis wird ausgelöst, wenn die Kameleoon-Engine einen Server Synchronization Call (SSC) abschließt, der von der Methode Kameleoon.API.Data.performRemoteSynchronization() initiiert wurde. Dies geschieht beim Abgleich von geräteübergreifenden Verläufen, bei Intelligent Tracking Prevention oder bei Aktualisierungen benutzerdefinierter Daten.
Lesen Sie hier mehr über SSCs.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| visits | Array | Liste der Visit-Objekte, die diesem Besucher entsprechen und von der Data API zurückgegeben werden. |
| currentVisitOnly | Boolean | true, wenn Kameleoon.API.Data.performRemoteSynchronization() mit dem Argument currentVisitOnly auf true gesetzt aufgerufen wurde, sonst false. |
Kameleoon::LegalConsentUpdated
window.addEventListener('Kameleoon::LegalConsentUpdated', function (event) {
var legalConsentUpdate = event.detail.legalConsentUpdate;
});
Dieses Ereignis wird ausgelöst, wenn sich der Status der rechtlichen Einwilligung für den aktuellen Besucher ändert. Zu den Änderungen gehören Akzeptanz (Kameleoon.API.Core.enableLegalConsent()) oder Ablehnung (Kameleoon.API.Core.disableLegalConsent()) für die Module AB Testing oder Personalization. Greifen Sie über Kameleoon.API.Visitor.experimentLegalConsent oder Kameleoon.API.Visitor.personalizationLegalConsent auf den aktualisierten Status zu; das Ereignisobjekt enthält die Aktualisierungsdetails.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| legalConsentUpdate | Object | Aktualisierung, die gerade verarbeitet wurde. Sie folgt dem Format {“AB_TESTING”: true|false, “PERSONALIZATION”: true|false}. Dies könnte also {“AB_TESTING”: false} entsprechen, wenn wir gerade eine Ablehnung nur für das Modul AB Testing registriert haben, oder {“AB_TESTING”: true, “PERSONALIZATION”: true}, wenn eine Akzeptanz für beide Module erfolgt ist. |
Kameleoon::ExperimentTriggered
window.addEventListener('Kameleoon::ExperimentTriggered', function (event) {
var experiment = event.detail.experiment;
var experimentId = experiment.id;
});
Dieses Ereignis wird ausgelöst, wenn ein Experiment ausgelöst wird (d. h. wenn der Besucher dem Zielsegment entspricht). Zusätzliche Optionen, wie Verkehrsausschluss oder Capping, können einem Besucher erlauben, ein Experiment auszulösen, ohne es zu aktivieren (siehe nächstes Ereignis). Wenn das Experiment auf mehreren Seiten ausgelöst wird, wird das Ereignis jedes Mal ausgelöst.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| experiment | Object | Experiment-Objekt |
Kameleoon::ExperimentActivated
window.addEventListener('Kameleoon::ExperimentActivated', function (event) {
var experiment = event.detail.experiment;
var experimentId = experiment.id;
var associatedVariationId = experiment.associatedVariation.id;
});
Dieses Ereignis wird ausgelöst, wenn ein Experiment aktiviert wird (d. h. wenn der Besucher in die Experimentergebnisse einbezogen wird). Die Aktivierung erfolgt, wenn ein Experiment ausgelöst wird und alle Expositionsbedingungen übereinstimmen. Wenn die Aktivierung auf mehreren Seiten erfolgt, wird das Ereignis jedes Mal ausgelöst.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| experiment | Object | Experiment-Objekt |
Kameleoon::PersonalizationTriggered
window.addEventListener('Kameleoon::PersonalizationTriggered', function (event) {
var personalization = event.detail.personalization;
var personalizationId = personalization.id;
});
Dieses Ereignis wird ausgelöst, wenn eine Personalisierung ausgelöst wird (d. h. wenn der Besucher dem Zielsegment entspricht). Zusätzliche Expositionsoptionen, wie z. B. Capping, können die Personalisierungsaktion verhindern (z. B. die Anzeige eines Banners oder Pop-ins). In diesem Szenario wird die Personalisierung nicht aktiviert (siehe nächstes Ereignis). Wenn die Personalisierung auf mehreren Seiten ausgelöst wird, wird das Ereignis jedes Mal ausgelöst.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| personalization | Object | Personalization-Objekt |
Kameleoon::PersonalizationActivated
window.addEventListener('Kameleoon::PersonalizationActivated', function (event) {
var personalization = event.detail.personalization;
var personalizationId = personalization.id;
var associatedVariationId = personalization.associatedVariation.id;
});
Dieses Ereignis wird ausgelöst, wenn eine Personalisierung aktiviert wird (d. h. wenn die Personalisierung auf der Seite angezeigt wird). Die Aktivierung erfolgt, wenn eine Personalisierung ausgelöst wird und alle Expositionsbedingungen übereinstimmen. Wenn die Aktivierung auf mehreren Seiten erfolgt, wird das Ereignis jedes Mal ausgelöst.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| personalization | Object | Personalization-Objekt |
Kameleoon::CustomDataSet
window.addEventListener('Kameleoon::CustomDataSet', function (event) {
var customDataName = event.detail.name;
var customDataValue = event.detail.value;
});
Dieses Ereignis wird ausgelöst, wenn benutzerdefinierte Daten gesetzt werden (d. h. wenn ihr Wert bereitgestellt wird). Dieses Ereignis wird unabhängig von der Erfassungsmethode ausgelöst (Data Layer-Integration, Activation API, Data API oder benutzerdefinierter JS-Code).
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| name | String | Name der benutzerdefinierten Daten. |
| value | Any | Wert der benutzerdefinierten Daten. Der Typ hängt vom definierten Typ der benutzerdefinierten Daten ab. |
Kameleoon::ConversionTriggered
window.addEventListener('Kameleoon::ConversionTriggered', function (event) {
var goal = event.detail.goal;
});
Dieses Ereignis wird ausgelöst, wenn eine Konvertierung ausgelöst wird (d. h. wenn ein Ziel erreicht wird).
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| goal | Object | Goal-Objekt |
Kameleoon::SegmentTriggered
window.addEventListener('Kameleoon::SegmentTriggered', function (event) {
var segment = event.detail.segment;
});
Dieses Ereignis wird ausgelöst, wenn ein aktives Segment ausgelöst wird (d. h. wenn ein Besucher allen Bedingungen des Targeting-Segments entspricht). Ein Segment ist aktiv, wenn es mit einem laufenden Experiment, einer Personalisierung oder dem Audiences-Tool verknüpft ist. Kameleoon betrachtet alle anderen Segmente als inaktiv.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| segment | Object | Segment-Objekt |
Kameleoon::ConversionScoreComputed
window.addEventListener('Kameleoon::ConversionScoreComputed', function (event) {
var kcs = event.detail.kcs;
var segmentId = event.detail.targetSegment.id;
});
Dieses Ereignis wird ausgelöst, wenn ein als Schlüsselmoment definiertes Segment ausgelöst wird. Zu diesem Zeitpunkt berechnen Machine-Learning-Algorithmen den Kameleoon Conversion Score (KCS) und stellen ihn bereit.
Im Ereignis verfügbare Daten
| Name | Typ | Beschreibung |
|---|
| kcs | Number | KCS (Kameleoon Conversion Score), eine ganze Zahl von 0 bis 100. |
| targetSegment | Object | Segment-Objekt, das dem Schlüsselmoment entspricht, an dem der KCS berechnet wird. |