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:npx:
Sie können das JavaScript SDK auch als einzelne Datei mit dem Um immer die neueste Version eines Major-Releases zu verwenden, verwenden Sie das folgende Skript, wobei Um auf einer bestimmten Version zu bleiben, geben Sie die vollständige Versionsnummer stattdessen an. Zum Beispiel für Version Versionen können auf der Release-Seite referenziert werden.
<script> -Tag in Ihre App einbinden. Sie können dann alle SDK-Methoden über das globale Objekt KameleoonSDK.Beispiel:index.html
app.js
4 die aktuelle Hauptversion ist:4.24.0, die die früheste verfügbare Version als statisches Skript ist, verwenden Sie das folgende:Kameleoon-Client initialisieren
Hier ist eine Schritt-für-Schritt-Anleitung zum Konfigurieren des JavaScript SDK für Ihre Anwendung.- TypeScript
- JavaScript
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
- SDK Version 3
- SDK Version 4
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 MethodegetVisitorCode() 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 MethodegetVariation() 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 MethodeaddData(), 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 MethodetrackConversion() 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 MethodegetEngineTrackingCode().
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
accountIdverwenden. Benutzerdefinierte Bucketing-Schlüssel sind entscheidend für A/B-Tests von Funktionen, die ein gesamtes Team oder Unternehmen beeinflussen.
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 ObjektCustomData. Hier bezieht sichnewVisitorCodeauf den Bezeichner, den Sie für Ihr Bucketing verwenden möchten (z. B. die neueuserIdoderaccountId).
- Bucketing-Logik: Sobald ein benutzerdefinieter Bucketing-Schlüssel durch die Methode
addData()bereitgestellt wird, verwenden alle Hash-Berechnungen zum Zuweisen von Benutzern zu Variationen diesennewVisitorCode(Ihren benutzerdefinierten Schlüssel) anstelle des Standard-visitorCode. Die Verwendung desnewVisitorCodebedeutet, 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ünglichenvisitorCodezugeordnet. 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
stringsein. - Er muss eindeutig für die Entität sein, die Sie buckeln möchten (z. B. wenn Sie
userIdverwenden, 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.- TypeScript
- JavaScript
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.
- TypeScript
- JavaScript
Domain-Informationen
Sie geben eine Domain alsdomain 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 Domainwww.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.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
domainim SDK-Client während des Testens nicht an. - Erstellen Sie eine lokale Domain für
localhost. Zum Beispiel: - Navigieren Sie unter Linux zu
/etc/hostsoder unter Windows zuc:\Windows\System32\Drivers\etc\hosts.- Öffnen Sie
hostsmit Superuser- oder Administratorrechten. - Fügen Sie eine Domain zum
localhostPort 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.comals Ihre Domäne angeben
- Öffnen Sie
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.
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
- TypeScript
- JavaScript
EventSource
- TypeScript
- JavaScript
VisitorCodeManager
- TypeScript
- JavaScript
Requester
- TypeScript
- JavaScript
Fehlerbehandlung
Fast jedeKameleoonClient 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.
- TypeScript
- JavaScript
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, diegetRemoteVisitorData() 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.
- TypeScript
- JavaScript
Device One
Device Two
Sitzungen mit benutzerdefinierten Daten zusammenführen
- SDK Version 3
- SDK Version 4
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ügtemUniqueIdentifier(true)- zum Abrufen von Daten für alle verknüpften Besucher.trackConversion()oderflush()mit hinzugefügtemUniqueIdentifier(true)-Daten - um einige Daten für einen bestimmten Besucher zu verfolgen, der mit einem anderen Besucher verknüpft ist.
- TypeScript
- JavaScript
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 KlasseKameleoonUtils dargestellt.
simulateSuccessRequest
Verwenden Sie die MethodesimulateSuccessRequest, 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).
- TypeScript
- JavaScript
Parameter
Der Datentyp
SimulateRequestDataType ist wie folgt definiert:
RequestType.Tracking-nullRequestType.ClientConfiguration-ClientConfigurationDataTypeRequestType.RemoteData-JSONType
Rückgabewert
getCookieValue
Verwenden Sie die MethodegetCookieValue, 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.
- TypeScript
- JavaScript
Parameter
Rückgabewert
Referenz
Dies ist die vollständige Referenzdokumentation für das Kameleoon JavaScript SDK.Initialisierung
initialize()
- SDK Version 3
- SDK Version 4
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
initializewirft keinen Fehler. - Das SDK unterstützt einen Offline-Modus.
- TypeScript
- JavaScript
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.
- TypeScript
- JavaScript
Rückgabewert
Feature-Flags und Variationen
getVariation()
- 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter
track)
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.
- TypeScript
- JavaScript
Parameter
Ein Objekt vom TypGetVariationParamsType mit den folgenden Eigenschaften:
Rückgabewert
Ausgelöste Ausnahmen
getVariations()
- 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter
track) - 🎯 Ereignisse:
EventType.Evaluation
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
onlyActiveauftruegesetzt ist, gibt die MethodegetVariations()Feature-Flag-Variationen zurück, sofern der Benutzer nicht mit deroff-Variation gruppiert ist. - Der Parameter
tracksteuert, ob die Methode die Variationszuweisungen verfolgt oder nicht. Standardmäßig ist sie auftruegesetzt. Wenn sie auffalsegesetzt ist, wird das Tracking deaktiviert.
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.
- TypeScript
- JavaScript
Parameter
Ein Objekt vom TypGetVariationParamsType mit den folgenden Eigenschaften:
Rückgabewert
Ausgelöste Ausnahmen
isFeatureFlagActive()
- 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom
track-Parameter) - 🎯 Ereignisse:
EventType.Evaluation
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.- TypeScript
- JavaScript
Parameter
Es gibt two overloads verfügbar for diese Methode:- Two Parameter overload:
- Objektparameter-Überladung vom Typ
IsFeatureFlagActiveParamsType:
Rückgabewert
Ausgelöste Ausnahmen
setForcedVariation()
Die Methode ermöglicht es Ihnen, eine spezifischeVariation 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.
- TypeScript
- JavaScript
Parameter
Ein Objekt vom TypSetForcedVariationParametersType 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
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.
- TypeScript
- JavaScript
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()
Gibt zurück aktuell SDK Konfiguration as aDataFile Objekt.
- TypeScript
- JavaScript
Rückgabewert
Besucher data
getVisitorCode()
Die MethodegetVisitorCode() 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.
- Simulierte Variationen: Beeinflussen das Gesamtergebnis des Feature Flags.
- Erzwungene Variationen: Sind spezifisch für ein einzelnes Experiment.
kameleoonSimulationFFData-Cookie diesem Format entspricht:kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: Simuliert die Variation mitvarIddes ExperimentsexpIdfür den angegebenenfeatureKey.kameleoonSimulationFFData={"featureKey":{"expId":0}}: Simuliert die Standard-Variation (definiert im Abschnitt Dann für alle anderen in Produktion) für den angegebenenfeatureKey.
encodeURIComponent.- TypeScript
- JavaScript
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 MethodeaddData() 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.
-
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.
- TypeScript
- JavaScript
Parameter
-
kameleoonDataist 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
0beginnt, was bedeutet, dass die erste benutzerdefinierte Datei, die Sie für einen bestimmten Ort erstellen, die ID0erhält, nicht1.
Ausgelöste Ausnahmen
Lesen Sie die Referenz Datentypen für weitere Einzelheiten zur Verwaltung verschiedener Datentypen.
flush()
- SDK Version 3
- SDK Version 4
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.- TypeScript
- JavaScript
Parameter
Oder ein Objekt vom Typ FlushParamsType mit den folgenden Eigenschaften:
Ausgelöste Ausnahmen
getRemoteData()
Die MethodegetRemoteData() 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.
- TypeScript
- JavaScript
Parameter
Rückgabewert
Ausgelöste Ausnahmen
getRemoteVisitorData()
- SDK Version 3
- SDK Version 4
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.
- TypeScript
- JavaScript
Parameter
Ein Objekt vom TypRemoteVisitorDataParamsType mit den folgenden Eigenschaften:Rückgabewert
Ausgelöste Ausnahmen
Parameter in getRemoteVisitorData() verwenden
Die MethodegetRemoteVisitorData() 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.
- TypeScript
- JavaScript
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 lesengetVisitorCode 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.
- TypeScript
- JavaScript
Parameter
Ausgelöste Ausnahmen
Widerrufsverhalten der Zustimmung
Wenn SiesetLegalConsent() 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()
- SDK Version 3
- SDK Version 4
- 📨 Sendet Tracking-Daten an Kameleoon
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.- TypeScript
- JavaScript
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”).- TypeScript
- JavaScript
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 MethodegetEngineTrackingCode() 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.
- TypeScript
- JavaScript
-
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.
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
- SDK Version 3
- SDK Version 4
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 Sienull als handler übergeben, wird der aktuelle handler für den ausgewählten Ereignistyp entfernt.- DataFileUpdate
- HttpRequest
- TypeScript
- JavaScript
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 MethodegetEngineTrackingCode() 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 MethodeaddData()).
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.- TypeScript
- JavaScript
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.- TypeScript
- JavaScript
Konversion
Der hier gespeicherteConversion-Datensatz kann verwendet werden, um Experiment- und Personalisierungsberichte nach beliebigen Zielen, die damit verbunden sind, zu filtern.
ConversionParametersType conversionParameters - ein Objekt mit den unten beschriebenen Konversionsparametern
- TypeScript
- JavaScript
Cookie
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. WennlocalStoragenicht möglich ist, kann das SDKCookie-Daten als Alternative verwenden. -
Jeder Besucher kann nur ein
Cookiehaben. Das Hinzufügen eines zweitenCookieüberschreibt den ersten.
- TypeScript
- JavaScript
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.
- TypeScript
- JavaScript
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.GeolocationInfoType mit den folgenden Feldern:
- TypeScript
- JavaScript
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
CustomDatapro eindeutigemindexhaben. Das Hinzufügen eines weiterenCustomDatamit demselbenindexersetzt 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.
- TypeScript
- JavaScript
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.Jeder Besucher kann nur ein
Device haben. Das Hinzufügen eines zweiten Device überschreibt das erste.- TypeScript
- JavaScript
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.- TypeScript
- JavaScript
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.
- TypeScript
- JavaScript
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.- TypeScript
- JavaScript
ApplicationVersion
ApplicationVersion stellt die Semantic-Version-Nummer Ihrer Anwendung dar.
- TypeScript
- JavaScript
Zurückgegebene Typen
DataFile
TheDataFile 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.
- TypeScript
- JavaScript
FeatureFlag
DasFeatureFlag 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.
- TypeScript
- JavaScript
Regel
DasRule 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.
- TypeScript
- JavaScript
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
idoderexperimentIdnullist, was eine Standardvariation anzeigt. - Die Zuordnung
variableskönnte leer sein, wenn keine Variablen der Variation zugeordnet sind.
- TypeScript
- JavaScript
Variable
Variable enthält Informationen über eine Variable, die der zugewiesenen Variation zugeordnet ist.
- TypeScript
- JavaScript
Veraltete Methoden
getFeatureFlagVariationKey()
- 📨 Sendet Tracking-Daten an Kameleoon
- 🎯 Ereignisse:
EventType.Evaluation
Verwenden Sie
getVariation Methode stattdessengetFeatureFlagVariationKey() 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.
- TypeScript
- JavaScript
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.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.
- TypeScript
- JavaScript
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.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
- TypeScript
- JavaScript
Parameter
Rückgabewert
Ausgelöste Ausnahmen
getFeatureFlagVariable()
- 📨 Sendet Tracking-Daten an Kameleoon
- 🎯 Ereignisse:
EventType.Evaluation
Verwenden Sie
getVariation 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.
- TypeScript
- JavaScript
Parameter
Parameterobjekt vom TypGetFeatureFlagVariableParamsType 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.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.
- TypeScript
- JavaScript
Parameter
Rückgabewert
Ausgelöste Ausnahmen
onConfigurationUpdate()
Verwenden Sie
onEvent Methode mit EventType.ConfigurationUpdate stattdessen.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.
- TypeScript
- JavaScript
Parameter
Ausgelöste Ausnahmen
getFeatureFlags()
Verwenden Sie
getDataFile() Methode stattdessen.getFeatureFlags() gibt eine Liste von Feature Flags zurück, die in der Client-Konfiguration gespeichert sind.
- TypeScript
- JavaScript
Rückgabewert
Ausgelöste Ausnahmen
onEvent()
Verwenden Sie stattdessen
setEventHandler().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.- TypeScript
- JavaScript
Ereignisse
Ereignisse werden in derEventType-Enumeration definiert. Je nach Ereignistyp hat der eventData-Parameter einen anderen Typ.