Skip to main content
Mit dem Kameleoon JavaScript SDK können Sie Experiments ausführen und feature flags aktivieren. Die Integration unseres SDK in Ihre Webanwendung ist einfach und sein Footprint (Speicher- und Netzwerknutzung) ist gering. Erste Schritte: Hilfe für den Einstieg finden Sie im Entwicklerleitfaden. Changelog: Details zur neuesten Version des JavaScript / TypeScript SDK finden Sie im changelog. SDK Methoden: Die vollständige Referenzdokumentation des JavaScript SDK, siehe den Abschnitt Referenz.

Entwicklerleitfaden

Dieser Abschnitt hilft Ihnen beim Einstieg und stellt Ihnen einige fortgeschrittenere Konzepte vor.

Erste Schritte

Installation

Das Kameleoon SDK Installation-Tool ist die beste Methode, um das SDK schnell zu installieren. Der SDK Installer hilft Ihnen bei der Installation des SDK Ihrer Wahl, beim Generieren eines einfachen Codebeispiels und beim Konfigurieren von externe Abhängigkeiten falls erforderlich. Um das SDK Installation-Tool zu verwenden, installieren und führen Sie es global aus:
Oder führen Sie es direkt mit npx:
Sie können das JavaScript SDK auch als einzelne Datei mit dem <script> -Tag in Ihre App einbinden. Sie können dann alle SDK-Methoden über das globale Objekt KameleoonSDK.Beispiel:
index.html
app.js
Um immer die neueste Version eines Major-Releases zu verwenden, verwenden Sie das folgende Skript, wobei 4 die aktuelle Hauptversion ist:
Um auf einer bestimmten Version zu bleiben, geben Sie die vollständige Versionsnummer stattdessen an. Zum Beispiel für Version 4.24.0, die die früheste verfügbare Version als statisches Skript ist, verwenden Sie das folgende:
Versionen können auf der Release-Seite referenziert werden.
Standardmäßig verwendet das statische Skript das optimierte SDK-Bundle, in dem INFO und DEBUG Log-Nachrichten entfernt werden, um die Bundle-Größe zu reduzieren.Wenn Sie verwenden KameleoonLogger.setLogLevel(LogLevel.DEBUG) or KameleoonLogger.setLogLevel(LogLevel.INFO), verwenden Sie full static Skript stattdessen.

Kameleoon-Client initialisieren

Hier ist eine Schritt-für-Schritt-Anleitung zum Konfigurieren des JavaScript SDK für Ihre Anwendung.
Um zu beginnen, müssen Entwickler einen Einstiegspunkt für das JavaScript SDK erstellen, indem sie eine neue Instanz des Kameleoon-Clients erstellen. Verwenden Sie KameleoonClient, um Feature Experiments auszuführen und den Status von Feature Flags und deren Variationen abzurufen. KameleoonClient Initialisierung wird asynchron durchgeführt, um sicherzustellen, dass der Kameleoon-API-Aufruf erfolgreich war. Zur Initialisierung verwenden Sie die Methode initialize(). Verwenden Sie async/await, Promise.then() oder eine beliebige andere Methode, um die asynchrone Client-Initialisierung zu handhaben.
Parameter
Konfigurationsparameter
Option 1 (Empfohlen): Verwenden JSON.stringify()
Option 2: JSON-Rohdaten als Zeichenfolge (Sonderzeichen maskieren)
Das Senken von dataFileRefreshInterval erhöht, wie oft das SDK im Hintergrund nach einer neueren Konfiguration sucht, aber die zwischengespeicherte Datendatei eines Besuchers bleibt weiterhin nutzbar, bis sie älter als dataFileCacheTtl wird (standardmäßig 90 Minuten). Verringern Sie stattdessen dataFileCacheTtl, um zu verkürzen, wie lange ein Besucher weiterhin anhand einer veralteten zwischengespeicherten Konfiguration ausgewertet werden kann. Andernfalls steigt der Traffic in ein neu gestartetes Experiment oder Feature Flag schrittweise an, statt sofort das volle Volumen zu erreichen. Weitere Details finden Sie unter Auswirkung auf neu gestartete Experimente und Feature Flags.
Verwenden Sie nicht mehrere Client-Instanzen in einer Anwendung, da dies noch nicht vollständig unterstützt wird. Mehrere Client-Instanzen können dazu führen, dass die lokale Speicher-Konfiguration überschrieben wird und Fehler verursacht.

Ein Feature Flag aktivieren

Zuweisen einer eindeutigen ID an einen Benutzer
Um einem Benutzer eine eindeutige ID zuzuweisen, können Sie die Methode getVisitorCode() verwenden. Wenn ein Besucher-Code nicht vorhanden ist (aus dem Request-Header-Cookie), generiert die Methode eine zufällige eindeutige ID oder verwendet einen defaultVisitorCode, den Sie generiert haben. Die ID wird dann in einem Response-Header-Cookie gesetzt. Wenn Sie Kameleoon im Hybrid-Modus verwenden, stellt der Aufruf der Methode getVisitorCode() sicher, dass die eindeutige ID (Besucher-Code) zwischen der Anwendungsdatei engine.js (zuvor kameleoon.js genannt) und dem SDK gemeinsam genutzt wird.
Abrufen einer Flag-Konfiguration
Um ein Feature Flag in Ihrem Code zu implementieren, müssen Sie zuerst das Feature Flag in Ihrem Kameleoon-Konto erstellen. Um den Status oder die Variation eines Feature Flags für einen bestimmten Benutzer zu bestimmen, sollten Sie die Methode getVariation() oder isFeatureFlagActive() verwenden, um die Konfiguration basierend auf dem featureKey abzurufen. Die Methode getVariation() handhabt sowohl einfache Feature Flags mit AN/AUS-Zuständen als auch komplexere Flags mit mehreren Variationen. Die Methode ruft die entsprechende Variation für den Benutzer ab, indem sie die Feature-Regeln überprüft, die Variation zuweist und basierend auf featureKey und visitorCode zurückgibt. Die Methode isFeatureFlagActive() kann verwendet werden, wenn Sie die Konfiguration eines einfachen Feature Flags abrufen möchten, das nur einen AN- oder AUS-Zustand hat, im Gegensatz zu komplexeren Feature Flags mit mehreren Variationen oder Targeting-Optionen. Wenn Ihr Feature Flag zugehörige Variablen hat (z. B. spezifische Verhaltensweisen, die an jede Variation gebunden sind), ermöglicht getVariation() es Ihnen auch, auf das Objekt Variation zuzugreifen, das Details über die zugewiesene Variation und ihr zugehöriges Experiment bietet. Diese Methode überprüft, ob der Benutzer ins Visier genommen wird, findet die zugewiesene Variation des Besuchers und speichert sie. Wenn track=true, sendet das SDK das Belichtungs-Event zum angegebenen Experiment bei der nächsten Tracking-Anfrage, die automatisch basierend auf dem tracking_interval_millisecond des SDK ausgelöst wird. Standardmäßig ist dieses Intervall auf 1.000 Millisekunden (1 Sekunde) eingestellt. Mit der Methode getVariation() können Sie steuern, ob Tracking durchgeführt wird. Wenn track=false, werden keine Belichtungs-Events vom SDK gesendet. Dies ist nützlich, wenn Sie das Tracking von Daten durch das SDK nicht durchführen möchten und stattdessen auf clientseitiges Tracking verlassen möchten, das von der Kameleoon Engine verwaltet wird. Zusätzlich ist das Setzen von track=false hilfreich bei der Verwendung der Methode getVariations(), bei der Sie möglicherweise nur die Variationen für alle Flags benötigen, ohne beliebige Tracking-Events auszulösen. Wenn Sie mehr über die Funktionsweise von Tracking erfahren möchten, sehen Sie sich diesen Artikel an.
Datenelemente hinzufügen, um einen Benutzer anzusprechen oder Besuche in Berichten zu filtern/aufzuschlüsseln
Um einen Benutzer ins Visier zu nehmen, stellen Sie sicher, dass Sie relevante Datenpunkte zu seinem Profil hinzugefügt haben, bevor Sie die Feature-Variation abrufen oder überprüfen, ob das Flag aktiv ist. Verwenden Sie die Methode addData(), um diese Datenpunkte zum Profil des Benutzers hinzuzufügen. Um auf anderen Geräten erfasste Datenpunkte abzurufen oder auf frühere Benutzerdaten zuzugreifen (die clientseitig erfasst werden, wenn Kameleoon im Hybrid-Modus verwendet wird), verwenden Sie die Methode getRemoteVisitorData(). Diese Methode ruft asynchron Daten von den Servern ab. Es ist wichtig, getRemoteVisitorData() vor dem Abrufen der Variation oder der Überprüfung, ob das Feature Flag aktiv ist, aufzurufen, da diese Daten möglicherweise erforderlich sind, um einen Benutzer einer bestimmten Variation zuzuweisen. Wenn Sie mehr über die verfügbaren Targeting-Bedingungen erfahren möchten, sehen Sie sich den ausführlichen Artikel zu diesem Thema an. Zusätzlich sind die Datenpunkte, die Sie zum Besucher-Profil hinzufügen, beim Analysieren Ihrer Experiments verfügbar, sodass Sie Ihre Ergebnisse nach Faktoren wie Gerät und Browser filtern und aufschlüsseln können. Der Kameleoon Hybrid-Modus erfasst automatisch eine Vielzahl von Datenpunkten clientseitig und macht es einfach, Ihre Ergebnisse basierend auf diesen vorgesammelten Datenpunkten aufzuschlüsseln. Sehen Sie sich die vollständige Liste hier an. Wenn Sie zusätzliche Datenpunkte verfolgen müssen, die über das hinausgehen, was automatisch erfasst wird, können Sie die Custom-Data-Funktion von Kameleoon verwenden. Custom Data ermöglicht es Ihnen, spezifische Informationen zu erfassen und zu analysieren, die für Ihre Experiments relevant sind. Vergessen Sie nicht, die Methode flush() aufzurufen, um die erfassten Daten zur Analyse an die Kameleoon-Server zu senden.
Um sicherzustellen, dass Ihre Ergebnisse genau sind, wird empfohlen, Bots mithilfe des Datentyps UserAgent herauszufiltern.
Tracking Ziel Konversionen
Wenn ein Benutzer eine gewünschte Aktion abschließt (z. B. einen Kauf tätigt), wird dies als Konversion erfasst. Um Konversionen zu verfolgen, verwenden Sie die Methode trackConversion() und geben Sie die erforderlichen Parameter visitorCode und goalId an. Die Konversions-Tracking-Anfrage wird zusammen mit der nächsten geplanten Tracking-Anfrage gesendet, die das SDK in regelmäßigen Intervallen sendet (definiert durch tracking_interval_millisecond). Wenn Sie die Anfrage sofort senden möchten, verwenden Sie die Methode flush() mit dem Parameter instant=true.
Events an Analytics-Lösungen senden
Um Konversionen zu verfolgen und Belichtungs-Events an Ihre Customer-Analytics-Lösung zu senden, müssen Sie zunächst Kameleoon im Hybrid-Modus implementieren. Verwenden Sie dann die Methode getEngineTrackingCode(). Die Methode getEngineTrackingCode() ruft den eindeutigen Tracking-Code ab, der erforderlich ist, um Belichtungs-Events an Ihre Analytics-Lösung zu senden. Die Verwendung dieser Methode ermöglicht es Ihnen, Events aufzuzeichnen und an Ihre gewünschte Analytics-Plattform zu senden.

Benutzerdefinierten Bucketing-Schlüssel verwenden

Standardmäßig verwendet Kameleoon eine eindeutige, anonyme Besucher-ID (visitorCode), um Benutzer Feature Flag-Variationen zuzuweisen. Diese ID wird typischerweise auf dem Gerät des Benutzers generiert und gespeichert (in einem Browser-Cookie für clientseitige und serverseitige SDKs—in persistentem Speicher für mobile SDKs). In bestimmten Szenarien müssen Sie jedoch möglicherweise sicherstellen, dass alle Benutzer der gleichen Organisation die gleiche Variante eines Feature Flags sehen. Die Option Benutzerdefinierten Bucketing-Schlüssel ermöglicht es Ihnen, dieses Standardverhalten zu überschreiben, indem Sie Ihren eigenen benutzerdefinierten Bezeichner für das Bucketing bereitstellen. Diese Überschreibung stellt sicher, dass die Zuweisungslogik von Kameleoon Ihren angegebenen Schlüssel anstelle des Standard-visitorCode verwendet.

Anwendungsfälle

Die Verwendung eines benutzerdefinierten Bucketing-Schlüssels ist wesentlich für die Aufrechterhaltung von Konsistenz und Genauigkeit in Ihren Feature Flag-Zuweisungen, besonders in diesen Situationen:
  • Kontolevel- oder organisatorische Experiments: Für B2B-Produkte oder Szenarien, in denen Sie alle Benutzer aus der gleichen Organisation der gleichen Variation zuweisen möchten, können Sie einen Bezeichner wie accountId verwenden. Benutzerdefinierte Bucketing-Schlüssel sind entscheidend für A/B-Tests von Funktionen, die ein gesamtes Team oder Unternehmen beeinflussen.
Durch die Implementierung eines benutzerdefinierten Bucketing-Schlüssels stellen Sie eine größere Konsistenz und Genauigkeit in Ihren Experiments sicher, was zu zuverlässigeren Ergebnissen und einem besseren Benutzererlebnis führt.

Technische Details

Wenn Sie einen benutzerdefinierten Bucketing-Schlüssel für ein Feature Flag konfigurieren, geben Sie Kameleoon einen spezifischen Bezeichner aus den Daten Ihrer Anwendung an:
  • Bereitstellen des benutzerdefinierten Schlüssels: Sie stellen Ihren benutzerdefinierten Bezeichner dem Kameleoon SDK mit der Methode addData() bereit. In dieser Methode übergeben Sie Ihren gewählten benutzerdefinierten Bucketing-Schlüssel als Objekt CustomData. Hier bezieht sich newVisitorCode auf den Bezeichner, den Sie für Ihr Bucketing verwenden möchten (z. B. die neue userId oder accountId).
Damit der benutzerdefinierte Bucketing-Schlüssel ordnungsgemäß funktioniert, muss er auch für das Feature Flag während des Flag-Erstellungs- oder Bearbeitungsprozesses definiert und konfiguriert werden. Ohne diese entsprechende Konfiguration wendet die Bucketing des SDK Ihren benutzerdefinierten Schlüssel nicht an. Ausführliche Anweisungen zum Einrichten in Kameleoon finden Sie in diesem Artikel.
  • Bucketing-Logik: Sobald ein benutzerdefinieter Bucketing-Schlüssel durch die Methode addData() bereitgestellt wird, verwenden alle Hash-Berechnungen zum Zuweisen von Benutzern zu Variationen diesen newVisitorCode (Ihren benutzerdefinierten Schlüssel) anstelle des Standard-visitorCode. Die Verwendung des newVisitorCode bedeutet, dass die Bucketing-Entscheidung an Ihren benutzerdefinierten Bezeichner gebunden ist und konsistente Zuweisungen in verschiedenen Kontexten sicherstellt, in denen dieser Bezeichner vorhanden ist.
  • Daten-Tracking und Analytik: Es ist wichtig zu beachten, dass der newVisitorCode (Ihr benutzerdefinierter Schlüssel) zwar für Bucketing-Entscheidungen verwendet wird, aber alle nachfolgenden Daten (Tracking-Events und Konversionen zum Beispiel) werden gesendet und dem ursprünglichen visitorCode zugeordnet. Diese Trennung stellt sicher, dass Ihre Analytik individuelle Benutzer-Journeys und Interaktionen innerhalb des breiteren Kontexts Ihres Experiments genau widerspiegelt, auch wenn das Bucketing auf einer höheren Ebene (wie ein Konto) oder über mehrere Geräte/Sitzungen durchgeführt wird. Ihre ursprünglichen Besucherdaten bleiben für umfassende Berichte intakt.

Technische Anforderungen

So verwenden Sie einen benutzerdefinierten Bucketing-Schlüssel effektiv:
  • Der Schlüssel muss ein string sein.
  • Er muss eindeutig für die Entität sein, die Sie buckeln möchten (z. B. wenn Sie userId verwenden, sollte die ID jedes Benutzers eindeutig sein).
  • Der Schlüssel muss dem SDK in dem exakten Moment verfügbar sein, in dem die Feature Flag-Entscheidung für diesen Benutzer oder diese Anfrage ausgewertet wird.

Targeting-Bedingungen

Die Kameleoon SDKs unterstützen eine Vielzahl vordefinierter Targeting-Bedingungen, die Sie verwenden können, um Benutzer in Ihren Campaigns ins Visier zu nehmen. Eine Liste der von diesem SDK unterstützten Bedingungen finden Sie unter Besuchsverlauf verwenden, um Benutzer ins Visier zu nehmen. Sie können auch Ihre eigenen externen Daten zum Targeting von Benutzern verwenden.

Protokollierung

Das SDK generiert Logs, um verschiedene interne Prozesse und Probleme widerzuspiegeln.

Log-Level

Das SDK unterstützt die Konfiguration der Beschränkung der Protokollierung nach Protokollierungsstufe.

Benutzerdefinierte Handhabung von Logs

Das SDK schreibt seine Logs standardmäßig auf die Konsolenausgabe. Dieses Verhalten kann überschrieben werden.
Die Begrenzung von Logs nach einem Log-Level wird unabhängig von der Log-Handling-Logik durchgeführt.

Domain-Informationen

Sie geben eine Domain als domain in der KameleoonClient Konfiguration an, die zum Speichern des Kameleoon-Besucher-Codes in Cookies verwendet wird. Domains sind wichtig bei der Arbeit mit den Methoden getVisitorCode und setLegalConsent. Die von Ihnen angegebene Domain wird im Cookie als Schlüssel Domain= gespeichert.

Domain festlegen

Die Domain, die Sie angeben, zeigt an, ob die URL-Adresse das Cookie verwenden kann. Zum Beispiel, wenn Ihre Domain www.example.com ist, ist das Cookie nur von einer www.example.com URL verfügbar. Dies bedeutet, dass Seiten mit der Domain app.example.com das Cookie nicht verwenden können. Für mehr Flexibilität mit Subdomains können Sie die Domain mit einem Punkt (.) angeben. Zum Beispiel ermöglicht die Domain .example.com dem Cookie, auf app.example.com und login.example.com zu funktionieren.
Sie können keine regulären Ausdrücke, Sonderzeichen, Protokoll oder Portnummern in domain verwenden. Zusätzlich kann eine spezifische Liste von Subdomains nicht mit dem Präfix . verwendet werden.
Hier ist eine kleine Domain-Spickzettel:

Entwicklung auf localhost

localhost wird immer als schlechte Domain angesehen, was das Testen der Domain bei der Entwicklung auf localhost schwierig macht. Es gibt zwei Möglichkeiten, dieses Problem zu vermeiden:
  • Geben Sie das Feld domain im SDK-Client während des Testens nicht an.
  • Erstellen Sie eine lokale Domain für localhost. Zum Beispiel:
  • Navigieren Sie unter Linux zu /etc/hosts oder unter Windows zu c:\Windows\System32\Drivers\etc\hosts.
    • Öffnen Sie hosts mit Superuser- oder Administratorrechten.
    • Fügen Sie eine Domain zum localhost Port hinzu, zum Beispiel: 127.0.0.1 app.com
    • Jetzt können Sie Ihre App lokal auf app.com:{my_port} ausführen und .app.com als Ihre Domäne angeben

Externe Abhängigkeiten

Das SDK externe Abhängigkeiten verwenden das dependency injection Muster, um Ihnen die Möglichkeit zu geben, Ihre eigenen Implementierungen für bestimmte Teile des SDK bereitzustellen.
Im JavaScript SDK haben alle externen Abhängigkeiten Standard-Implementierungen, die eine native Browser-API verwenden, sodass Sie diese nur bereitstellen müssen, wenn eine andere API für spezifische Anwendungsfälle erforderlich ist.
Here’s die Liste of verfügbar externe Abhängigkeiten: Das folgende Beispiel implementiert externe Abhängigkeiten. Um eine Schnittstelle aus einem SDK zu importieren, erstellen Sie eine Klasse, die die Schnittstelle implementiert, und übergeben Sie die instanziierte Klasse an das SDK.

Storage

EventSource

VisitorCodeManager

Requester

Fehlerbehandlung

Fast jede KameleoonClient Methode kann gelegentlich einen Fehler werfen. Diese Fehler sind absichtlich vordefinierte KameleoonErrors die die native JavaScript Error Klasse erweitern und nützliche Meldungen sowie spezielle type Felder mit einem Typ KameleoonException bereitstellen. KameleoonException ist ein enum containing alle possible Fehler Typen. Um genau zu wissen, welchen Typ KameleoonException die Methode werfen kann, überprüfen Sie den Bereich Throws in der Methodenbeschreibung auf dieser Seite, oder bewegen Sie die Maus über die Methode in Ihrer IDE, um die jsdocs-Beschreibung zu sehen. Das Behandeln von Fehlern macht Ihre Anwendung stabiler und vermeidet technische Probleme.

Cross-Device-Experimentation

Um Besucher zu unterstützen, die eine App von mehreren Geräten aus aufrufen, ermöglicht Kameleoon die Synchronisierung zuvor erfasster Besucherdaten über alle Geräte des Besuchers hinweg und die Abstimmung des Besuchsverlaufs über Geräte durch Cross-Device-Experimentation. Fallstudien und detaillierte Informationen darüber, wie Kameleoon Daten über Geräte hinweg handhabt, finden Sie im Artikel über Cross-Device-Experimentation.

Synchronisierung benutzerdefinierter Daten über Geräte hinweg

Obwohl benutzerdefinierte Mapping-Synchronisierung verwendet wird, um Besucherdaten über Geräte hinweg auszurichten, ist dies nicht immer erforderlich. Nachfolgend finden Sie zwei Szenarien, in denen benutzerdefinierte Mapping-Synchronisierung nicht erforderlich ist: Same Benutzer ID across devices Wenn dieselbe Benutzer-ID konsistent über alle Geräte hinweg verwendet wird, wird die Synchronisierung automatisch ohne benutzerdefinierte Mapping-Synchronisierung durchgeführt. Es ist ausreichend, die getRemoteVisitorData() Methode aufzurufen, wenn Sie die zwischen mehreren Geräten erfassten Daten synchronisieren möchten. Multi-server Instanzen mit consistent IDs In komplexen Setups mit mehreren Servern (zum Beispiel verteilten Serverinstanzen), in denen dieselbe Benutzer-ID serverübergreifend verfügbar ist, genügt die Synchronisierung zwischen den Servern (mit getRemoteVisitorData()) ohne zusätzliche benutzerdefinierte Mapping-Synchronisierung. Kunden, die zusätzliche Daten benötigen, können sich auf die Beschreibung der Methode getRemoteVisitorData() beziehen, um weitere Anleitung zu erhalten. Im folgenden Code wird angenommen, dass derselbe eindeutige Bezeichner (in diesem Fall der visitorCode, der auch als userId bezeichnet werden kann) konsistent zwischen den beiden Geräten verwendet wird, um einen genauen Datenabruf zu ermöglichen.
Wenn Sie erfasste Daten in Echtzeit synchronisieren möchten, müssen Sie den Bereich Besucher für Ihre benutzerdefinierten Daten wählen.
Device One
Device Two

Sitzungen mit benutzerdefinierten Daten zusammenführen

Cross-Device-Experimentation ermöglicht das Kombinieren der Verlaufsdaten eines Besuchers über alle seine Geräte hinweg (Historienabstimmung). Die Historienabstimmung ermöglicht das Zusammenführen verschiedener Besuchersitzungen zu einer. Um den Besuchsverlauf abzustimmen, verwenden Sie CustomData, um einen eindeutigen Bezeichner für den Besucher bereitzustellen. Weitere Informationen finden Sie in der dedizierten Dokumentation.Wenn die geräteübergreifende Abstimmung aktiviert ist, ruft das Aufrufen von getRemoteVisitorData() mit dem Parameter userId alle bekannten Daten für einen bestimmten Benutzer ab.Sitzungen mit denselben Kennung werden immer die gleiche Variation in einem Experiment angezeigt. In der Besucheransicht der Ergebnisseiten Ihres Experiments werden diese Sitzungen als ein einzelner Besucher angezeigt.Die SDK-Konfiguration stellt sicher, dass verknüpfte Sitzungen immer die gleiche Variation des Experiments sehen. Es gibt jedoch einige Einschränkungen bei der geräteübergreifenden Variationsallokation. Diese Einschränkungen sind hier dargelegt.Folgen Sie dem Leitfaden zum Aktivieren der Cross-Device-Historienabstimmung, um Ihre benutzerdefinierten Daten auf der Kameleoon-Plattform einzurichten.Danach können Sie das SDK normal verwenden. Die folgenden Methoden, die möglicherweise hilfreich sind im Kontext der Sitzungszusammenführung:
  • getRemoteVisitorData() mit hinzugefügtem UniqueIdentifier(true) - zum Abrufen von Daten für alle verknüpften Besucher.
  • trackConversion() oder flush() mit hinzugefügtem UniqueIdentifier(true)-Daten - um einige Daten für einen bestimmten Besucher zu verfolgen, der mit einem anderen Besucher verknüpft ist.
Da die benutzerdefinierten Daten, die Sie als Bezeichner verwenden, auf den Bereich Besucher gesetzt sein müssen, müssen Sie geräteübergreifende Synchronisierung benutzerdefinierter Daten verwenden, um den Bezeichner mit der Methode getRemoteVisitorData() auf jedem Gerät abzurufen.
Hier ist ein Beispiel, wie Sie benutzerdefinierte Daten zum Zusammenführen von Sitzungen verwenden.
Login Page
Application Page

Utilities

Das SDK hat eine Reihe von Utility-Methoden, die Sie verwenden können, um Ihren Entwicklungsprozess zu vereinfachen. Alle Methoden sind als statische Member der Klasse KameleoonUtils dargestellt.

simulateSuccessRequest

Verwenden Sie die Methode simulateSuccessRequest, um eine erfolgreiche Anfrage an den Kameleoon-Server zu simulieren. Sie kann für benutzerdefinierte Requester-Implementierungen nützlich sein, wenn ein Entwickler eine erfolgreiche Anfrage simulieren muss (z. B. zum Deaktivieren von Tracking).
Parameter
Der Datentyp SimulateRequestDataType ist wie folgt definiert:
  • RequestType.Tracking - null
  • RequestType.ClientConfiguration - ClientConfigurationDataType
  • RequestType.RemoteData - JSONType
Rückgabewert

getCookieValue

Verwenden Sie die Methode getCookieValue, um eine allgemeine Cookie-Zeichenfolge (key_1=value_1; key_2=value_2; ...) zu analysieren und den Wert eines bestimmten Cookie-Schlüssels zu erhalten. Diese Methode ist nützlich, wenn Sie mit einer benutzerdefinierten Implementierung von VisitorCodeManager arbeiten.
Parameter
Rückgabewert

Referenz

Dies ist die vollständige Referenzdokumentation für das Kameleoon JavaScript SDK.

Initialisierung

initialize()

Eine asynchrone Methode zur KameleoonClient-Initialisierung durch Abrufen von Kameleoon-SDK-bezogenen Daten vom Server oder durch Abrufen von Daten aus einer lokalen Quelle, wenn die Daten aktuell sind oder das Aktualisierungsintervall nicht erreicht wurde.
  • Wenn die SDK-Konfiguration nicht abgerufen werden konnte, aber eine ältere Konfiguration im SDK-Speicher verfügbar ist, verwendet das SDK die ältere Konfiguration als Fallback und initialize wirft keinen Fehler.
  • Das SDK unterstützt einen Offline-Modus.
Im Offline-Modus sendet das SDK fehlgeschlagene Tracking-Anfragen für eine der folgenden Methoden automatisch erneut, sobald es erkennt, dass die Internetverbindung wiederhergestellt wurde:
Rückgabewert
Ausgelöste Ausnahmen

isReady()

isReady() prüft, ob das SDK einsatzbereit ist, das heißt, ob seine Konfiguration erfolgreich geladen wurde. Im Gegensatz zu initialize() gibt diese Methode sofort ein Ergebnis zurück, ohne zu blockieren oder eine Ausnahme auszulösen.
Sobald das SDK bereit ist, bleibt es bereit. Wenn eine spätere Konfigurationsaktualisierung fehlschlägt, verwendet das SDK weiterhin die zuvor heruntergeladene Konfiguration und kehrt nicht in einen nicht bereiten Zustand zurück.
Rückgabewert

Feature-Flags und Variationen

getVariation()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track)
Ruft die Variation ab, die einem bestimmten Besucher für ein spezifisches Feature Flag zugewiesen ist. Diese Methode nimmt featureKey als obligatorisches Argument und track als optionales Argument. Das Argument track ist optional und hat als Standardwert true. Sie gibt die Variation zurück, die dem Besucher zugewiesen ist. Wenn der Besucher nicht mit einer der Feature-Flag-Regeln verknüpft ist, gibt die Methode die Standard-Variation für das angegebene Feature Flag zurück. Stellen Sie sicher, dass eine ordnungsgemäße Fehlerbehandlung in Ihrem Code implementiert ist, um potenzielle Ausnahmen zu verwalten.
Die Standard-Variation bezieht sich auf die Variation, die einem Besucher zugewiesen wird, wenn dieser keine vordefinierten Bereitstellungsregeln für ein Feature Flag erfüllt. Mit anderen Worten, es ist die Fallback-Variation, die auf alle Benutzer angewendet wird, die nicht durch spezifische Regeln anvisiert werden. Sie wird als Variation im Abschnitt “Dann für alle anderen…” in einer Verwaltungsschnittstelle dargestellt.
Parameter
Ein Objekt vom Typ GetVariationParamsType mit den folgenden Eigenschaften:
Rückgabewert
Ausgelöste Ausnahmen

getVariations()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track)
  • 🎯 Ereignisse: EventType.Evaluation
Ruft eine Zuordnung von Variation-Objekten ab, die einem bestimmten Besucher über alle Feature Flags zugewiesen sind. Diese Methode durchläuft alle verfügbaren Feature Flags und gibt die zugewiesene Variation für jedes Flag zurück, das dem angegebenen Besucher zugeordnet ist. Sie nimmt visitorCode als obligatorisches Argument, während onlyActive und track optional sind.
  • Wenn onlyActive auf true gesetzt ist, gibt die Methode getVariations() Feature-Flag-Variationen zurück, sofern der Benutzer nicht mit der off-Variation gruppiert ist.
  • Der Parameter track steuert, ob die Methode die Variationszuweisungen verfolgt oder nicht. Standardmäßig ist sie auf true gesetzt. Wenn sie auf false gesetzt ist, wird das Tracking deaktiviert.
Die zurückgegebene Map besteht aus Feature-Flag-Schlüsseln als Schlüsseln und ihren entsprechenden Variation-Objekten als Werten. Wenn keine Variation für ein Feature Flag zugewiesen ist, gibt die Methode die Standard-Variation für dieses Flag zurück. Eine ordnungsgemäße Fehlerbehandlung sollte implementiert werden, um potenzielle Ausnahmen zu verwalten.
Die Standard-Variation bezieht sich auf die Variation, die einem Besucher zugewiesen wird, wenn dieser keine vordefinierten Lieferregeln für ein Feature Flag erfüllt. Mit anderen Worten ist es die Fallback-Variation, die auf alle Benutzer angewendet wird, die nicht durch spezifische Regeln angesprochen werden. Sie wird als Variation im Abschnitt „Dann für alle anderen…” in einer Verwaltungsschnittstelle dargestellt.
Parameter
Ein Objekt vom Typ GetVariationParamsType mit den folgenden Eigenschaften:
Rückgabewert
Ausgelöste Ausnahmen

isFeatureFlagActive()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom track-Parameter)
  • 🎯 Ereignisse: EventType.Evaluation
Die Methode isFeatureFlagActive() gibt einen booleschen Wert zurück, der angibt, ob der durch visitorCode identifizierte Besucher das angegebene featureKey aktiv hat. Diese Methode prüft das Targeting, ermittelt die Variation für den Besucher und speichert diese Information im Speicher. Zusätzlich sendet sie eine Tracking-Anfrage. Es gibt auch eine Überladung dieser Methode, die es Ihnen ermöglicht, einen track-Parameter zu übergeben, den Sie verwenden können, um das Tracking der Feature-Bewertung zu deaktivieren.
Nur Besucher mit einem aktiven Feature Flag müssen als Zielgruppe angesprochen werden.
Kameleoon verwendet Tracking, um Sitzungen und Besucher zu zählen, wenn Sie bestimmte Methoden aufrufen, wie zum Beispiel isFeatureFlagActive(), getVariation() oder getVariations().Verwenden Sie den Standard-Wert true für den track-Parameter, wenn Sie Besucher einer Variation aussetzen und diese zählen müssen. Setzen Sie den track-Parameter auf false, nur wenn Sie diese Methoden aufrufen, bevor Sie Besucher aussetzen.Wenn Sie beispielsweise getVariations() aufrufen, um alle Variationen abzurufen, bevor Sie Besucher aussetzen, setzen Sie den track-Parameter auf false. Diese Einstellung verhindert, dass Kameleoon eine Sitzung vorzeitig zählt. Sie können das Tracking später auslösen, wenn Sie den Besucher explizit aussetzen.Kameleoon sendet standardmäßig jede Sekunde Tracking-Daten. Sie können dieses Intervall mithilfe der Tracking-Intervallkonfigurationsoption auf bis zu 5 Sekunden konfigurieren. Kameleoon gruppiert Tracking-Ereignisse in einer einzelnen Sitzung, solange das Intervall zwischen Ereignissen weniger als 30 Minuten beträgt. Wenn mehr als 30 Minuten zwischen Tracking-Ereignissen verstreichen, zählt Kameleoon die Ereignisse als separate Sitzungen. Ein Besuch erscheint in Ihren Berichten 30 Minuten nach dem letzten aufgezeichneten Ereignis in der Sitzung.
Die Methode isFeatureFlagActive() wertet die bereitgestellte Variante aus, nicht den Zustand des Master-Flags. Wenn Sie Regeln ausschließen, verwendet die Methode den Standard-Zustand Dann für alle anderen. Wenn Sie Off für diesen Standard-Zustand auswählen, gibt die Methode immer false zurück, auch wenn das Master-Feature-Flag On ist.
Parameter
Es gibt two overloads verfügbar for diese Methode:
  1. Two Parameter overload:
Diese Überladung ist veraltet und wird in der nächsten Hauptversion entfernt. Verwenden Sie die neue Überladung mit einem Objektparameter.
  1. Objektparameter-Überladung vom Typ IsFeatureFlagActiveParamsType:
Rückgabewert
Ausgelöste Ausnahmen

setForcedVariation()

Die Methode ermöglicht es Ihnen, eine spezifische Variation einem Benutzer programmgesteuert zuzuweisen und dabei den standardmäßigen Evaluierungsprozess zu umgehen. Dies ist besonders wertvoll für kontrollierte Experimente, bei denen die übliche Evaluierungslogik nicht erforderlich ist oder übersprungen werden muss. Dies kann auch in Szenarien wie Debugging oder benutzerdefinierten Tests hilfreich sein. Wenn eine erzwungene Variation festgelegt ist, setzt sie Kameleoons Echtzeit-Evaluierungslogik außer Kraft. Prozesse wie Segmentierung, Targeting-Bedingungen und algorithmische Berechnungen werden übersprungen. Um Segmentierung und Targeting-Bedingungen während eines Experiments zu bewahren, setzen Sie stattdessen forceTargeting=false.
Simulierte Variationen haben immer Vorrang in der Ausführungsreihenfolge. Wenn eine simulierte Variationsberechnung ausgelöst wird, wird sie vollständig verarbeitet und zuerst abgeschlossen.
Eine erzwungene Variation wird genauso behandelt wie eine ausgewertete Variation. Sie wird in der Analyse verfolgt und im Benutzerkontext wie jede standardmäßige ausgewertete Variation gespeichert, um Konsistenz in der Berichterstellung zu gewährleisten. Die Methode kann unter bestimmten Bedingungen Ausnahmen auslösen (z. B. ungültige Parameter, Benutzerkontext oder interne Probleme). Eine ordnungsgemäße Ausnahmbehandlung ist unerlässlich, um sicherzustellen, dass Ihre Anwendung stabil und widerstandsfähig bleibt.
Es ist wichtig, erzwungene Variationen von simulierten Variationen zu unterscheiden:
  • Erzwungene Variationen: Sind spezifisch für ein einzelnes Experiment.
  • Simulierte Variationen: Beeinflussen das Gesamtergebnis des Feature Flags.
Parameter
Ein Objekt vom Typ SetForcedVariationParametersType mit den folgenden Eigenschaften:
Ausgelöste Ausnahmen
In den meisten Fällen muss nur der grundlegende Fehler KameleoonException behandelt werden, wie im Beispiel gezeigt. Falls jedoch verschiedene Fehlertypen eine Antwort erfordern, behandeln Sie diese einzeln basierend auf spezifischen Anforderungen. Darüber hinaus können für erhöhte Zuverlässigkeit allgemeine Sprachfehler durch Einbindung von Error behandelt werden.

evaluateAudiences()

  • 📨 Sendet Tracking-Daten an Kameleoon
Diese Methode wertet Besucher gegen alle verfügbaren Audiences-Explorer-Segmente aus und verfolgt diejenigen, die entsprechen. evaluateAudiences() sollte nach dem Festlegen oder Aktualisieren aller relevanten Besucherdaten aufgerufen werden und unmittelbar vor dem Abrufen einer Feature-Variation oder dem Überprüfen eines Feature Flags. Dieser Ansatz stellt sicher, dass der Besucher gegen die aktuellsten verfügbaren Daten ausgewertet wird, was eine genaue Zielgruppenbestimmung basierend auf allen Kriterien ermöglicht. Nach dem Aufruf dieser Methode können Sie im Audiences Explorer eine detaillierte Analyse der Segment-Performance durchführen.
Parameter
Ausgelöste Ausnahmen
In den meisten Fällen muss nur der grundlegende Fehler KameleoonException behandelt werden, wie im Beispiel gezeigt. Falls jedoch verschiedene Fehlertypen eine Antwort erfordern, behandeln Sie diese einzeln basierend auf spezifischen Anforderungen. Darüber hinaus können für erhöhte Zuverlässigkeit allgemeine Sprachfehler durch Einbindung von Error behandelt werden.

getDataFile()

Um alle Feature Flags auszuwerten, verwenden Sie getVariations(). Diese Methode ist effizienter als der Aufruf von DataFile und das Durchlaufen von Flags mit getVariation().
Gibt zurück aktuell SDK Konfiguration as a DataFile Objekt.
Rückgabewert

Besucher data

getVisitorCode()

Die Methode getVisitorCode() ruft einen Besuchercode aus dem Browser-Cookie ab. Wenn der Besuchercode nicht existiert, generiert die Methode einen zufälligen Besuchercode (oder verwendet den defaultVisitorCode-Wert, wenn Sie einen angegeben haben) und setzt den neuen Besuchercode in einem Cookie.
Die Methode getVisitorCode() ermöglicht es Ihnen, simulierte Variationen für einen Besucher festzulegen. Wenn Cookies (von einer Anfrage oder einem Dokument) den Schlüssel kameleoonSimulationFFData enthalten, wird der standardmäßige Evaluierungsprozess umgangen. Stattdessen gibt die Methode direkt eine Variation basierend auf den bereitgestellten Daten zurück.Sie können Simulationen auf zwei Arten anwenden:
  • Automatisch (empfohlen): Wenn Sie Kameleoon Web Experimentation oder das SDK im Hybrid-Modus verwenden, wird das Cookie automatisch erstellt, wenn die Anzeige einer Variante mit dem Simulation Panel simuliert wird.
  • Manuell: Legen Sie den kameleoonSimulationFFData-Cookie manuell fest.
Es ist wichtig, simulierte Variationen von erzwungenen Variationen zu unterscheiden:
  • Simulierte Variationen: Beeinflussen das Gesamtergebnis des Feature Flags.
  • Erzwungene Variationen: Sind spezifisch für ein einzelnes Experiment.
⚙️ Manual setupStellen Sie sicher, dass der kameleoonSimulationFFData-Cookie diesem Format entspricht:
  • kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: Simuliert die Variation mit varId des Experiments expId für den angegebenen featureKey.
  • kameleoonSimulationFFData={"featureKey":{"expId":0}}: Simuliert die Standard-Variation (definiert im Abschnitt Dann für alle anderen in Produktion) für den angegebenen featureKey.
⚠️ Um sicherzustellen, dass der Cookie-Wert korrekt funktioniert, codieren Sie ihn als URI-Komponente mithilfe einer Methode wie encodeURIComponent.
Parameter
Wenn Sie don’t provide a defaultVisitorCode and es gibt no Besucher code stored in a Cookie, den Besucher code wird randomly generated.
Rückgabewert
Ausgelöste Ausnahmen

addData()

Die Methode addData() fügt Targeting-Daten zum Speicher hinzu, damit andere Methoden die Daten verwenden können, um zu entscheiden, ob der aktuelle Besucher angesprochen werden soll. Die Methode addData() gibt keinen Wert zurück und interagiert nicht eigenständig mit den Kameleoon-Backend-Servern. Stattdessen werden alle erklärten Daten zur späteren Übertragung mithilfe der Methode flush gespeichert. Dieser Ansatz reduziert die Anzahl der Serveraufrufe, da die Daten normalerweise in einem einzigen Serveraufruf gruppiert werden. Beachten Sie, dass die Methode trackConversion auch alle zuvor zugeordneten Daten sendet, genau wie die flush-Methode. Gleiches gilt für die Methoden getFeatureFlagVariationKey und getFeatureFlagVariable, wenn eine Experimentierungsregel ausgelöst wird.
Jeder Besucher kann nur eine Instanz zugeordneter Daten für die meisten Datentypen haben. Jedoch ist CustomData eine Ausnahme. Besucher können pro customDataIndex eine Instanz zugeordneter CustomData haben.
  • userAgent-Daten werden im Speicher nicht wie andere Daten gespeichert und werden mit jeder Tracking-Anfrage zur Bot-Filterung gesendet.
  • Für die Datentypen, die Sie für das Targeting verwenden können, siehe unterstützte Targeting-Bedingungen.
Parameter
  • kameleoonData ist ein variadisches Argument. Es kann als ein oder mehrere Argumente übergeben werden (siehe das Beispiel).
  • Der Index oder die ID der benutzerdefinierten Daten finden Sie in Ihrem Kameleoon-Konto. Beachten Sie, dass dieser Index bei 0 beginnt, was bedeutet, dass die erste benutzerdefinierte Datei, die Sie für einen bestimmten Ort erstellen, die ID 0 erhält, nicht 1.
Ausgelöste Ausnahmen
Lesen Sie die Referenz Datentypen für weitere Einzelheiten zur Verwaltung verschiedener Datentypen.

flush()

flush() nimmt die Kameleoon-Daten auf, die einem Besucher zugeordnet sind, und plant, die Daten in der nächsten Tracking-Anfrage zu senden. Der Zeitpunkt der nächsten Tracking-Anfrage wird durch den SDK-Konfigurationsparameter trackingInterval definiert. Besucherdaten können mit den Methoden addData und getRemoteVisitorData hinzugefügt werden.Wenn Sie keinen visitorCode angeben, leert das SDK alle seine gespeicherten Daten an die Kameleoon-Server. Falls zuvor fehlgeschlagene Tracking-Anfragen lokal im Offline-Modus gespeichert waren, versucht das SDK, die gespeicherten Anfragen zu senden, bevor es die neueste Anfrage ausführt.
Wenn Sie Tracking-Anfragen sofort senden müssen, verwenden Sie flushInstant()—die asynchrone Version von flush, die Promise<void> zurückgibt. Sie können es mit await aufrufen, wenn Sie Zustellungsgarantien benötigen (beispielsweise vor Seitennavigation/Entladung), oder rufen Sie es ohne await auf, um es als unerwartete Anfrage zu versenden:
  • await client.flushInstant(visitorCode) sendet Tracking-Anfragen sofort für einen bestimmten Besucher und wartet auf den Abschluss
  • await client.flushInstant() sendet Tracking-Anfragen sofort für alle Besucher und wartet auf den Abschluss
Parameter
Oder ein Objekt vom Typ FlushParamsType mit den folgenden Eigenschaften:
Ausgelöste Ausnahmen

getRemoteData()

Die Methode getRemoteData() gibt Daten zurück, die für einen angegebenen Site-Code auf einem Kameleoon-Server gespeichert sind. Sie können diese Methode verwenden, um Benutzereinstellungen, historische Daten oder andere für die Logik Ihrer Anwendung relevante Daten abzurufen. Durch die Speicherung dieser Daten auf unseren hochskalierbaren Servern mit unserer Daten-API können Sie große Datenmengen effizient verwalten und für jeden Ihrer Besucher oder Benutzer abrufen.
Parameter
Rückgabewert
Ausgelöste Ausnahmen

getRemoteVisitorData()

getRemoteVisitorData() ist eine asynchrone Methode zum Abrufen von Kameleoon Visits Data für visitorCode von der Kameleoon Data API. Die Methode fügt Speicher Daten hinzu, die andere Methoden beim Treffen von Targeting-Entscheidungen verwenden können.Mit dieser Methode abgerufene Daten sind wichtig, wenn Sie Folgendes möchten:
  • Daten verwenden, die von anderen Geräten erfasst wurden.
  • auf den Verlauf eines Benutzers zuzugreifen, zum Beispiel auf zuvor besuchte Seiten aus früheren Besuchen.
  • Daten verwenden, die nur clientseitig verfügbar sind, wie Datalayer-Variablen und Ziele, die nur auf dem Front-End konvertieren.
Lesen Sie diesen Artikel, um ein besseres Verständnis möglicher Anwendungsfälle zu erhalten.
Standardmäßig ruft getRemoteVisitorData() automatisch die neuesten gespeicherten benutzerdefinierten Daten mit scope=Visitor ab und hängt sie dem Besucher an, ohne dass die Methode addData() aufgerufen werden muss. Dies ist besonders nützlich zum Synchronisieren benutzerdefinierter Daten auf mehreren Geräten.
Parameter
Ein Objekt vom Typ RemoteVisitorDataParamsType mit den folgenden Eigenschaften:
Rückgabewert
Ausgelöste Ausnahmen
Parameter in getRemoteVisitorData() verwenden
Die Methode getRemoteVisitorData() bietet Flexibilität, indem Sie verschiedene Parameter beim Abrufen von Daten zu Besuchern definieren können. Ob Sie auf Grundlage von Zielen, Experimenten oder Variationen ausrichten—derselbe Ansatz gilt für alle Datentypen.Wenn Sie beispielsweise Daten zu Besuchern abrufen möchten, die ein Ziel “Order transaction” abgeschlossen haben, können Sie Parameter in der Methode getRemoteVisitorData() angeben, um Ihr Targeting zu verfeinern. Wenn Sie beispielsweise nur Benutzer anvisieren möchten, die das Ziel in ihren letzten fünf Besuchen konvertiert haben, können Sie den Parameter previousVisitAmount auf 5 und conversions auf true setzen.Die in diesem Beispiel gezeigte Flexibilität ist nicht auf Zieldaten beschränkt. Sie können Parameter in der Methode getRemoteVisitorData() verwenden, um Daten zu einer Vielzahl von Besucherverhalten abzurufen.
Hier ist die Liste of verfügbar VisitorDataFiltersType filters:

getVisitorWarehouseAudience()

getVisitorWarehouseAudience ist eine asynchrone Methode, die alle Zielgruppendaten abruft, die dem Besucher in Ihrem Data Warehouse mit dem angegebenen visitorCode und warehouseKey zugeordnet sind. Der warehouseKey ist normalerweise Ihre interne Benutzer-ID. Der Parameter customDataIndex entspricht den benutzerdefinierten Kameleoon-Daten, die Kameleoon zum Ansprechen Ihrer Besucher verwendet. Weitere Informationen finden Sie in der Dokumentation zum Warehouse-Targeting.
Parameter
Parameterobjekt bestehend aus:
Rückgabewert
Ausgelöste Ausnahmen

setLegalConsent()

Zustimmungsinformationen werden zwischen der Kameleoon Engine (Anwendungsdatei engine.js) und dem JS SDK synchronisiert. Diese Synchronisierung bedeutet, dass Zustimmung automatisch für beide festgelegt wird, sobald sie entweder in der Engine oder dem SDK festgelegt ist. Diese Funktion eliminiert die Notwendigkeit für manuelle Zustimmungsverwaltung und stellt sicher, dass SDKs in Übereinstimmung mit Benutzereinstellungen arbeiten.Wenn Sie Kameleoon im Hybrid-Modus verwenden, empfehlen wir, den Abschnitt zur Zustimmung in unserem Artikel zur Hybrid-Experimentation zu lesen
Bei der Behandlung von rechtlicher Zustimmung ist es wichtig, die Methode getVisitorCode von KameleoonClient zu verwenden, nicht die veraltete Methode von KameleoonUtils. Darüber hinaus akzeptiert diese Methode domain nicht als Argument. Übergeben Sie sie stattdessen an den KameleoonClient-Konstruktor. Weitere Informationen finden Sie im obigen Beispiel. Die Methode setLegalConsent gibt an, ob der Besucher rechtliche Zustimmung zur Nutzung persönlicher Daten erteilt hat. Wenn Sie den Parameter legalConsent auf false setzen, werden die Arten von Daten eingeschränkt, die Sie in Tracking-Anfragen einbeziehen können. Diese Methode hilft Ihnen, rechtliche und behördliche Anforderungen einzuhalten und gleichzeitig Besucherdaten verantwortungsvoll zu verwalten. Weitere Informationen zu persönlichen Daten finden Sie in der Zustimmungsverwaltungsrichtlinie.
Parameter
Ausgelöste Ausnahmen
Widerrufsverhalten der Zustimmung
Wenn Sie setLegalConsent() mit consent=false aufrufen, löscht das SDK den Cookie kameleoonVisitorCode nicht. Stattdessen stoppt es die Verlängerung des Cookie-Ablaufdatums, wodurch der Cookie bestehen bleibt, bis er natürlich abläuft. Wenn Ihre Compliance-Anforderungen die sofortige Entfernung der Cookie-Datei bei der Abmeldung erfordern, müssen Sie diese manuell mit den nativen Cookie-Verwaltungsmethoden Ihres Frameworks löschen. Das SDK entfernt die Datei nicht automatisch.

Ziele und Drittanbieter-Analysen

trackConversion()

  • 📨 Sendet Tracking-Daten an Kameleoon
Verwenden Sie diese Methode, um eine Konversion für ein spezifisches Ziel und einen Benutzer zu verfolgen. Diese Methode erfordert visitorCode und goalId. Zusätzlich akzeptiert diese Methode auch optionale revenue-, negative- und metadata-Argumente. Der visitorCode ist normalerweise identisch mit dem, der beim Auslösen des Experiments verwendet wurde.Die Methode trackConversion() gibt keinen Wert zurück. Diese Methode ist nicht blockierend, da der Serveraufruf asynchron erfolgt.
Parameter
Parameterobjekt bestehend aus:
Metadatenwerte sind zugänglich über Rohdatenexporte und die Ergebnisseite.Wenn der metadata-Parameter bereitgestellt wird, verwendet Kameleoon diese angegebenen Werte für die aktuelle Konversion anstelle dessen, was zuvor mit der Methode addData() erfasst wurde. Wenn der Parameter weggelassen wird, verwendet Kameleoon die zuletzt verfolgten Werte für diese CustomData vor der Konversion und innerhalb desselben Besuchs.Kameleoon berücksichtigt nur die Metadatenwerte, die als Parameter an die Methode trackConversion() explizit übergeben werden.Im folgenden Beispiel verknüpft Kameleoon die Konversion nur mit dem benutzerdefinierten Datenwert, der als Parameter explizit bereitgestellt wird (hier: Index 5 mit dem Wert „Amex Credit Card”).
Ausgelöste Ausnahmen

getEngineTrackingCode()

Kameleoon integriert sich mit mehreren Analyselösungen, darunter Mixpanel, Google Analytics 4 und Segment. Um serverseitige Experimente ordnungsgemäß zu verfolgen, rufen Sie die Methode getEngineTrackingCode() auf, nachdem der Besucher ein Experiment auslöst. Das SDK gibt JavaScript-Warteschlangen-Befehle für die Experimente zurück, die der Besucher in den letzten fünf Sekunden ausgelöst hat. Wenn Sie diesen Code in die Seite einfügen, verarbeitet Engine.js die Befehle und sendet die Belichtungs-Events über die aktive Analytik-Integration. Weitere Informationen zur Implementierung dieser Methode finden Sie in diesem Artikel.
  • Um diese Funktion zu nutzen, implementieren Sie sowohl das JavaScript SDK als auch Kameleoon Engine.js. Da Engine.js in diesem Ablauf nur zum Tracking verwendet wird, können Sie das asynchrone Tag vor dem Closing </body>-Tag installieren.
  • Sie können den zurückgegebenen Tracking-Code direkt in ein HTML <script>-Tag einfügen.
In diesem Beispiel sind 123456 und 234567 Experiment-IDs, und 7890 und 8901 sind Variations-IDs. In Ihrer Implementierung generiert das SDK diese Werte im zurückgegebenen Tracking-Code.
Parameter
Rückgabewert
Ausgelöste Ausnahmen

Ereignisse

setEventHandler()

Verwenden Sie diese Methode, um einen handler für SDK-Ereignisse zu registrieren. Das SDK ruft den handler auf, wenn das ausgewählte Ereignis eintritt. Das Registrieren eines neuen handler für denselben Ereignistyp ersetzt den vorherigen handler.Wenn Sie null als handler übergeben, wird der aktuelle handler für den ausgewählten Ereignistyp entfernt.
DataFileUpdateEventDataType enthält Informationen über eine SDK-Datendatei-Aktualisierung.
Parameter

Senden von Exposure-Ereignissen an externe Tools
Kameleoon bietet integrierte Integrationen mit verschiedenen Analyse- und CDP-Lösungen, wie Mixpanel, Google Analytics 4, Segment…. Um sicherzustellen, dass Sie Ihre Server-seitigen Experimente verfolgen und analysieren können, stellt Kameleoon eine Methode getEngineTrackingCode() bereit, die den JavaScript-Code zurückgibt, der in Ihre Seite eingefügt werden soll. Der Code sendet die Exposure-Ereignisse automatisch an Ihre Analyselösung. Das SDK erstellt einen Tracking-Code für Ihre aktive Analyselösung basierend auf den Experimenten, die der Besucher in den letzten fünf Sekunden ausgelöst hat. Weitere Informationen zur hybriden Experimentation finden Sie in diesem Artikel.Die getEngineTrackingCode()-Methode gibt den Kameleoon-Tracking-Code für den aktuellen Besucher zurück. Der Tracking-Code basiert auf den Experimenten, die in den letzten fünf Sekunden ausgelöst wurden.
Um von dieser Funktion zu profitieren, müssen Sie sowohl das JavaScript SDK als auch unser Kameleoon JavaScript-Tag implementieren. Wir empfehlen, das Kameleoon asynchrone Tag zu implementieren, das Sie vor dem schließenden <body>-Tag in Ihrer HTML-Seite installieren können, da es nur für Tracking-Zwecke verwendet wird.

Daten Typen

Kameleoon-Datentypen sind Hilfsklassen, die zum Speichern von Daten in vordefinierter Form verwendet werden. Während der flush-Ausführung sammelt das SDK alle Daten und sendet sie mit der Tracking-Anfrage. Die im SDK verfügbaren Daten sind nicht für Targeting und Berichte in der Kameleoon-App verfügbar, bis Sie die Daten hinzufügen (beispielsweise mithilfe der Methode addData()). Weitere Informationen finden Sie unter Besucherverlauf zum Targeting von Benutzern verwenden.
Wenn Sie den Hybrid-Modus verwenden, rufen Sie getRemoteVisitorData() auf, um automatisch alle Daten auszufüllen, die Kameleoon zuvor erfasst hat.

Browser

Seit JavaScript SDK 4.10.0 wird Browser automatisch auf Basis der User-Agent-Zeichenfolge erkannt. Sie können es jedoch bei Bedarf weiterhin manuell überschreiben.
Browser enthält browser information.
Jeder Besucher kann nur einen Browser haben. Das Hinzufügen eines zweiten Browser überschreibt den ersten.

UniqueIdentifier

UniqueIdentifier-Daten werden als Marker für eindeutige Besucheridentifikation verwendet. Wenn Sie UniqueIdentifier für einen Besucher hinzufügen, wird visitorCode als eindeutiger Besucherkennung verwendet, was nützlich für geräteübergreifende Experimente ist. Das Zuordnen eines UniqueIdentifier zu einem Besucher teilt dem SDK mit, dass der Besucher mit einem anderen Besucher verknüpft ist. Der isUniqueIdentifier kann in besonderen Situationen hilfreich sein; beispielsweise, wenn Sie keinen Zugriff auf den anonymen visitorCode haben, der einem Besucher gegeben wurde, aber Sie können eine interne Kennung verwenden, die durch Sitzungszusammenführung mit diesem Besucher verknüpft ist.
Jeder Besucher kann nur einen UniqueIdentifier haben. Das Hinzufügen eines anderen UniqueIdentifier überschreibt den ersten.

Konversion

Der hier gespeicherte Conversion-Datensatz kann verwendet werden, um Experiment- und Personalisierungsberichte nach beliebigen Zielen, die damit verbunden sind, zu filtern.
  • Jeder Besucher kann mehrere Conversion-Objekte haben.
  • Sie können die goalId in der Kameleoon-App finden.
ConversionParametersType conversionParameters - ein Objekt mit den unten beschriebenen Konversionsparametern
Cookie enthält Informationen zum Cookie, das auf dem Gerät des Besuchers gespeichert ist.
  • Generell versucht das JavaScript SDK, ein localStorage-Cookie für die Bedingungen zu verwenden. Wenn localStorage nicht möglich ist, kann das SDK Cookie-Daten als Alternative verwenden.
  • Jeder Besucher kann nur ein Cookie haben. Das Hinzufügen eines zweiten Cookie überschreibt den ersten.
Methoden
Cookie-Daten haben eine statische Utility-Methode fromString, die Sie verwenden können, um ein Cookie durch Parsing einer Zeichenfolge zu erstellen, die gültige Cookie-Daten enthält. Die Methode akzeptiert einen string als Parameter und gibt eine initialisierte Cookie-Instanz zurück.

GeolocationData

GeolocationData enthält den Besucher’s geolocation details.
Jeder Besucher kann nur ein GeolocationData haben. Das Hinzufügen eines zweiten GeolocationData überschreibt den ersten.
Ein Parameterobjekt vom Typ GeolocationInfoType mit den folgenden Feldern:

CustomData

CustomData ermöglicht die einfache Zuordnung beliebiger Datentypen zu jedem Besucher. Dies kann dann als Targeting-Bedingung in Segmenten oder als Filter/Aufschlüsselung in Experimentberichten verwendet werden. Um mehr über benutzerdefinierte Daten zu erfahren, lesen Sie diesen Artikel.
  • Jeder Besucher kann nur ein CustomData pro eindeutigem index haben. Das Hinzufügen eines weiteren CustomData mit demselben index ersetzt das vorhandene.
  • Der benutzerdefinierte Daten-Index finden Sie im Dashboard für benutzerdefinierte Daten in der Spalte “INDEX”.
  • Um zu verhindern, dass das SDK Daten mit dem ausgewählten Index aus Datenschutzgründen an Kameleoon-Server sendet, aktivieren Sie die Option: Diese Daten nur lokal für Targeting-Zwecke verwenden, wenn Sie benutzerdefinierte Daten erstellen.
  • Das Hinzufügen einer CustomData-Instanz, die mit einem Namen erstellt wurde, wenn die SDK-Instanz nicht initialisiert ist oder der Name nicht registriert ist, führt dazu, dass die Daten ignoriert werden.

Device

Seit JavaScript SDK 4.10.0 wird Device automatisch basierend auf der User-Agent-Zeichenfolge erkannt. Sie können es jedoch bei Bedarf weiterhin manuell überschreiben.
Device enthält Informationen über Ihr Gerät.
Jeder Besucher kann nur ein Device haben. Das Hinzufügen eines zweiten Device überschreibt das erste.

OperatingSystem

Seit JavaScript SDK 4.10.0 wird OperatingSystem automatisch basierend auf der User-Agent-Zeichenfolge erkannt. Sie können es jedoch bei Bedarf weiterhin manuell überschreiben.
OperatingSystem enthält Informationen über das Betriebssystem auf dem Gerät des Besuchers.
Jeder Besucher kann nur ein OperatingSystem haben. Das Hinzufügen eines zweiten OperatingSystem überschreibt das erste.

PageView

Seit JavaScript SDK 4.10.0 wird PageView automatisch basierend auf window.location?.href und document.title erkannt. Sie können es jedoch bei Bedarf weiterhin manuell überschreiben.
PageView enthält Informationen über Ihre Webseite.
Jeder Besucher kann ein PageView pro eindeutiger URL haben. Das Hinzufügen eines zweiten PageView mit derselben URL benachrichtigt das SDK, dass der Besucher die Seite erneut besucht hat.
PageViewParametersType pageViewParameters - ein Objekt mit den unten beschriebenen Seitenaufrufparametern
Sie können den Index oder die Referrer-ID in Ihrem Kameleoon-Konto finden. Beachten Sie, dass dieser Index bei 0 beginnt, d. h. der erste Akquisitionskanal, den Sie für eine bestimmte Website erstellen, erhält 0 als ID, nicht 1.

UserAgent

UserAgent ermöglicht es Ihnen, Informationen zum User-Agent des Besuchers zu speichern. Server-seitige Experimente sind stärker durch Bot-Traffic beeinträchtigt als Client-seitige Experimente. Kameleoon verwendet die Liste “IAB/ABC International Spiders and Bots” zur Bewältigung dieses Problems und zur Erkennung bekannter Bots und Spiders. Kameleoon verwendet auch das Feld UserAgent, um Bots und anderen unerwünschten Traffic herauszufiltern, die Ihre Conversion-Metriken verfälschen könnten. Weitere Details finden Sie in unserem Hilfeartikel zu Bot-Filtering. Wenn Sie interne Bots verwenden, übergeben Sie den Wert curl/8.0 des userAgent, um diese aus Ihrer Analyse auszuschließen.
Visitor kann nur ein UserAgent haben. Das Hinzufügen eines zweiten UserAgent überschreibt das erste.
Wenn Sie Kameleoon im Hybrid-Modus ausführen, sind Ihre Feature-Experimente automatisch vor Bot-Traffic geschützt. Dieser Schutz tritt auf, weil Kameleoon den User-Agent automatisch auf dem Front-End erfasst. Daher müssen Sie den User-Agent oder andere Parameter nicht übergeben, um Bots und Spiders zu filtern.Wenn Sie interne Bots verwenden, übergeben Sie den Wert curl/8.0 des userAgent, um diese aus Ihrer Analyse auszuschließen.

ApplicationVersion

ApplicationVersion stellt die Semantic-Version-Nummer Ihrer Anwendung dar.
Ein Besucher kann nur ein ApplicationVersion haben. Das Hinzufügen einer zweiten Instanz überschreibt die erste.

Zurückgegebene Typen

DataFile

The DataFile enthält das SDK Konfiguration details. Sie kann mit zusätzlichen Informationen erweitert werden, falls von Clients erforderlich. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.

FeatureFlag

Das FeatureFlag stellt eine Reihe von Eigenschaften dar, die ein Feature Flag selbst definieren (beispielsweise dessen Variations, Rules, Umgebungsstatus und weitere zugehörige Details). Sie kann mit zusätzlichen Informationen erweitert werden, falls von Clients erforderlich. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.

Regel

Das Rule stellt eine Reihe von Eigenschaften dar, die eine Regel selbst definieren (beispielsweise deren Variations). Sie kann mit zusätzlichen Informationen erweitert werden, falls von Clients erforderlich. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.

Variation

Variation enthält Informationen über die dem Besucher zugewiesene Variation (oder die Standardvariation, wenn keine spezifische Zuweisung vorhanden ist).
  • Stellen Sie sicher, dass Ihr Code den Fall behandelt, in dem id oder experimentId null ist, was eine Standardvariation anzeigt.
  • Die Zuordnung variables könnte leer sein, wenn keine Variablen der Variation zugeordnet sind.

Variable

Variable enthält Informationen über eine Variable, die der zugewiesenen Variation zugeordnet ist.

Veraltete Methoden

Diese Methoden sind veraltet und werden in der nächsten Hauptversion entfernt.

getFeatureFlagVariationKey()

Verwenden Sie getVariation Methode stattdessen
Die Methode getFeatureFlagVariationKey() ruft den Variationsschlüssel für einen Besucher ab, der durch einen visitorCode identifiziert wird. Diese Methode umfasst eine Targeting-Prüfung, die die entsprechende Variation identifiziert, die dem Besucher ausgesetzt ist, diese im Speicher speichert und eine Tracking-Anfrage sendet.
Wenn ein Benutzer nicht mit einem Feature Flag verknüpft ist, gibt das SDK zufällig einen Variationsschlüssel gemäß den Feature-Flag-Regeln zurück. Falls der Benutzer bereits mit dem Feature Flag registriert wurde, erkennt das SDK diese Verknüpfung und gibt den vorherigen Variationsschlüssel-Wert des Benutzers zurück. Wenn der Benutzer jedoch keine der definierten Regeln erfüllt, gibt das SDK den in den Feature-Flag-Zustellungsregeln von Kameleoon angegebenen Standardwert zurück. Es ist wichtig zu beachten, dass der Standardwert ein Variationsschlüssel, ein boolescher Wert oder ein anderer Datentyp sein kann, je nach Konfiguration des Feature Flags.
Parameter
Rückgabewert
Ausgelöste Ausnahmen

getVisitorFeatureFlags()

  • 🚫 Sendet keine Tracking-Daten an Kameleoon
  • 🎯 Ereignisse: EventType.Evaluation (für jedes Feature Flag)
Verwenden Sie getVariations Methode stattdessen.
Die Methode getVisitorFeatureFlags() gibt eine Liste von Feature Flags zurück, die einen Besucher anvisieren, der durch seinen visitorCode identifiziert wird, und die Feature Flags, die für den angegebenen Besucher aktiv sind.
Diese Methode erfasst nur die aktiven Feature Flags des Besuchers, das heißt, das Ergebnis schließt alle Feature Flags aus, für die dem Besucher die Variation off (Standard oder Kontrolle) zugewiesen ist. Wenn Sie alle Feature Flags des Besuchers benötigen, verwenden Sie stattdessen getFeatureFlags.Zum Beispiel:
Für Fälle, in denen Sie alle Feature Flags des Besuchers benötigen, verwenden Sie stattdessen getFeatureFlags:
Parameter
Rückgabewert
Ausgelöste Ausnahmen

getActiveFeatureFlags()

  • 🚫 Sendet keine Tracking-Daten an Kameleoon
  • 🎯 Ereignisse: EventType.Evaluation (für jedes Feature Flag)
Verwenden Sie getVariations Methode stattdessen.
Die Methode getActiveFeatureFlags() gibt eine Map zurück, wobei der Schlüssel der Feature-Schlüssel ist und der Wert detaillierte Informationen über die Variation des Besuchers und die zugehörigen Variablen ist
Diese Methode erfasst nur die aktiven Feature Flags des Besuchers. Dies bedeutet, dass das Ergebnis alle Feature Flags ausschließt, denen der Besucher die off (Standard- oder Kontroll-)Variation zugewiesen ist. Wenn Sie alle Feature Flags des Besuchers durchlaufen müssen, verwenden Sie stattdessen getFeatureFlags.Weitere Details finden Sie im Abschnitt WARNUNG der Methode getVisitorFeatureFlags.
Parameter
Rückgabewert
Ausgelöste Ausnahmen

getFeatureFlagVariable()

Verwenden Sie getVariation Methode.
Die Methode getFeatureFlagVariable() gibt eine Variable für einen Besucher zurück, der durch einen visitorCode identifiziert wird. Diese Methode umfasst eine Zielgruppen-Überprüfung, die die entsprechende Variation identifiziert, die dem Besucher zugewiesen wird, speichert diese im Speicher und sendet eine Tracking-Anfrage.
Parameter
Parameterobjekt vom Typ GetFeatureFlagVariableParamsType mit den folgenden Feldern:
Rückgabewert
Ausgelöste Ausnahmen

getFeatureFlagVariables()

  • 📨 Sendet Tracking-Daten an Kameleoon
  • 🎯 Ereignisse: EventType.Evaluation (für jedes Feature Flag)
Verwenden Sie getVariation Methode.
Die Methode getFeatureFlagVariables() gibt Variablen für einen Besucher zurück, der durch einen visitorCode identifiziert wird. Diese Methode umfasst eine Zielgruppen-Überprüfung, die die entsprechende Variation identifiziert, die dem Besucher zugewiesen wird, speichert diese im Speicher und sendet eine Tracking-Anfrage.
Parameter
Rückgabewert
Ausgelöste Ausnahmen

onConfigurationUpdate()

Verwenden Sie onEvent Methode mit EventType.ConfigurationUpdate stattdessen.
Die Methode onConfigurationUpdate() löst einen Rückruf bei der Aktualisierung der Client-Konfiguration aus.
Diese Methode ist nur für Server-gesendete Ereignisse anwendbar, die in Echtzeit-Updates verwendet werden.
Parameter
Ausgelöste Ausnahmen

getFeatureFlags()

Verwenden Sie getDataFile() Methode stattdessen.
🚫 Sendet keine Tracking-Daten an Kameleoon Die Methode getFeatureFlags() gibt eine Liste von Feature Flags zurück, die in der Client-Konfiguration gespeichert sind.
Rückgabewert
Ausgelöste Ausnahmen

onEvent()

Verwenden Sie stattdessen setEventHandler().
Methode onEvent() löst einen Rückruf aus, wenn ein bestimmtes Ereignis ausgelöst wird. Die Rückruffunktion kann auf die Daten zugreifen, die dem Ereignis zugeordnet sind. Die SDK-Methoden in dieser Dokumentation vermerken, welche Ereignistypen sie auslösen, falls vorhanden.
Sie können jedem EventType nur einen Rückruf zuweisen.
Ereignisse
Ereignisse werden in der EventType-Enumeration definiert. Je nach Ereignistyp hat der eventData-Parameter einen anderen Typ.
Parameter
Ausgelöste Ausnahmen