React 16.8.0+
Entwicklerhandbuch
Folgen Sie diesem Abschnitt, um das SDK in Ihre Anwendung zu integrieren und mehr über die Verwendung des SDK zu erfahren.Erste Schritte
Dieser Abschnitt führt Sie durch die erstmalige Installation und Konfiguration des SDK.Installation
Das Kameleoon SDK-Installationstool ist der bevorzugte Weg, das SDK zu installieren. Dieser SDK Installer hilft Ihnen, das gewünschte SDK zu installieren, ein einfaches Codebeispiel zu generieren und bei Bedarf external dependencies zu konfigurieren. Um das SDK-Installationstool zu starten, installieren und führen Sie es global aus:npx:
Erstellen des Kameleoon Clients
Um zu beginnen, erstellen Sie einen Einstiegspunkt für das React SDK, indem Sie den Kameleoon Client auf der obersten Ebene Ihrer Anwendung erstellen. Erstellen Sie eine Instanz vonKameleoonClient using the createClient() Funktion, imported vom kameleoon package.
- TypeScript
- JavaScript
Umschließen der Anwendung mit dem Kameleoon Provider
Im zweiten Schritt verbinden Sie den zuvor erstellten Kameleoon Client mitKameleoonProvider indem Sie den konfigurierten Client an KameleoonProvider übergeben:
- TS
- JS
- NextJS (TS)
- NextJS (JS)
- NextJS with externals(TS)
- NextJS with externals(JS)
KameleoonProvider
Verwenden Sie diesen Provider auf der obersten Ebene, indem Sie Ihre App umschließen, um Zugriff zu erhalten aufKameleoonClient. Dies stellt sicher, dass Ihre App beim Start nicht aufgrund von Flag-Änderungen flackert.
Props
| Name | Typ | Beschreibung |
|---|---|---|
| children (required) | ReactNode | Untergeordnete Elemente des Providers |
| client (required) | KameleoonClient | KameleoonClient Instanz, erstellt von createClient() |
KameleoonProviderSSR
Verwenden Sie diesen Provider auf der obersten Ebene, indem Sie Ihre App umschließen, um Zugriff zu erhalten aufKameleoonClient.
KameleoonProviderSSR unterscheidet sich von KameleoonProvider dadurch, dass es eine KameleoonClient -Instanz im Kontext bei der ersten Client-Anfrage erstellt. Dies verhindert das Risiko, den Client auf der Serverseite zu erstellen. Es wird zur Verwendung in SSR-basierten Systemen empfohlen, z. B. Next.js mit SSR.
Props
| Name | Typ | Beschreibung |
|---|---|---|
| children (required) | ReactNode | Untergeordnete Elemente des Providers |
| sdkParameters (required) | SDKParameters | SDKParameters -Einstellungen zum Erstellen einer Instanz von KameleoonClient |
Warten auf die Client-Initialisierung
KameleoonClient -Initialisierung erfolgt asynchron, um sicherzustellen, dass der Kameleoon-API-Aufruf für diesen Hook erfolgreich war. useInitialize wird verwendet. Sie können async/await, Promise.then() oder eine andere Methode verwenden, um die asynchrone Client-Initialisierung zu behandeln.
- TypeScript
- JavaScript
Aktivieren eines feature flags
Zuweisen einer eindeutigen ID an einen Benutzer
Um einem Benutzer eine eindeutige ID zuzuweisen, können Sie die MethodegetVisitorCode() verwenden. Wenn ein visitor code nicht existiert (aus dem Cookie der Request-Header), generiert die Methode eine zufällige eindeutige ID oder verwendet einen defaultVisitorCode , den Sie generiert hätten. Die ID wird dann in einem Response-Headers-Cookie gesetzt.
Wenn Sie Kameleoon im Hybrid mode verwenden, stellt der Aufruf der Methode getVisitorCode() sicher, dass die eindeutige ID (visitor code) zwischen der Anwendungsdatei engine.js (früher kameleoon.js genannt) und dem SDK geteilt wird.
Abrufen einer Flag-Konfiguration
Um einen feature flag in Ihrem Code zu implementieren, müssen Sie zunächst den 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() behandelt sowohl einfache feature flags mit ON/OFF-Zuständen als auch komplexere Flags mit mehreren Variationen. Die Methode ruft die passende Variation für den Benutzer ab, indem sie die Feature-Regeln prüft, die Variation zuweist und sie basierend auf dem featureKey und visitorCode zurückgibt.
Die Methode isFeatureFlagActive() kann verwendet werden, wenn Sie die Konfiguration eines einfachen feature flags mit nur einem ON- oder OFF-Zustand abrufen möchten, im Gegensatz zu komplexeren feature flags mit mehreren Variationen oder Targeting-Optionen.
Wenn Ihr feature flag zugehörige Variablen hat (wie spezifische Verhaltensweisen, die an jede Variation gebunden sind), getVariation() ermöglicht Ihnen auch den Zugriff auf das Objekt Variation, das Details zur zugewiesenen Variation und zum zugehörigen Experiment liefert. Diese Methode prüft, ob der Benutzer getargetet ist, ermittelt die dem Besucher zugewiesene Variation und speichert sie. Wenn track=true, sendet das SDK das Expositionsereignis bei der nächsten Tracking-Anfrage an das angegebene Experiment, das automatisch basierend auf dem tracking_interval_millisecond des SDK ausgelöst wird. Standardmäßig ist dieses Intervall auf 1000 Millisekunden (1 Sekunde) eingestellt.
Die Methode getVariation() ermöglicht Ihnen zu steuern, ob Tracking durchgeführt wird. Wenn track=false, werden vom SDK keine Expositionsereignisse gesendet. Dies ist nützlich, wenn Sie es vorziehen, keine Daten über das SDK zu tracken und stattdessen auf clientseitiges Tracking durch die Kameleoon-Engine zurückzugreifen. Zusätzlich ist die Einstellung track=false hilfreich bei Verwendung der Methode getVariations() , bei der Sie möglicherweise nur die Variationen für alle Flags benötigen, ohne Tracking-Ereignisse auszulösen. Wenn Sie mehr darüber erfahren möchten, wie Tracking funktioniert, lesen Sie diesen Artikel
Hinzufügen von Datenpunkten, um einen Benutzer zu targeten oder Besuche in Reports zu filtern/aufzuschlüsseln
Um einen Benutzer zu targeten, stellen Sie sicher, dass Sie relevante Datenpunkte zu seinem Profil hinzugefügt haben, bevor Sie die Feature-Variation abrufen oder prüfen, ob der Flag aktiv ist. Verwenden Sie die MethodeaddData(), um diese Datenpunkte zum Benutzerprofil hinzuzufügen.
Um Datenpunkte abzurufen, die auf anderen Geräten gesammelt wurden, oder um auf frühere Benutzerdaten zuzugreifen (clientseitig erfasst bei der Verwendung von Kameleoon im Hybrid mode), verwenden Sie die Methode getRemoteVisitorData(). Diese Methode ruft Daten asynchron von den Servern ab. Es ist wichtig, getRemoteVisitorData() vor dem Abrufen der Variation oder dem Prüfen, ob der feature flag aktiv ist, aufzurufen, da diese Daten möglicherweise erforderlich sind, um einem Benutzer eine bestimmte Variation zuzuweisen.
Weitere Informationen zu verfügbaren Targeting-Bedingungen finden Sie im ausführlichen Artikel zum Thema.
Zusätzlich stehen die zum Besucherprofil hinzugefügten Datenpunkte zur Verfügung, wenn Sie Ihre Experiments analysieren, sodass Sie Ihre Ergebnisse nach Faktoren wie Gerät und Browser filtern und aufschlüsseln können. Der Kameleoon Hybrid mode sammelt automatisch eine Vielzahl von Datenpunkten auf der Client-Seite, was es einfach macht, Ihre Ergebnisse auf Basis dieser vorab gesammelten Datenpunkte aufzuschlüsseln. Die vollständige Liste finden Sie hier.
Wenn Sie zusätzliche Datenpunkte über das automatisch gesammelte hinaus tracken müssen, können Sie das Custom Data-Feature von Kameleoon verwenden. Mit Custom Data können Sie spezifische Informationen erfassen und analysieren, die für Ihre Experiments relevant sind. Vergessen Sie nicht, die Methode flush() aufzurufen, um die gesammelten Daten zur Analyse an die Kameleoon-Server zu senden.
Um sicherzustellen, dass Ihre Ergebnisse korrekt sind, wird empfohlen, Bots mithilfe des Datentyps
UserAgent herauszufiltern.Tracking von Ziel-Konversionen
Wenn ein Benutzer eine gewünschte Aktion ausführt (z. B. einen Kauf tätigt), wird dies als Konversion aufgezeichnet. Um Konversionen zu tracken, verwenden Sie die MethodetrackConversion() und geben Sie die erforderlichen visitorCode und goalId -Parameter an.
Die Konversions-Tracking-Anfrage wird zusammen mit der nächsten geplanten Tracking-Anfrage gesendet, die das SDK in regelmäßigen Abständen sendet (definiert durch tracking_interval_millisecond). Wenn Sie die Anfrage sofort senden möchten, verwenden Sie die Methode flush() mit dem Parameter instant=true.
Senden von Events an Analyselösungen
Um Konversionen zu tracken und Expositionsereignisse an Ihre Kundenanalyselösung zu senden, müssen Sie Kameleoon zunächst im Hybrid mode implementieren. Verwenden Sie dann die MethodegetEngineTrackingCode().
Die Methode getEngineTrackingCode() ruft den eindeutigen Tracking-Code ab, der erforderlich ist, um Expositionsereignisse an Ihre Analyselösung zu senden. Mit dieser Methode können Sie Ereignisse aufzeichnen und an die gewünschte Analyseplattform senden.
Hinweise zu React Native
React Native auf der Plattform
android unterstützt das Feature Real Time Update nicht.@kameleoon/react-native-storage- erstellt mit derreact-native-mmkv-Bibliothek@kameleoon/react-native-event-source- erstellt mit derreact-native-event-source-ts-Bibliothek@kameleoon/react-native-visitor-code-manager- aufgebaut auf derreact-native-mmkv-Bibliothek@kameleoon/react-native-platform-analyzer- erstellt mit derreact-native-Bibliothek- optional
@kameleoon/react-native-secure-prng- erstellt mit derreact-native-get-random-values-Bibliothek
- TypeScript
- JavaScript
Verwendung eines benutzerdefinierten Bucketing-Schlüssels
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 Client-Side- und Server-Side-SDKs, in persistentem Speicher für Mobile-SDKs). In bestimmten Szenarien müssen Sie jedoch möglicherweise sicherstellen, dass alle Benutzer derselben Organisation dieselbe Variante eines feature flags sehen.
Mit der Option Custom Bucketing Key können Sie dieses Standardverhalten überschreiben, indem Sie Ihren eigenen benutzerdefinierten Identifikator für das Bucketing bereitstellen. Diese Überschreibung stellt sicher, dass die Zuweisungslogik von Kameleoon Ihren angegebenen Schlüssel anstelle des Standard-visitorCode.
Anwendungsfälle
Die Verwendung eines benutzerdefinierten Bucketing-Schlüssels ist entscheidend, um Konsistenz und Genauigkeit bei Ihren feature flag-Zuweisungen zu wahren, insbesondere in folgenden Situationen:- Experiments auf Konto- oder Organisationsebene: Für B2B-Produkte oder Szenarien, in denen Sie alle Benutzer derselben Organisation derselben Variation zuweisen möchten, können Sie einen Identifikator wie eine
accountIdverwenden. Benutzerdefinierte Bucketing-Schlüssel sind entscheidend für A/B-Tests von Features, die ein gesamtes Team oder Unternehmen betreffen.
Technische Details
Wenn Sie einen benutzerdefinierten Bucketing-Schlüssel für einen feature flag konfigurieren, stellen Sie Kameleoon einen bestimmten Identifikator aus den Daten Ihrer Anwendung bereit:- Bereitstellen des benutzerdefinierten Schlüssels: Sie stellen dem Kameleoon SDK Ihren benutzerdefinierten Identifikator mithilfe der Methode
addData()bereit. In dieser Methode übergeben Sie Ihren gewählten benutzerdefinierten Bucketing-Schlüssel alsCustomData-Objekt. Hier bezieht sichnewVisitorCodeauf den Identifikator, den Sie für Ihr Bucketing verwenden möchten (z. B. die neueuserIdoderaccountId).
- Bucketing-Logik: Sobald ein benutzerdefinierter Bucketing-Schlüssel über die Methode
addData()bereitgestellt wird, verwenden alle Hash-Berechnungen für die Zuweisung von Benutzern zu Variationen diesennewVisitorCode(Ihren benutzerdefinierten Schlüssel) anstelle des Standard-visitorCode. Die Verwendung desnewVisitorCodebedeutet, dass die Bucketing-Entscheidung an Ihren benutzerdefinierten Identifikator gebunden ist, was konsistente Zuweisungen in verschiedenen Kontexten gewährleistet, in denen dieser Identifikator vorhanden ist. - Datentracking und Analyse: Es ist wichtig zu beachten, dass der
newVisitorCode(Ihr benutzerdefinierter Schlüssel) für Bucketing-Entscheidungen verwendet wird, alle nachfolgenden Daten (z. B. Tracking-Ereignisse und Konversionen) jedoch gesendet und mit dem ursprünglichenvisitorCodeverknüpft sind. Diese Trennung stellt sicher, dass Ihre Analysen die individuellen Benutzerwege und Interaktionen im breiteren Kontext Ihres Experiments korrekt widerspiegeln, auch wenn das Bucketing auf einer höheren Ebene (wie einem Konto) oder über mehrere Geräte/Sitzungen hinweg erfolgt. Ihre ursprünglichen Besucherdaten bleiben für umfassende Berichte intakt.
Technische Anforderungen
Um einen benutzerdefinierten Bucketing-Schlüssel effektiv zu nutzen:- Der Schlüssel muss ein
stringsein. - Er muss für die Entität, die Sie bucketieren möchten, eindeutig sein (z. B. wenn Sie eine
userIdverwenden, sollte die ID jedes Benutzers eindeutig sein). - Der Schlüssel muss dem SDK genau in dem Moment zur Verfügung stehen, 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, mit denen Sie Benutzer in Ihren Kampagnen targeten können. Eine Liste der von diesem SDK unterstützten Bedingungen finden Sie unter use visit history to target users. Sie können auch Ihre eigenen external data to target users.Logging
Das SDK generiert Logs, die verschiedene interne Prozesse und Probleme widerspiegeln.Log-Level
Das SDK unterstützt die Begrenzung des Loggings nach Log-Level.- TypeScript
- JavaScript
Benutzerdefinierte Log-Behandlung
Das SDK schreibt seine Logs standardmäßig in die Konsolenausgabe. Dieses Verhalten kann überschrieben werden.Die Log-Begrenzung nach Log-Level erfolgt unabhängig von der Log-Behandlungslogik.
- TypeScript
- JavaScript
Domain-Informationen
Sie geben eine Domain alsdomain in KameleoonClient [Konfiguration] an, die zum Speichern des Kameleoon-Besucher-Codes in Cookies verwendet wird. Dies ist wichtig bei der Arbeit mit den Methoden getVisitorCode und setLegalConsent Die von Ihnen angegebene Domain wird im Cookie als Domain=-Schlüssel gespeichert.
Festlegen der Domain
Die von Ihnen angegebene Domain gibt an, dass die URL-Adresse das Cookie verwenden kann. Wenn Ihre Domain z. B.www.example.com. ist, ist das Cookie nur von einer www.example.com-URL aus verfügbar. Das bedeutet, dass Seiten mit der Domain app.example.com das Cookie nicht verwenden können.
Um flexibler mit Subdomains umzugehen, können Sie einer Domain ein . voranstellen. Beispielsweise erlaubt die Domain .example.com, dass das Cookie sowohl auf app.example.com als auch auf login.example.com funktioniert.
Sie können keine regulären Ausdrücke, Sonderzeichen, Protokolle oder Portnummern im
domain verwenden.
Außerdem darf eine bestimmte Liste von Subdomains nicht mit dem Präfix . verwendet werden.| Domain | Zulässige URLs | Unzulässige URLs |
|---|---|---|
www.example.com | ✅www.example.com | ❌ app.example.com |
✅ example.com | ❌ .com | |
.example.com = example.com | ✅ example.com | ❌ otherexample.com |
✅ www.example.com | ||
✅ app.example.com | ||
✅ login.example.com | ||
https://www.example.com | ⛔ ungültige Domain | ⛔ ungültige Domain |
www.example.com:4408 | ⛔ ungültige Domain | ⛔ ungültige Domain |
.localhost.com = localhost | ⛔ ungültige Domain | ⛔ ungültige Domain |
Entwicklung auf localhost
localhost wird immer als ungültige Domain betrachtet, was das Testen der Domain bei der Entwicklung auf localhost erschwert.
Es gibt zwei Möglichkeiten, dieses Problem zu vermeiden:
- Geben Sie das Feld
domainim SDK-Client beim Testen nicht an. Dies verhindertlocalhost-Probleme (das Cookie wird auf jeder Domain gesetzt). - Erstellen Sie eine lokale Domain für
localhost. Zum Beispiel:- Navigieren Sie zu
/etc/hostsunter Linux oder zuc:\Windows\System32\Drivers\etc\hostsunter Windows - Öffnen Sie
hostsmit Superuser- oder Administratorrechten - Fügen Sie dem localhost-Port eine Domain hinzu, z. B.:
127.0.0.1 app.com - Jetzt können Sie Ihre App lokal auf
app.com:{my_port}ausführen und.app.comals Ihre Domain angeben
- Navigieren Sie zu
External dependencies
Externe SDK-Abhängigkeiten verwenden das Muster dependency injection, um Ihnen die Möglichkeit zu geben, Ihre eigenen Implementierungen für bestimmte Teile eines SDK bereitzustellen.Im React SDK haben alle external dependencies Standardimplementierungen, die eine native Browser-API verwenden, sodass keine Bereitstellung erforderlich ist, es sei denn, eine andere API ist für bestimmte Anwendungsfälle erforderlich.
| Abhängigkeit | Schnittstelle | Verwendete API | Beschreibung |
|---|---|---|---|
storage (optional) | IExternalStorage | Browser localStorage | Wird verwendet, um alle vorhandenen und gesammelten SDK-Daten zu speichern |
requester (optional) | IExternalRequester | Browser fetch | Wird verwendet, um alle Netzwerkanfragen auszuführen |
eventSource (optional) | IExternalEventSource | Browser EventSource | Wird verwendet, um Server-Sent-Events für Real Time Update -Funktionen zu empfangen |
visitorCodeManager (optional) | IExternalVisitorCodeManager | Browser Cookie | Wird verwendet, um den visitor code zu speichern und zu synchronisieren |
prng (optional) | IExternalPRNG | Math.random or Browser crypto.getRandomValues | Wird verwendet, um eindeutige IDs für Tracking-Ereignisse zu generieren |
logger (optional) | ILogger | Custom implementation | Wird für die benutzerdefinierte Behandlung von Logs aus dem SDK verwendet. Ermöglicht zu definieren, wie Logs verarbeitet und wohin sie ausgegeben werden. |
platformAnalyzer (optional) | IPlatformAnalyzer | React Native API | Erkennt die Plattform automatisch und fügt diese Informationen den Besucherdaten hinzu. Speziell für React Native entwickelt. |
Storage
- TypeScript
- JavaScript
EventSource
- TypeScript
- JavaScript
VisitorCodeManager
- TypeScript
- JavaScript
Requester
- TypeScript
- JavaScript
Pseudo Random Number Generator
Pseudo Random Number Generator (PRNG) ist eine Abhängigkeit, die eine zufällige Gleitkommazahl zwischen0 und 1 erzeugt (ähnlich zu Math.random).
Die standardmäßige Kameleoon-Implementierung basiert auf der Browser-Funktion crypto oder Math.random , falls crypto nicht verfügbar ist.
Diese APIs sind sehr sicher und zuverlässig, jedoch möchten Sie in einigen Randfällen (insbesondere in einigen React Native -Engines) möglicherweise Ihre eigene Implementierung bereitstellen oder ein dediziertes Kameleoon-Paket für React Native verwenden - @kameleoon/react-native-secure-prng
- TypeScript
- JavaScript
Fehlerbehandlung
Fast jeder React SDK-Callback, der von Hooks zurückgegeben wird, kann irgendwann einen Fehler werfen. Diese Fehler sind nicht nur Warnhinweise, sondern bewusst vordefinierteKameleoonErrors
die die nativ JavaScript-Klasse Error erweitern und nützliche Meldungen sowie ein spezielles Feld type vom Typ KameleoonException.
KameleoonException ist ein Enum, das alle möglichen Fehlertypen enthält.
Um genau zu wissen, welche Art von KameleoonException die Callbacks werfen können, können Sie den Abschnitt Throws der Hook-Beschreibung auf dieser Seite überprüfen oder einfach den Mauszeiger über den Callback in Ihrer IDE bewegen, um die jsdocs-Beschreibung anzuzeigen.
Insgesamt gilt die Fehlerbehandlung als gute Praxis, um Ihre Anwendung stabiler zu machen und technische Probleme zu vermeiden.
- TypeScript
- JavaScript
Cross-Device-Experimentation
Um Besucher zu unterstützen, die von mehreren Geräten aus auf eine App zugreifen, ermöglicht Kameleoon die Synchronisierung zuvor gesammelter Besucherdaten über jedes Gerät des Besuchers hinweg und die Abgleichung des Besuchsverlaufs über Geräte hinweg durch Cross-Device-Experimentation. Fallstudien und detaillierte Informationen darüber, wie Kameleoon Daten geräteübergreifend verarbeitet, finden Sie im Artikel zur Cross-Device-Experimentation.Synchronisierung von Custom Data über Geräte hinweg
Obwohl die benutzerdefinierte Mapping-Synchronisierung verwendet wird, um Besucherdaten geräteübergreifend abzugleichen, ist sie nicht immer erforderlich. Im Folgenden sind zwei Szenarien aufgeführt, in denen keine benutzerdefinierte Mapping-Synchronisierung erforderlich ist: Dieselbe Benutzer-ID auf allen Geräten Wenn dieselbe Benutzer-ID konsistent auf allen Geräten verwendet wird, erfolgt die Synchronisierung automatisch ohne benutzerdefinierte Mapping-Synchronisierung. Es genügt, die MethodegetRemoteVisitorData() aufzurufen, wenn Sie die zwischen mehreren Geräten gesammelten Daten synchronisieren möchten.
Multi-Server-Instanzen mit konsistenten IDs
In komplexen Setups mit mehreren Servern (z. B. verteilten Serverinstanzen), bei denen dieselbe Benutzer-ID auf allen Servern verfügbar ist, ist die Synchronisierung zwischen Servern (mit getRemoteVisitorData()) ohne zusätzliche benutzerdefinierte Mapping-Synchronisierung ausreichend.
Kunden, die zusätzliche Daten benötigen, können die Beschreibung der Methode getRemoteVisitorData() für weitere Anleitungen heranziehen. Im folgenden Code wird angenommen, dass derselbe eindeutige Identifikator (in diesem Fall der visitorCode, der auch als userId) bezeichnet werden kann) konsistent zwischen den beiden Geräten verwendet wird, um Daten korrekt abzurufen.
Wenn Sie die gesammelten Daten in Echtzeit synchronisieren möchten, müssen Sie den Scope Visitor für Ihre Custom Data wählen.
- TypeScript
- JavaScript
Device One
Device Two
Verwendung von Custom Data für Session-Zusammenführung
- SDK Version 9
- SDK Version 10
Cross-Gerät experimentation allows you to combine a Besucher’s Verlauf across each derir Geräte (Verlauf Abgleich). One der powerful features that Verlauf Abgleich bietet is the ability to merge different Besucher Sitzungen into one. To reconcile visit Verlauf, you can use
CustomData verwenden, um einen eindeutigen Identifikator für den Besucher bereitzustellen.Follow the activating cross-Gerät Verlauf Abgleich guide to set up your Custom Data on the Kameleoon PlattformWenn Ihre Custom Data eingerichtet sind, können Sie sie in Ihrem Code verwenden, um die Sitzung eines Besuchers zusammenzuführen.
Sitzungen mit demselben Identifikator sehen immer dieselbe Experiment-Variation und werden als ein einzelner Besucher in der Ansicht Visitor auf den Ergebnisseiten Ihres Experiments angezeigt.Die SDK-Konfiguration stellt sicher, dass zugeordnete Sitzungen immer dieselbe Variation des Experiments sehen.Bevor Sie andere Methoden verwenden, stellen Sie sicher, dass Sie dem SDK mitteilen, dass der Besucher ein eindeutiger Identifikator ist, indem Sie UniqueIdentifier -Daten zu einem Besucher hinzufügenHier ist ein Beispiel, wie Sie Custom Data für die Session-Zusammenführung verwenden. In diesem Beispiel haben wir eine Anwendung mit einer Login-Seite. Da wir die Benutzer-ID zum Zeitpunkt des Logins nicht kennen, verwenden wir einen anonymen Besucher-Identifikator, der durch die Methode getVisitorCode generiert wird. Nachdem sich der Benutzer angemeldet hat, können wir den anonymen Besucher mit der Benutzer-ID verknüpfen und sie als eindeutigen Identifikator für den Besucher verwenden.- TypeScript
- JavaScript
Login Page
Application Page
Utilities
Das SDK verfügt über eine Reihe von Utility-Methoden, die zur Vereinfachung des Entwicklungsprozesses verwendet werden können. Alle Methoden werden als statische Mitglieder der KlasseKameleoonUtils class.
simulateSuccessRequest
Die MethodesimulateSuccessRequest is wird verwendet, um simulate a erfolgreich Anfrage zum Kameleoon server. It kann nützlich for custom Requester implementations when developer needs to simulate a erfolgreich Anfrage, zum Beispiel disabling tracking.
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| requestType (required) | RequestType | Ein Anfragetyp |
| data (required) | SimulateRequestDataType[RequestType] | Ein Anfragetyp data, which is different depending on RequestType |
SimulateRequestDataType ist wie folgt definiert:
RequestType.Tracking-nullRequestType.ClientConfiguration-ClientConfigurationDataTypeRequestType.RemoteData-JSONType
Rückgabewert
| Typ | Beschreibung |
|---|---|
Promise<KameleoonResponseType> | gibt ein Promise mit der Antwort der Anfrage zurück |
getCookieValue
Die MethodegetCookieValue wird verwendet, um eine gängige Cookie-Zeichenfolge zu parsen (key_1=value_1; key_2=value_2; ...) und den Wert eines bestimmten Cookie-Schlüssels abzurufen. Sie ist nützlich, wenn mit einer benutzerdefinierten Implementierung von VisitorCodeManager.
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| Cookie (required) | string | Cookie-Zeichenfolge in der Form key_1=value_1; key_2=value_2 |
| key (required) | string | String-Darstellung eines Schlüssels, nach dem ein Wert gesucht werden soll |
Rückgabewert
| Typ | Beschreibung | |
|---|---|---|
| `string | null` | gibt eine Zeichenfolge mit einem Cookie-Wert oder null zurück, wenn der Schlüssel nicht gefunden wurde |
Referenz
Dies ist die vollständige Referenzdokumentation für das React SDK.Initialisierung
Dieser Abschnitt enthält die Methoden, die Sie zum Erstellen und Initialisieren des Kameleoon Client in Ihrer Anwendung verwenden.initialisieren()
- SDK Version 9
- SDK Version 10
An asynchronous
initialize Funktion, collected with useInitialize Hook, that’s wird verwendet für KameleoonClient Initialisierung by fetching Kameleoon SDK related data from server or by retrieving data from local source if data is up-to-date or aktualisieren Intervall has not been reached.-
If das SDK Konfiguration could not be retrieved but there is an older Konfiguration verfügbar in SDK Speicher, das SDK uses the older Konfiguration as a fallback and the
initializedoes not throw an Fehler. - SDK supports an offline mode.
- TypeScript
- JavaScript
Rückgabewert
| Typ | Beschreibung |
|---|---|
Promise<boolean> | a promise resolved to a boolean indicating a erfolgreich sdk Initialisierung. Generally initialisieren will throw an Fehler if the something that can not be handled will happen, so the boolean Wert will almost always be true and won’t give as much nützlich Informationen. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.StorageWrite | Speicherdaten konnten nicht aktualisiert werden |
KameleoonException.ClientConfiguration | Client-Konfiguration konnte nicht von der Kameleoon-API abgerufen werden |
KameleoonException.MaximumRetriesReached | Maximale Anzahl an Wiederholungen erreicht, Anfrage fehlgeschlagen |
isInitialized()
TheisInitialized Funktion, collected mit dem useInitialize Hook, is a small utility Methode that checks if das SDK Initialisierung has completed. Zum Beispiel, this kann nützlich when dealing with a deeply nested Komponente tree, because it allows you to quickly check das SDK readiness without having to manage a global state, or pass the Initialisierung result using Komponente props.
- TypeScript
- JavaScript
Rückgabewert
Aboolean Wert. Returns true if SDK was successfully initialized, otherwise returns false.
createClient()
To get started, you need to create an entry point for React SDK by creating a Kameleoon Client at the top level of your Anwendung using thecreateClient() Funktion imported from kameleoon package.
An Instanz of KameleoonClient is created using createClient() Funktion.
- TypeScript
- JavaScript
Argumente
An Objekt of typeSDKParameters containing:
| Name | Typ | Beschreibung |
|---|---|---|
| siteCode (required) | string | Dies ist a eindeutig key der Kameleoon project you are using mit dem SDK. This field is erforderlich. |
| Konfiguration (optional) | Partial<SDKConfigurationType> | client’s Konfiguration |
| externals (optional) | ExternalsType | extern implementation of SDK Abhängigkeiten (External Abhängigkeiten) |
Konfigurationsparameter
- SDK Version 9
- SDK Version 10
| Name | Typ | Beschreibung | Standardwert |
|---|---|---|---|
| updateInterval (optional) | number | Gibt das Aktualisierungsintervall in Minuten an, in dem das SDK die Konfiguration für die aktiven Experiments und feature flags abruft. Der Wert bestimmt die maximale Zeit, die benötigt wird, um Änderungen wie das Aktivieren oder Deaktivieren von feature flags oder das Starten von Experiments an Ihre Produktionsserver zu übertragen. Wenn nicht angegeben, ist das Standardintervall auf 60 Minuten festgelegt. Zusätzlich bieten wir einen streaming Modus an, der server-sent events (SSE) verwendet, um neue Konfigurationen automatisch an das SDK zu pushen und neue Konfigurationen in Echtzeit ohne Verzögerungen anzuwenden. | 60 |
| Umgebung (optional) | Environment | string | feature flag-Umgebung | Environment.Production |
| targetingDataCleanupInterval (optional) | number | Intervall in Minuten zum Bereinigen der Targeting-Daten; der Mindestwert beträgt 1 Minute | undefined (keine Bereinigung wird durchgeführt) |
| cookieDomain (optional) | string | domain zu der das Cookie gehört. | undefined |
| networkDomain (optional) | string | benutzerdefinierte Domain, die die SDKs für alle ausgehenden Netzwerkanfragen verwenden, häufig für Proxying. Das Format ist second_level_domain.top_level_domain (zum Beispiel, example.com). Wenn ein ungültiges Format angegeben wird, verwendet das SDK den Standardwert von Kameleoon | undefined |
| requestTimeout (optional) | number | Timeout in Millisekunden für alle SDK-Netzwerkanfragen; wenn das Timeout überschritten wird, schlägt die Anfrage sofort fehl | 10_000 (10 Sekunden) |
| trackingInterval (optional) | number | Gibt das Intervall für Tracking-Anfragen in Millisekunden an. Alle Besucher, die für einen feature flag ausgewertet wurden oder zugehörige Daten hatten, werden in diese Tracking-Anfrage aufgenommen, die einmal pro Intervall durchgeführt wird. Der Mindestwert ist 1_000 ms und der Höchstwert ist 5_000 ms | 1_000 (1 Sekunde) |
| stubMode (optional) | boolean | Wenn auf true gesetzt, arbeitet der Client im Stub-Modus und führt keine Operationen aus. In diesem Modus führen alle Methodenaufrufe keine Aktionen aus, sodass keine externen Aktionen oder Nebenwirkungen auftreten. | false |
| defaultDataFile (optional) | string | The defaultDataFile feature ensures the Kameleoon SDK is always READY by providing a fallback Konfiguration when no cached data file exists. Developers can preload a gültig Konfiguration by fetching it from https://sdk-config.kameleoon.eu/v3/<sitecode> and passing it as defaultDataFile during Initialisierung. When a dateModified timestamp (in milliseconds) is bereitgestellt and is newer than the cached version, das SDK will verwenden Sie die Standard datafile stattdessen der cached version. If dateModified is omitted, the Standard datafile is only applied when no cached version exists. This ensures das SDK always has a gültig Konfiguration, whether Standard, cached, or aktualisiert. | undefined |
Rückgabewert
| Typ | Beschreibung |
|---|---|
KameleoonClient | an Instanz of KameleoonClient. |
Make sure not to use several client instances in one Anwendung as it is not fully unterstützt yet and may overwrite the local Speicher Konfiguration and cause unintended behavior (bugs).
Feature flags and Variationen
Dieser Abschnitt enthält die Methoden, mit denen Sie die dem Besucher zugewiesenen feature flags und Variationen abrufen und verwalten.getVariation()
- 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter
track)
Variation assigned to a given Besucher for a specific feature flag.
This Methode takes featureKey as a erforderlich Argument und track as an optional Argument. The track Argument is optional and defaults to true.
It gibt die assigned Variation für den Besucher. If the Besucher is not associated with any feature flag rules, the Methode gibt die Standard Variation für den given feature flag.
Ensure that proper Fehler handling is implemented in your code to manage potential Ausnahmen.
The Standard Variation refers zum Variation assigned to a Besucher when they do not match any vordefiniert delivery rules for a feature flag. In other words, it is the fallback Variation applied to all Benutzer who are not targeted by specific rules. Es ist represented as the Variation im “Then, for everyone else…” Abschnitt in a management interface.
- TypeScript
- JavaScript
Argumente
An Objekt of typeGetVariationParamsType mit dem following properties:
| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| visitorCode (required) | string | Eindeutiger Identifikator des Besuchers. | |
| featureKey (required) | string | Schlüssel des Features, das Sie einem Besucher exponieren möchten. | |
| track (optional) | boolean | Ein optionaler Parameter zum Aktivieren oder Deaktivieren des Trackings der Feature-Auswertung. | true |
Rückgabewert
| Typ | Beschreibung |
|---|---|
Variation | An assigned Variation to a given Besucher for a specific feature flag. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call. |
KameleoonException.VisitorCodeEmpty | Der Visitor-Code ist leer. |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten. |
KameleoonException.FeatureFlagConfigurationNotFound | Ausnahme indicating that the requested feature key wasn’t found im intern Konfiguration der SDK. This usually means that the feature flag is not activated im Kameleoon app (but code implementing the feature is already deployed im Anwendung). |
KameleoonException.FeatureFlagEnvironmentDisabled | Ausnahme indicating that feature flag is disabled für den Besucher’s aktuell Umgebung (zum Beispiel, production, staging, or development). |
getVariations()
- 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter
track) - 🎯 Events:
EventType.Evaluation
Die Methode is obtained using
useFeatureFlag Hook.Variation Objekte assigned to a given Besucher across all feature flags.
This Methode iterates over all verfügbar feature flags and gibt die assigned Variation for each flag associated mit dem specified Besucher. It takes visitorCode as a erforderlich Argument, while onlyActive und track are optional.
- If
onlyActiveis set totrue, the MethodegetVariations()will return feature flags Variationen bereitgestellt the Benutzer is not bucketed mit demoffVariation. - The
trackParameter controls whether or not the Methode will track the Variation assignments. By Standard, it is set totrue. If set tofalse, the tracking wird disabled.
Variation as Werte. If no Variation is assigned for a feature flag, the Methode gibt die Standard Variation for that flag.
Proper Fehler handling sollte implemented to manage potential Ausnahmen.
The Standard Variation refers zum Variation assigned to a Besucher when they do not match any vordefiniert delivery rules for a feature flag. In other words, it is the fallback Variation applied to all Benutzer who are not targeted by specific rules. Es ist represented as the Variation im “Then, for everyone else…” Abschnitt in a management interface.
- TypeScript
- JavaScript
Argumente
An Objekt of typeGetVariationsParamsType mit dem following properties:
| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| visitorCode (required) | string | Eindeutiger Identifikator des Besuchers. | |
| onlyActive (optional) | boolean | An optional Parameter indicating whether to return Variationen for active (true) or all (false) feature flags. | false |
| track (optional) | boolean | Ein optionaler Parameter zum Aktivieren oder Deaktivieren des Trackings der Feature-Auswertung. | true |
Rückgabewert
| Typ | Beschreibung |
|---|---|
Map<string, Variation> | Map that contains the assigned Variation Objekte der feature flags using the keys der corresponding features. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call. |
KameleoonException.VisitorCodeEmpty | Der Visitor-Code ist leer. |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten. |
isFeatureFlagActive()
- 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter
track) - 🎯 Events:
EventType.Evaluation
isFeatureFlagActive(), used mit dem useFeatureFlag Hook, determines whether a Besucher identified by visitorCode has the specified featureKey active. This Methode checks the Targeting conditions, identifies the Variation für den Besucher, and saves this Informationen to Speicher. Additionally, the Hook sends a tracking Anfrage.
Es gibt also an overload for this Methode that includes a track Parameter, allowing you to disable the tracking der feature evaluation.
Visitor muss targeted to has feature flag active
Kameleoon uses tracking to count Sitzungen and Besucher when you call certain Methoden, such as
isFeatureFlagActive(), getVariation() oder getVariations().Verwenden Sie die Standard true Wert für den track Parameter when you expose Besucher to a Variation and need to count them. Set the track Parameter to false only if you callese Methoden before you expose Besucher.Zum Beispiel, if you call getVariations() to retrieve all Variationen before you expose Besucher, set the track Parameter to false. This setting prevents Kameleoon from prematurely counting a Sitzung. You can then trigger tracking later when you explicitly expose the Besucher.Kameleoon sends tracking data every second by Standard. You can configure this Intervall up to five seconds using the tracking Intervall Konfiguration option. Kameleoon groups tracking events into a single Sitzung as long as the Intervall between events is less than 30 minutes. If more than 30 minutes elapse between tracking events, Kameleoon counts the events as separate Sitzungen. A visit appears in your reports 30 minutes after the last recorded event im Sitzung.- TypeScript
- JavaScript
Argumente
Es gibt two overloads verfügbar for this Methode:- Two Parameter overload:
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten |
| featureKey (required) | string | ein eindeutiger Schlüssel für den feature flag |
- Objekt Parameter overload of type
IsFeatureFlagActiveParamsType:
| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten | - |
| featureKey (required) | string | ein eindeutiger Schlüssel für den feature flag | - |
| track (optional) | boolean | ein boolescher Indikator dafür, ob die Feature-Auswertung getrackt werden soll | true |
Rückgabewert
| Typ | Beschreibung |
|---|---|
boolean | indicator of whether the feature flag with featureKey is active for Besucher with visitorCode. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.FeatureFlagConfigurationNotFound | Es wurde kein feature flag für den angegebenen featureKey |
KameleoonException.DataInconsistency | Eine zugewiesene Variation wurde gefunden, aber es gibt keinen feature flag mit dem entsprechenden featureKey |
setForcedVariation()
The Methode allows you to programmatically assign a specificVariation to a Benutzer, bypassing the standard evaluation process. Dies ist especially valuable for controlled Experiments where the usual evaluation logic is not erforderlich or muss skipped. It can also be helpful in scenarios like debugging or custom testing.
When a erzwungen Variation is set, it überschreibt Kameleoon’s real-time evaluation logic. Processes like Segmentierung, Targeting conditions, and algorithmic calculations are skipped. To preserve Segmentierung and Targeting conditions during an Experiment, set forceTargeting=false stattdessen.
Simulated Variationen always take precedence im execution order. If a simuliert Variation calculation is triggered, it wird fully processed and completed first.
- TypeScript
- JavaScript
Argumente
An Objekt of typeSetForcedVariationParametersType mit dem following properties:
| Name | Typ | Beschreibung | Standard | |
|---|---|---|---|---|
| visitorCode (required) | string | Eindeutiger Identifikator des Besuchers. | ||
| experimentId (required) | number | Experiment Id that wird targeted and selected during the evaluation process. | ||
| variationKey (required) | `string | null` | Variation Key corresponding to a Variation that sollte erzwungen as the returned Wert für den Experiment. If the Wert is null, the erzwungen Variation wird reset. | |
| forceTargeting (optional) | boolean | Indicates whether Targeting für den Experiment sollte erzwungen and skipped (true) or applied as im standard evaluation process (false). | true |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeEmpty | Der Visitor-Code ist leer. |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten. |
KameleoonException.Initialization | Indicates that das SDK is not yet fully initialized. |
KameleoonException.FeatureFlagExperimentNotFound | Ausnahme indicating that the requested Experiment id has not been found im SDK’s intern Konfiguration. Dies ist usually normal and means that the rule’s corresponding Experiment has not yet been activated on Kameleoon’s side. |
KameleoonException.FeatureFlagVariationNotFound | Ausnahme indicating that the requested Variation key(id) has not been found im intern Konfiguration der SDK. Dies ist usually normal and means that the Variation’s corresponding Experiment has not yet been activated on Kameleoon’s side. |
KameleoonException.StorageRead | Speicherdaten konnten nicht gelesen werden. |
KameleoonException.StorageWrite | Speicherdaten konnten nicht aktualisiert werden. |
In most cases, only the basic Fehler,
KameleoonException, needs to be handled, as demonstrated im example. However, if different types of Fehler require a Antwort, handle each one separately based on specific requirements. Additionally, for enhanced reliability, general language Fehler kann handled by including Error.evaluateAudiences()
- 📨 Sendet Tracking-Daten an Kameleoon
evaluateAudiences() sollte called after all relevant Besucher data has been set or aktualisiert, and just before getting a feature Variation or checking a feature flag. This approach ensures that the Besucher is evaluated against the most aktuell data verfügbar, allowing for accurate Audience assignment based on all criteria.
After calling this Methode, you can perform a detailed analysis of Segment performance in Audiences Explorer.
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutiger Identifikator des Besuchers. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call. |
KameleoonException.VisitorCodeEmpty | Der Visitor-Code ist leer. |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten. |
In most cases, only the basic Fehler,
KameleoonException, needs to be handled, as demonstrated im example. However, if different types of Fehler require a Antwort, handle each one separately based on specific requirements. Additionally, for enhanced reliability, general language Fehler kann handled by including Error.getDataFile()
Gibt die aktuell SDK Konfiguration as aDataFile Objekt.
- TypeScript
- JavaScript
Rückgabewert
| Typ | Beschreibung |
|---|---|
DataFile | The DataFile containing das SDK Konfiguration |
Besucherdaten
Dieser Abschnitt enthält die Methoden, mit denen Sie Besucherdaten verwalten.getVisitorCode()
getVisitorCode Methode collected from useVisitorCode Hook obtains a visitor code vom Browser Cookie. If the visitor code doesn’t exist yet, the Funktion generates a random visitor code (or uses the defaultVisitorCode Wert if you bereitgestellt one) and sets the new visitor code in a Cookie.
Die Methode
getVisitorCode() Methode allows you to set simuliert Variationen for a Besucher. When Cookies (from a Anfrage or document) contaim key kameleoonSimulationFFData, the standard evaluation process is bypassed. Instead, the Methode directly returns a Variation basierend auf dem bereitgestellt data.You can apply simulations in two ways:- Automatically (recommended): If using Kameleoon Web Experimentation or das SDK in Hybrid mode, the Cookie is created automatically when simulating a variant’s display using the Simulation Panel.
- Manually: Set the
kameleoonSimulationFFDataCookie manually.
- Simulated Variationen: Affect the overall feature flag result.
- Forced Variationen: Are specific to an individual Experiment.
kameleoonSimulationFFData Cookie follows this Format:kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: Simulates the Variation withvarIdof ExperimentexpIdfür den givenfeatureKey.kameleoonSimulationFFData={"featureKey":{"expId":0}}: Simulates the Standard Variation (defined im Then, for everyone else in Production, serve Abschnitt) für den givenfeatureKey.
encodeURIComponent.- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| defaultVisitorCode (optional) | string | visitor code to be used in case there is no visitor code in Cookies |
If you don’t bereitstellen a
defaultVisitorCode and there is no visitor code stored in a Cookie, the visitor code wird randomly generated.Rückgabewert
| Typ | Beschreibung |
|---|---|
string | result visitor code. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeMaxLength | Die Länge des Visitor-Codes wurde überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
addData()
TheaddData Funktion, used mit dem useData Hook, collects Targeting data to store for other Hooks to determine if the aktuell Besucher is targeted.
- The
addData()Funktion does not return any Wert and does not interact with Kameleoon Backend servers on its own. Instead, alle declared data is saved for future transmission via the flush Methode .This approach helps reduce the Anzahl of server calls made, as the data is typically grouped into a single server call triggered by the execution of flush.
-
userAgentdata will not be stored in Speicher like other data, and it wird sent with every tracking Anfrage for bot filtration. - Check the list of unterstützt conditions to know what data types kann wird verwendet für Targeting
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung | Standardwert |
|---|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten. | |
| track (optional) | boolean | Specifies whether the added data is eligible für Tracking. When set to false, the data is stored locally and used only for Targeting evaluation; it is not sent zum Kameleoon Data API. | true |
| kameleoonData (optional) | KameleoonDataType[] | Anzahl of instances of any type of KameleoonData, kann added solely in array or as sequential Argumente |
-
kameleoonDatais variadic Argument it kann passed as one or several Argumente (see the example) -
The index or ID der Custom Data kann found in your Kameleoon account. Es ist important to note that this index starts at
0, which means that the first Custom Data you create for a given site wird assigned0as its ID, not1.
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.StorageWrite | Speicherdaten konnten nicht aktualisiert werden |
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call |
See the Data types reference for more details of how to manage different data types.
flush()
- SDK Version 9
- SDK Version 10
flush() takes the Kameleoon data associated mit dem Besucher and schedules the data to be sent mit dem next tracking Anfrage. The time der next tracking Anfrage is defined by SDK Konfiguration trackingInterval Parameter. Visitor data kann added using addData und getRemoteVisitorData Methoden.If you don’t specify a visitorCode, das SDK flushes all of its stored data zum remote Kameleoon servers. If any previously failed tracking Anfragen were stored locally during offline Modus, das SDK attempts to send the stored Anfragen before executing the neueste Anfrage.- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| visitorCode (optional) | string | eindeutig Besucher identification string, can’t exceed 255 characters, if not passed, all data wird flushed (sent zum remote Kameleoon servers). | - |
| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| visitorCode (optional) | string | eindeutig Besucher identification string, can’t exceed 255 characters, if not passed, all data wird flushed (sent zum remote Kameleoon servers). | - |
| instant (optional) | boolean | Boolean flag indicating whether the data sollte sent instantly (true) or according zum scheduled tracking Intervall (false). | - |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call |
getRemoteData()
Asynchronous MethodegetRemoteData, collected mit dem useData Hook, returns a data stored for specified site code on a remote Kameleoon server.
Zum Beispiel, you can use this Funktion to retrieve Benutzer preferences, historical data, or any other data relevant to your Anwendung’s logic. By storing this data on our highly scalable servers using our [Data API], you can efficiently manage massive amounts of data and retrieve it for each of your Besucher or Benutzer.
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| key (required) | string | eindeutig key that the data you try to get is associated with |
Rückgabewert
| Typ | Beschreibung |
|---|---|
JSONType | promise with data retrieved for specific key. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.RemoteData | Couldn’t retrieve data from Kameleoon server |
getRemoteVisitorData()
- SDK Version 9
- SDK Version 10
getRemoteVisitorData() is an asynchronous Methode zum Abrufen Kameleoon Visits Data für den visitorCode vom Kameleoon Data API. The Methode adds the data to Speicher for other Methoden to use when making Targeting decisions.Data obtained using this Methode plays an important role when you want to:- use data collected from other Geräte.
- access a Benutzer’s Verlauf, such as previously visited pages during past visits.
- use data that is only accessible on the clientseitig, like datalayer Variablen and Ziele that only convert on the Frontend.
- TypeScript
- JavaScript
Argumente
An Objekt mit dem typeRemoteVisitorDataParamsType containing:| Name | Typ | Beschreibung | Standardwert |
|---|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten | - |
| shouldAddData (optional) | boolean | boolean flag identifying whether the retrieved Custom Data sollte set zum Speicher like addData Methode does | true |
| filters (optional) | VisitorDataFiltersType | filters for specifying what data sollte retrieved from visits, by Standard only customData is retrieved vom aktuell and neueste previous visit | { previousVisitAmount: 1, currentVisit: true customData: true }, other filters Parameter are set to false |
Rückgabewert
| Typ | Beschreibung |
|---|---|
KameleoonDataType[] | promise with list of Kameleoon Data retrieved |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.RemoteData | Couldn’t retrieve data from Kameleoon server |
KameleoonException.VisitAmount | Visit amount muss a Anzahl between 1 and 25 |
KameleoonException.Initialization | Die Methode was executed before initialize was done for kameleoonClient |
Using Parameter in getRemoteVisitorData()
Die MethodegetRemoteVisitorData() Methode offers flexibility by allowing you to define various Parameter when retrieving data on Besucher. Whether you’re Targeting based on Ziele, Experiments, or Variationen, the same approach applies across all data types.Zum Beispiel, let’s say you want to retrieve data on Besucher who completed a Ziel “Order transaction”. You can specify Parameter withim getRemoteVisitorData() Methode to refine your Targeting. For Instanz, if you want to target only Benutzer who converted on the Ziel imir last five visits, you can set the previousVisitAmount Parameter to 5 und conversions to true.The flexibility shown in this example is not limited to Ziel data. You can use Parameter withim getRemoteVisitorData() Methode to retrieve data on a variety of Besucher behaviors.Here is the list of verfügbar
VisitorDataFiltersType filters:| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| previousVisitAmount (optional) | number | Number of previous visits to retrieve data from. Number between 1 und 25 | 1 |
| currentVisit (optional) | boolean | If true, aktuell visit data wird retrieved | true |
| customData (optional) | boolean | If true, Custom Data wird retrieved. | true |
| pageViews (optional) | boolean | If true, page data wird retrieved. | false |
| geolocation (optional) | boolean | If true, geolocation data wird retrieved. | false |
| Gerät (optional) | boolean | If true, Gerät data wird retrieved. | false |
| Browser (optional) | boolean | If true, Browser data wird retrieved. | false |
| operatingSystem (optional) | boolean | If true, operating system data wird retrieved. | false |
| Konversionen (optional) | boolean | If true, Konversion data wird retrieved. | false |
| Experiments (optional) | boolean | If true, Experiment data wird retrieved. | false |
| kcs (optional) | boolean | If true, Kameleoon Konversion Score (KCS) wird retrieved. Requires the AI Predictive Targeting add-on | false |
| visitorCode (optional) | boolean | If true, Kameleoon will retrieve the visitorCode vom most recent visit and use it für den aktuell visit. Dies ist necessary if you want to ensure that the Besucher, identified by their visitorCode, always receives the same Variation across visits for Cross-Gerät experimentation. | true |
| personalization (optional) | boolean | If true, personalization data wird retrieved. Dies ist erforderlich für den personalization condition | false |
| cbs (optional) | boolean | If true, Contextual Bandit score data wird retrieved. | false |
getVisitorWarehouseData()
Asynchronous MethodegetVisitorWarehouseAudience collected with useData Hook retrieves all Audience data associated mit dem Besucher in your data warehouse using the specified visitorCode und warehouseKey. The warehouseKey is typically your intern Benutzer ID. The customDataIndex Parameter corresponds zum Kameleoon Custom Data that Kameleoon uses to target your Besucher. Refer zum warehouse Targeting documentation for additional details.
- TypeScript
- JavaScript
Argumente
Parameters Objekt consisting of:| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten |
| customDataIndex (required) | number | Anzahl representing the index der Custom Data you want to use to target your Warehouse Audiences |
| warehouseKey (optional) | string | eindeutig key to identify the warehouse data (usually, your intern Benutzer ID) |
Rückgabewert
| Typ | Beschreibung |
|---|---|
Promise<CustomData | null> | promise containing CustomData mit dem associated warehouse data oder null if there was no data |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.RemoteData | Couldn’t retrieve data from Kameleoon server |
setLegalConsent()
Die MethodesetLegalConsent, collected with useVisitorCode Hook, specifies whether the Besucher has given legal consent to use personal data. Setting the legalConsent Parameter to false limits the types of data that you can include in tracking Anfragen. This helps you adhere to legal and regulatory requirements while responsibly managing Besucher data. You can find weitere Informationen on personal data im consent management policy.
- Consent Informationen is in sync between the Kameleoon Engine (Anwendung file engine.js) and the React SDK. This Synchronisierung means that once consent is set on either the Engine or das SDK, it’s automatically set for both. This feature eliminates the need for manual consent handling and ensures that SDKs operate in compliance with Benutzer preferences.
- When handling legal consent, it’s important to use
getVisitorCodeMethode. Additionally,getVisitorCodedoes not acceptdomainas an Argument. Instead, pass it zumcreateClientFunktion.
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten |
| consent (required) | boolean | a boolean Wert representing the legal consent status. true indicates the Besucher has given legal consent, false indicates the Besucher has never bereitgestellt, or has withdrawn, legal consent |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeMaxLength | The visitor code length exceeded the maximum length (255 characters) |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
Consent revocation behavior
When you callsetLegalConsent() with consent=false, das SDK does not delete the kameleoonVisitorCode Cookie. Instead, it stops extending the Cookie’s expiration date, allowing the Cookie to persist until it naturally expires.
If your compliance requirements demand the immediate removal der Cookie file upon opt-out, you must delete it manually using your framework’s nativ Cookie management Methoden. The SDK will not remove the file automatically.
Goals and third-party analytics
This Abschnitt bietet the Methoden you use to track when a Besucher action achieve one of you Ziele (a Konversion).trackConversion()
- SDK Version 9
- SDK Version 10
- 📨 Sendet Tracking-Daten an Kameleoon
trackConversion() Funktion, used mit dem useData Hook creates and adds Conversion data zum Besucher with specified Parameter and executes flush().Use this Methode to track a Konversion for a specific Ziel and Benutzer. This Methode requires visitorCode und goalId. In addition, this Methode also accepts an optional revenue, negative und metadata Argumente. The visitorCode is usually identical zum one that was used when triggering the Experiment.Die Methode trackConversion() Methode doesn’t return any Wert. This Methode is non-blocking as the server call is made asynchronously.- TypeScript
- JavaScript
Argumente
Parameters Objekt consisting of:| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| visitorCode (required) | string | Eindeutiger Identifikator des Besuchers. | |
| goalId (required) | number | ID der Ziel. | |
| negative (optional) | boolean | Defines if the revenue is positive or negative. | false |
| revenue (optional) | number | Revenue der Konversion. | 0 |
| metadata (optional) | CustomData[] | Metadata der Konversion. Must be defined beforehand im Kameleoon App. | undefined |
metadata Werte are accessible through raw data exports und the results page.If the
metadata Parameter is bereitgestellt, Kameleoon will verwenden Sie diese specified Werte für den aktuell Konversion stattdessen of what was previously collected using the addData() Methode. If the Parameter is omitted, Kameleoon will verwenden Sie die last tracked Werte for those CustomData prior zum Konversion and withim same visit.Kameleoon will only consider the metadata Werte that are explicitly passed as Parameter zum trackConversion() Methode.In the example below, Kameleoon will associate the Konversion only mit dem Custom Data Wert explicitly bereitgestellt as a Parameter (here: index 5 mit dem Wert ‘Amex Credit Card’).- TypeScript
- JavaScript
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten. |
KameleoonException.VisitorCodeEmpty | Der Visitor-Code ist leer. |
KameleoonException.StorageWrite | Speicherdaten konnten nicht aktualisiert werden. |
getEngineTrackingCode()
Kameleoon integrates with several analytics solutions, including Mixpanel, Google Analytics 4, and Segment. To track serverseitig Experiments correctly, callegetEngineTrackingCode() Methode after the Besucher triggers an Experiment. The SDK returns JavaScript queue commands für den Experiments that the Besucher triggered during the previous five seconds. When you insert this code inzum page, Engine.js processes the commands and sends the exposure events through the active analytics integration.
Refer to hybrid experimentation für weitere Informationen on implementing this Methode.
- TypeScript
- JavaScript
-
To use this feature, implement both the React SDK and Kameleoon Engine.js. Because Engine.js is used only für Tracking in this flow, you can installe asynchronous tag before the closing
</body>tag. -
You can insert the returned tracking code directly into an HTML
<script>tag.
123456 und 234567 are Experiment IDs, und 7890 und 8901 are Variation IDs. In your implementation, das SDK generates these Werte im returned tracking code.Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutiger Identifikator des Besuchers. |
Rückgabewert
| Typ | Beschreibung |
|---|---|
string | JavaScript code to insert inzum page. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
Events
This Abschnitt bietet the Methoden you use to handle events.- SDK Version 10
onEvent()
Die MethodeonEvent, collected mit dem useInitialize Hook, fires a Callback when a specific event is triggered. The Callback Funktion has access zum data associated mit dem event. The SDK Methoden in this documentation note which event types they can trigger, if any.- TypeScript
- JavaScript
You can only assign one Callback to each
EventType.Events
Events are defined imEventType enum. Depending on the event type, the eventData Parameter will have a different type.| Typ | eventData type | Beschreibung |
|---|---|---|
EventType.Evaluation | EvaluationEventDataType | Triggered when das SDK evaluates any Variation for a feature flag. Es ist triggered regardless der result Variation |
EventType.ConfigurationUpdate | ConfigurationUpdateEventDataType | Triggered when das SDK receives a Konfiguration aktualisieren vom server (when using real-time streaming) |
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| event (required) | EventType | a type der event to associate the Callback action with |
| Callback (required) | (eventData: EventDataType<EventType>) => void | a Callback Funktion mit dem eventData Parameter that wird called when a Konfiguration aktualisieren occurs |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call |
Senden von Expositionsereignissen 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 serverseitigen Experiments tracken und analysieren können, bietet Kameleoon eine MethodegetEngineTrackingCode() , die den JavaScript-Code zurückgibt, der in Ihre Seite eingefügt werden soll, um die Expositionsereignisse automatisch an die von Ihnen verwendete Analyselösung zu senden. Das SDK erstellt einen Tracking-Code für Ihre aktive Analyselösung basierend auf den Experiments, die der Besucher in den letzten 5 Sekunden ausgelöst hat.
Weitere Informationen zur Hybrid-Experimentation finden Sie in dieser documentation.Um von dieser Funktion zu profitieren, müssen Sie sowohl das React SDK als auch unseren Kameleoon JavaScript-Tag implementieren. Wir empfehlen, den [Kameleoon asynchronous tag] zu implementieren, den Sie vor Ihrem schließenden
<body> -Tag in Ihre HTML-Seite einfügen können, da er nur für Tracking-Zwecke verwendet wird.Data types
Kameleoon Data types sind Hilfsklassen, die zum Speichern von Daten im Speicher in vordefinierten Formen verwendet werden. During the flush execution, das SDK collects alle data and sends it along mit dem tracking Anfrage. Daten, die im SDK verfügbar sind, stehen für Targeting und Reporting in der Kameleoon-App erst dann zur Verfügung, wenn Sie die Daten hinzufügen. Beispielsweise mithilfe der MethodeaddData() Methode.
See use visit history to target users für weitere Informationen.
Wenn Sie den Hybrid mode verwenden, können Sie
getRemoteVisitorData() aufrufen, um automatisch alle Daten zu füllen, die Kameleoon zuvor gesammelt hat.Browser
Seit React SDK
10.11.0, Browser wird automatisch basierend auf dem User-Agent -String erkannt. Bei Bedarf können Sie dies jedoch manuell überschreiben.Each Besucher can only have one
Browser. Adding a second Browser overwrites the first one.| Name | Typ | Beschreibung |
|---|---|---|
| Browser (required) | BrowserType | vordefiniert Browser type (Chrome, InternetExplorer, Firefox, Safari, Opera, Other) |
| version (optional) | number | version der Browser, floating point Anzahl represents major and minor version der Browser |
- TypeScript
- JavaScript
UniqueIdentifier
UniqueIdentifier data is used as marker for eindeutig Besucher identification.
If you add UniqueIdentifier for a Besucher, visitorCode is used as the eindeutig Besucher Identifikator, which is nützlich for Cross-Gerät experimentation. Associating a UniqueIdentifier with a Besucher notify SDK that the Besucher is linked to another Besucher.
The UniqueIdentifier can also be nützlich in other edge-case scenarios, such as when you can’t access the anonymous visitorCode that was originally assigned zum Besucher, but you do have access to an intern ID that is connected zum anonymous Besucher using Sitzung Zusammenführen -Funktionen zu empfangen.
Each Besucher can only have one
UniqueIdentifier. Adding another UniqueIdentifier overwrites the first one.| Name | Typ | Beschreibung |
|---|---|---|
| Wert (required) | boolean | Wert that specifies if the Besucher is associated with another Besucher, bereitgestellt false will imply that the Besucher is not associated with any other Besucher |
- TypeScript
- JavaScript
Konversion
TheConversion data set stored here kann wird verwendet, um filter Experiment and personalization reports by any Ziel associated with it.
ConversionParametersType conversionParameters - an Objekt with Konversion Parameter described below
| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| goalId (required) | number | ID der Ziel. | |
| revenue (optional) | float | Revenue der Konversion | 0 |
| negative (optional) | boolean | Defines if the revenue is positive or negative. | false |
| metadata (optional) | CustomData[] | Metadata der Konversion. | undefined |
- TypeScript
- JavaScript
Cookie
Cookie contains Informationen about the Cookie stored on the Besucher’s Gerät.
-
Generally, the React SDK will attempt to use a
localStorageCookie für den conditions. If not possible, SDK can useCookiedata as an alternative. -
Each Besucher can only have one
Cookie. Adding a secondCookieoverwrites the first one.
| Name | Typ | Beschreibung |
|---|---|---|
| Cookie (required) | CookieType[] | A list of CookieType Objekte consisting of Cookie keys and Werte |
- TypeScript
- JavaScript
Methoden
Cookie data has a static utility Methode fromString that you can use to create a Cookie instantly by parsing a string that contains gültig Cookie data.
The Methode accepts string as Parameter and returns an initialized Cookie Instanz.
- TypeScript
- JavaScript
GeolocationData
GeolocationData contains the Besucher’s geolocation details
Each Besucher can only have one
GeolocationData. Adding a second GeolocationData overwrites the first one.GeolocationInfoType containing the following fields:
| Name | Typ | Beschreibung |
|---|---|---|
| country (required) | string | The country der Besucher |
| region (optional) | string | The region der Besucher |
| city (optional) | string | The city der Besucher |
| postalCode (optional) | string | The postal code der Besucher |
| coordinates (optional) | [number, number] | Coordinates array tuple of two position Werte (longitude and latitude). Coordinate Anzahl represents decimal degrees |
- TypeScript
- JavaScript
CustomData
To retain Custom Data for future visits, das SDK transmitsCustomData with a Visitor scope during the next tracking Anfrage. You can configure the scope im data settings on the Custom Data dashboard.
CustomData allows you to associate any type of data with each Besucher easily. This data can then be used as a Targeting condition in Segmente or as a filter or breakdown in Experiment reports.
For weitere Informationen about Custom Data, please refer to this Artikel.
| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
| index/name (required) | number/string | Index or Name der Custom Data. Either index oder name muss bereitgestellt to identify the data. | |
| overwrite (optional) | boolean | Flag to explicitly control how the Werte are stored and how they appear in reports. See more | true |
| Wert (required) | string[] | The Custom Data Wert. It muss stringified to match the string type. Note: Wert is variadic. |
-
Each Besucher is allowed only one
CustomDatafor each eindeutigindex. Adding anotherCustomDatamit dem sameindexwill replace the existing one. - The Custom Data ‘index’ kann found im Custom Data dashboard under the “INDEX” column.
- To prevent das SDK from sending data mit dem selected index to Kameleoon servers for privacy reasons, enable the option: Use this data only locally for Targeting purposes when creating Custom Data.
-
Adding a
CustomDataInstanz created with a name when das SDK Instanz is not initialized or the name is not registered, will result im data being ignored.
- TypeScript
- JavaScript
Device
Seit React SDK
10.11.0, Device wird automatisch basierend auf dem User-Agent -String erkannt. Bei Bedarf können Sie dies jedoch manuell überschreiben.React Native: Support for this feature is aktuell experimental and may require adjustments to work correctly. In React Native, the Device wird automatisch basierend auf dem DPI from react-native.Dimensions.Each Besucher can only have one
Device. Adding a second Device overwrites the first one.| Name | Typ | Beschreibung |
|---|---|---|
| deviceType (required) | DeviceType | possible types for Gerät type (PHONE, TABLET, DESKTOP) |
- TypeScript
- JavaScript
OperatingSystem
Seit React SDK
10.11.0, OperatingSystem wird automatisch basierend auf dem User-Agent -String erkannt. Bei Bedarf können Sie dies jedoch manuell überschreiben.React Native: Support for this feature is aktuell experimental and may require adjustments to work correctly. In React Native, the OperatingSystem wird automatisch basierend auf dem react-native.Platform.OperatingSystem contains the Besucher’s operating system Informationen.
Each Besucher can only have one
OperatingSystem. Adding a second OperatingSystem overwrites the previous one.| Name | Typ | Beschreibung |
|---|---|---|
| operatingSystem (required) | OperatingSystemType | possible types for Gerät type: WINDOWS_PHONE, WINDOWS, ANDROID, LINUX, MAC, IOS |
- TypeScript
- JavaScript
PageView
Seit React SDK
10.11.0, PageView wird automatisch basierend auf dem window.location?.href und document.title. However, you can still manually überschreiben it falls erforderlich.React Native: Support for this feature is aktuell experimental and may require adjustments to work correctly.Each Besucher can have one
PageView per eindeutig URL. Adding a PageView mit dem same URL as an existing one will notify SDK that the Besucher revisited pagePageViewParametersType pageViewParameters - an Objekt with page view Parameter described below
| Name | Typ | Beschreibung |
|---|---|---|
| urlAddress (required) | string | url address der page to track |
| title (required) | string | title der web page |
| referrer (optional) | number[] | an optional Parameter containing a list of referrers Indices, has no Standard Wert |
- TypeScript
- JavaScript
UserAgent
Store Informationen on the Benutzer-agent der Besucher. Server-side Experiments are more vulnerable to bot traffic than clientseitig Experiments. To address this, Kameleoon uses the IAB/ABC International Spiders and Bots List to identify known bots and spiders. Kameleoon also uses theUserAgent field to filter out bots and other unwanted traffic that could otherwise skew your Konversion metrics. For more details, see the help Artikel on bot filtering.
If you use intern bots, we suggest that you pass the Wert curl/8.0 der userAgent to exclude them from our analytics.
A Besucher can only have one
UserAgent. Adding a second UserAgent overwrites the first one.| Name | Typ | Beschreibung |
|---|---|---|
| Wert (required) | string | Wert wird verwendet für comparison |
- TypeScript
- JavaScript
ApplicationVersion
ApplicationVersion represents the semantic version Anzahl of your Anwendung.
| Name | Typ | Beschreibung |
|---|---|---|
| version (optional) | string | The mobile Anwendung version. This field must follow semantic versioning. Accepted Formate are major, major.minor, oder major.minor.patch. |
- TypeScript
- JavaScript
Rückgabetypen
DataFile
TheDataFile contains das SDK Konfiguration details.
It kann extended with additional Informationen if erforderlich by clients. If you need more details, please contact your Customer Success Manager.
| Name | Typ | Beschreibung |
|---|---|---|
| featureFlags | Map<string, FeatureFlag> | A map of FeatureFlag Objekte, keyed by feature flag keys. |
| dateModified | number | The timestamp (in milliseconds) indicating when the DataFile was last modified. |
- TypeScript
- JavaScript
FeatureFlag
TheFeatureFlag represents a set of properties that define a feature flag itself — zum Beispiel, its Variations, Rules, Umgebung status, and other related details.
It kann extended with additional Informationen if erforderlich by clients. If you need more details, please contact your Customer Success Manager.
| Name | Typ | Beschreibung |
|---|---|---|
| environmentEnabled | boolean | Indicating whether the feature flag is enabled im aktuell Umgebung. |
| defaultVariationKey | string | The key der Standard Variation associated mit dem feature flag. |
| Variationen | Map<string, Variation> | A map of Variation Objekte, keyed by Variation keys. |
| rules | Rule[] | A list of Rule Objekte |
- TypeScript
- JavaScript
Rule
TheRule represents a set of properties that define a rule itself — zum Beispiel, its Variations.
It kann extended with additional Informationen if erforderlich by clients. If you need more details, please contact your Customer Success Manager.
| Name | Typ | Beschreibung |
|---|---|---|
| Variationen | Map<string, Variation> | A map of Variation Objekte, keyed by Variation keys. |
- TypeScript
- JavaScript
Variation
Variation contains Informationen about the assigned Variation zum Besucher (or the Standard Variation, if no specific assignment exists).
| Name | Typ | Beschreibung |
|---|---|---|
| name | string | name der Variation. |
| key | string | key der Variation. |
| id | number oder null | id der Variation oder null if the Besucher landed on the Standard Variation. |
| experimentId | number oder null | id der Experiment oder null if the Besucher landed on the Standard Variation. |
| Variablen | Map<string, Variable> | map of Variablen für den Variation, where key is the Variable key and Wert is the Variable Objekt. |
- Ensure that your code handles the case where
idoderexperimentIdkannnull, indicating a Standard Variation. - The
variablesmap könnte empty if no Variablen are associated mit dem Variation.
- TypeScript
- JavaScript
Variable
Variable contains Informationen about a Variable associated mit dem assigned Variation.
| Name | Typ | Beschreibung |
|---|---|---|
| key | string | The eindeutig key identifying the Variable. |
| type | string | The type der Variable. Possible Werte: BOOLEAN, NUMBER, STRING, JSON, JS, CSS. |
| Wert | any | The Wert der Variable, which kann der following types: boolean, Anzahl, String, Record<string, any>, any[]. |
- TypeScript
- JavaScript
Veraltete Methoden
getFeatureFlagVariationKey()
- 📨 Sendet Tracking-Daten an Kameleoon
- 🎯 Events:
EventType.Evaluation
Verwenden Sie die
getVariation Methode.getFeatureFlagVariationKey(), which is used mit dem useFeatureFlag Hook, retrieves the Variation key for a Besucher identified by their visitorCode. This process includes checking the Targeting criteria, identifying the appropriate Variation assigned zum Besucher, storing this Informationen, and sending a tracking Anfrage.
If a Benutzer has never been associated with a feature flag, das SDK will randomly return a Variation key according zum rules of that feature flag. If the Benutzer is already linked zum feature flag, das SDK will identify the previously assigned Variation key. If the Benutzer does not meet any der specified rules, das SDK will return the Standard Wert defined in Kameleoon’s feature flag delivery rules. It’s important to note that the Standard Wert may not always be a Variation key; it could also be a boolean Wert or another data type, depending on how the feature flag is configured.
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten |
| featureKey (required) | string | ein eindeutiger Schlüssel für den feature flag |
Rückgabewert
| Typ | Beschreibung |
|---|---|
string | a string containing Variable key für den allocated feature flag Variation für den bereitgestellt Besucher. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before initialize was done for kameleoonClient |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.FeatureFlagConfigurationNotFound | Es wurde kein feature flag für den angegebenen featureKey |
KameleoonException.FeatureFlagEnvironmentDisabled | Feature flag is disabled für den aktuell Umgebung |
getVisitorFeatureFlags()
- 🚫 Doesn’t send Tracking Data to Kameleoon
- 🎯 Events:
EventType.Evaluation(for each feature flag)
Verwenden Sie die
getVariations Methode.getVisitorFeatureFlags Methode, utilized mit dem useFeatureFlag Hook, returns a list of active feature flags that target the Besucher associated mit dem visitorCode (the Besucher must have one der allocated Variationen).
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten |
Rückgabewert
| Typ | Beschreibung |
|---|---|
FeatureFlagType[] | list of feature flags, each feature flag item contains id und key. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.StorageRead | Error while reading Speicher data |
getActiveFeatureFlags()
- 🚫 Doesn’t send Tracking Data to Kameleoon
- 🎯 Events:
EventType.Evaluation(for each feature flag)
Verwenden Sie die
getVariations Methode.getActiveFeatureFlags Methode, collected mit dem useFeatureFlag Hook, returns a Map, where key is feature key and Wert is detailed Informationen about the Besucher’s Variation and it’s Variablen
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten |
Rückgabewert
| Typ | Beschreibung |
|---|---|
Map<string, KameleoonVariationType> | a map of feature flags, where key is feature key and Wert is detailed Informationen about the Besucher’s Variation and it’s Variablen |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call |
KameleoonException.VisitorCodeMaxLength | The visitor code exceeded the maximum length of 255 characters |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.StorageRead | Error while reading Speicher data |
KameleoonException.NumberParse | Couldn’t parse Number Wert |
KameleoonException.JSONParse | Couldn’t parse JSON Wert |
getFeatureFlagVariable()
- 📨 Sendet Tracking-Daten an Kameleoon
- 🎯 Events:
EventType.Evaluation
Verwenden Sie die
getVariation Methode.getFeatureFlagVariable Methode, collected with useFeatureFlag Hook, returns a Variable für den Besucher under visitorCode im found feature flag, this includes Targeting check, finding the according Variation exposed zum Besucher and saving it to Speicher zusammen mit sending tracking Anfrage.
- TypeScript
- JavaScript
Argumente
Parameters Objekt of typeGetFeatureFlagVariableParamsType containing the following fields:
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten |
| featureKey (required) | string | ein eindeutiger Schlüssel für den feature flag |
| variableKey (required) | string | key der Variable to be found for a feature flag mit dem specified featureKey, kann found on Kameleoon Platform |
Rückgabewert
| Typ | Beschreibung |
|---|---|
FeatureFlagVariableType | a Variable Objekt containing type und value fields. You can check the type field against VariableType enum. Zum Beispiel, if the type is VariableType.BOOLEAN then value wird a boolean type. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before initialize was done for kameleoonClient |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.FeatureFlagConfigurationNotFound | Es wurde kein feature flag für den angegebenen featureKey |
KameleoonException.FeatureFlagVariableNotFound | No feature Variable was found für den specified visitorCode und variableKey |
KameleoonException.FeatureFlagEnvironmentDisabled | Feature flag is disabled für den aktuell Umgebung |
KameleoonException.JSONParse | Couldn’t parse JSON Wert |
KameleoonException.NumberParse | Couldn’t parse Number Wert |
getFeatureFlagVariables()
- 📨 Sendet Tracking-Daten an Kameleoon
- 🎯 Events:
EventType.Evaluation(for each feature flag)
Verwenden Sie die
getVariations Methode.getFeatureFlagVariables Methode, collected mit dem useFeatureFlag, Hook returns a list of Variablen für den Besucher under visitorCode im found feature flag, this includes Targeting check, finding the according Variation exposed zum Besucher and saving it to Speicher zusammen mit sending tracking Anfrage.
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| visitorCode (required) | string | Eindeutige Besucher-Identifikationszeichenfolge, darf 255 Zeichen nicht überschreiten |
| featureKey (required) | string | ein eindeutiger Schlüssel für den feature flag |
Rückgabewert
| Typ | Beschreibung |
|---|---|
FeatureVariableResultType[] | a list of Variable Objekte containing key, type und value fields. You can check the type field against VariableType enum. Zum Beispiel, if the type is VariableType.BOOLEAN then value wird a boolean type. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call |
KameleoonException.VisitorCodeMaxLength | Der Visitor-Code hat die maximale Länge (255 Zeichen) überschritten |
KameleoonException.VisitorCodeEmpty | The visitor code is empty |
KameleoonException.FeatureFlagConfigurationNotFound | Es wurde kein feature flag für den angegebenen featureKey |
KameleoonException.FeatureFlagVariationNotFound | No feature Variation was found für den specified visitorCode und variableKey |
KameleoonException.FeatureFlagEnvironmentDisabled | Feature flag is disabled für den aktuell Umgebung |
KameleoonException.JSONParse | Couldn’t parse JSON Wert |
KameleoonException.NumberParse | Couldn’t parse Number Wert |
onConfigurationUpdate()
Verwenden Sie die
onEvent Methode with EventType.ConfigurationUpdate stattdessen.onConfigurationUpdate collected with useInitialize Hook fires a Callback on client Konfiguration aktualisieren.
This Hook only works for server sent events of real time aktualisieren
- TypeScript
- JavaScript
Argumente
| Name | Typ | Beschreibung |
|---|---|---|
| Callback (required) | () => void | Callback Funktion with no Parameter that wird called upon Konfiguration aktualisieren |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient completed its initialize call |
getFeatureFlags()
🚫 Doesn’t send Tracking Data to Kameleoon ThegetFeatureFlags Methode collected mit dem useFeatureFlag Hook returns a list of feature flags stored im client Konfiguration.
- TypeScript
- JavaScript
Rückgabewert
| Typ | Beschreibung |
|---|---|
FeatureFlagType[] | list of feature flags, each feature flag item contains id und key. |
Geworfene Ausnahmen
| Typ | Beschreibung |
|---|---|
KameleoonException.Initialization | Die Methode was executed before the kameleoonClient den Aufruf abgeschlossen hat initialize call |