Skip to main content
Mit dem Kameleoon React SDK können Sie Feature-Experiments ausführen und feature flags in Ihrer Frontend-Web- und Mobilanwendung aktivieren. Die Integration unseres SDK in Ihre Web- und Mobilanwendung ist einfach, und der Footprint (Speicher- und Netzwerknutzung) ist gering. Erste Schritte: Hilfe für den Einstieg finden Sie im Entwicklerhandbuch Changelog: Details zur neuesten Version des React SDK finden Sie im Changelog. SDK-Methoden: Die vollständige Referenzdokumentation des React SDK finden Sie im Abschnitt Referenz. Anforderungen: Das React SDK erfordert 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:
Oder führen Sie es direkt mit 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 von KameleoonClient using the createClient() Funktion, imported vom kameleoon package.

Umschließen der Anwendung mit dem Kameleoon Provider

Im zweiten Schritt verbinden Sie den zuvor erstellten Kameleoon Client mit KameleoonProvider indem Sie den konfigurierten Client an KameleoonProvider übergeben:
KameleoonProvider
Verwenden Sie diesen Provider auf der obersten Ebene, indem Sie Ihre App umschließen, um Zugriff zu erhalten auf KameleoonClient. Dies stellt sicher, dass Ihre App beim Start nicht aufgrund von Flag-Änderungen flackert.
Props
KameleoonProviderSSR
Verwenden Sie diesen Provider auf der obersten Ebene, indem Sie Ihre App umschließen, um Zugriff zu erhalten auf KameleoonClient. 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

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.

Aktivieren eines feature flags

Zuweisen einer eindeutigen ID an einen Benutzer
Um einem Benutzer eine eindeutige ID zuzuweisen, können Sie die Methode getVisitorCode() 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 Methode getVariation() 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 Methode addData(), 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 Methode trackConversion() 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 Methode getEngineTrackingCode(). 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.
Während das React SDK in React Native- und React-Kontexten auf die gleiche Weise funktioniert, ist zu beachten, dass sich die Setup-Schritte unterscheiden. Due zum lack of Browser API in React Native, React SDK has to have different extern Abhängigkeit implementations to work correctly. Dazu stellt Kameleoon mehrere dedizierte npm-Pakete bereit, die Sie manuell installieren und einrichten oder mithilfe des Kameleoon SDK Installation Tool installieren können (empfohlen). Die Pakete umfassen:
  • @kameleoon/react-native-storage - erstellt mit der react-native-mmkv -Bibliothek
  • @kameleoon/react-native-event-source - erstellt mit der react-native-event-source-ts -Bibliothek
  • @kameleoon/react-native-visitor-code-manager - aufgebaut auf der react-native-mmkv -Bibliothek
  • @kameleoon/react-native-platform-analyzer - erstellt mit der react-native -Bibliothek
  • optional @kameleoon/react-native-secure-prng - erstellt mit der react-native-get-random-values -Bibliothek
Wenn Sie die aufgeführten Pakete nicht verwenden möchten, können Sie Ihre eigene Implementierung gemäß dem Leitfaden zu external dependencies. Beispiel für die Einrichtung des React SDK für eine React Native-Anwendung:

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 accountId verwenden. Benutzerdefinierte Bucketing-Schlüssel sind entscheidend für A/B-Tests von Features, die ein gesamtes Team oder Unternehmen betreffen.
Durch die Implementierung eines benutzerdefinierten Bucketing-Schlüssels gewährleisten Sie eine höhere Konsistenz und Genauigkeit in Ihren Experiments, was zu zuverlässigeren Ergebnissen und einer besseren Benutzererfahrung führt.

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 als CustomData -Objekt. Hier bezieht sich newVisitorCode auf den Identifikator, den Sie für Ihr Bucketing verwenden möchten (z. B. die neue userId oder accountId).
Damit der benutzerdefinierte Bucketing-Schlüssel korrekt funktioniert, muss er auch für den feature flag während der Flag-Erstellung oder -Bearbeitung definiert und konfiguriert werden. Ohne diese entsprechende Konfiguration wendet das Bucketing des SDK Ihren benutzerdefinierten Schlüssel nicht an. Detaillierte Anweisungen zur Einrichtung in Kameleoon finden Sie in diesem Artikel.
  • 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 diesen newVisitorCode (Ihren benutzerdefinierten Schlüssel) anstelle des Standard-visitorCode. Die Verwendung des newVisitorCode bedeutet, 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ünglichen visitorCode verknü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 string sein.
  • Er muss für die Entität, die Sie bucketieren möchten, eindeutig sein (z. B. wenn Sie eine userId verwenden, 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.

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.

Domain-Informationen

Sie geben eine Domain als domain 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.
Hier ist ein kleiner Domain-Spickzettel:

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 domain im SDK-Client beim Testen nicht an. Dies verhindert localhost -Probleme (das Cookie wird auf jeder Domain gesetzt).
  • Erstellen Sie eine lokale Domain für localhost. Zum Beispiel:
    • Navigieren Sie zu /etc/hosts unter Linux oder zu c:\Windows\System32\Drivers\etc\hosts unter Windows
    • Öffnen Sie hosts mit 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.com als Ihre Domain angeben

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.
Hier ist die Liste der verfügbaren external dependencies: Das folgende Beispiel implementiert external dependencies. Um eine Schnittstelle aus einem SDK zu importieren, erstellen Sie eine Klasse, die sie implementiert, und übergeben Sie die instanziierte Klasse an das SDK.

Storage

EventSource

VisitorCodeManager

Requester

Pseudo Random Number Generator

Pseudo Random Number Generator (PRNG) ist eine Abhängigkeit, die eine zufällige Gleitkommazahl zwischen 0 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

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 vordefinierte KameleoonErrors 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.

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 Methode getRemoteVisitorData() 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.
Device One
Device Two

Verwendung von Custom Data für Session-Zusammenführung

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ügen
Da die Custom Data, die Sie als Identifikator verwenden, auf den Scope Visitor scope, you need to use cross-Gerät Custom Data Synchronisierung to retrieve the Identifikator mit dem getRemoteVisitorData auf jedem Gerät abzurufen.
Hier 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.
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 Klasse KameleoonUtils class.

simulateSuccessRequest

Die Methode simulateSuccessRequest 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.
Argumente
Data type SimulateRequestDataType ist wie folgt definiert:
  • RequestType.Tracking - null
  • RequestType.ClientConfiguration - ClientConfigurationDataType
  • RequestType.RemoteData - JSONType
Rückgabewert

getCookieValue

Die Methode getCookieValue 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.
Argumente
Rückgabewert

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()

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 initialize does not throw an Fehler.
  • SDK supports an offline mode.
In offline mode if tracking Anfragen from any der following Methoden fail due to internet connectivity issues, das SDK automatically resends the Anfrage as soon as it detects that the internet connection has been re-established:
Rückgabewert
Geworfene Ausnahmen

isInitialized()

The isInitialized 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.
Rückgabewert
A boolean 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 the createClient() Funktion imported from kameleoon package. An Instanz of KameleoonClient is created using createClient() Funktion.
Argumente
An Objekt of type SDKParameters containing:
Konfigurationsparameter
Option 1 (Recommended): Use JSON.stringify()
Option 2: Raw JSON string (escape special characters)
Rückgabewert
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 )
Retrieves the 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.
Argumente
An Objekt of type GetVariationParamsType mit dem following properties:
Rückgabewert
Geworfene Ausnahmen

getVariations()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track )
  • 🎯 Events: EventType.Evaluation
Die Methode is obtained using useFeatureFlag Hook.
Retrieves a map of 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 onlyActive is set to true, the Methode getVariations() will return feature flags Variationen bereitgestellt the Benutzer is not bucketed mit dem off Variation.
  • The track Parameter controls whether or not the Methode will track the Variation assignments. By Standard, it is set to true. If set to false, the tracking wird disabled.
The returned map consists of feature flag keys as keys and their corresponding 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.
Argumente
An Objekt of type GetVariationsParamsType mit dem following properties:
Rückgabewert
Geworfene Ausnahmen

isFeatureFlagActive()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track )
  • 🎯 Events: EventType.Evaluation
The Methode 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.
Die Methode isFeatureFlagActive() Methode evaluates the served variant, not the master flag state. If you exclude rules, the Methode uses the Then, for everyone else serve Standard state. If you select Off for this Standard state, the Methode always returns false even when the master feature flag is On.
Argumente
Es gibt two overloads verfügbar for this Methode:
  1. Two Parameter overload:
This overload is deprecated and wird removed im next major version. Please verwenden Sie die new overload with an Objekt Parameter.
  1. Objekt Parameter overload of type IsFeatureFlagActiveParamsType:
Rückgabewert
Geworfene Ausnahmen

setForcedVariation()

The Methode allows you to programmatically assign a specific Variation 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.
A erzwungen Variation is treated the same as an evaluated Variation. Es ist tracked in analytics and stored im Benutzer Kontext like any standard evaluated Variation, ensuring consistency in reporting. The Methode may throw Ausnahmen under certain conditions (e.g., ungültig Parameter, Benutzer Kontext, or intern issues). Proper Ausnahme handling is essential to ensure that your Anwendung remains stabil and resilient.
It’s important to distinguish erzwungen Variationen from simuliert Variationen:
  • Forced Variationen: Are specific to an individual Experiment.
  • Simulated Variationen: Affect the overall feature flag result.
Argumente
An Objekt of type SetForcedVariationParametersType mit dem following properties:
Geworfene Ausnahmen
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
This Methode evaluates Besucher against all verfügbar Audiences Explorer Segmente and tracks those who match. 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.
Argumente
Geworfene Ausnahmen
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()

To evaluate all feature flags, use getVariations(). This Methode is more efficient than calling DataFile and iterating through flags with getVariation().
Gibt die aktuell SDK Konfiguration as a DataFile Objekt.
Rückgabewert

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 kameleoonSimulationFFData Cookie manually.
It’s important to distinguish simuliert Variationen from erzwungen Variationen:
  • Simulated Variationen: Affect the overall feature flag result.
  • Forced Variationen: Are specific to an individual Experiment.
⚙️ Manual setupPlease ensure the kameleoonSimulationFFData Cookie follows this Format:
  • kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: Simulates the Variation with varId of Experiment expId für den given featureKey.
  • kameleoonSimulationFFData={"featureKey":{"expId":0}}: Simulates the Standard Variation (defined im Then, for everyone else in Production, serve Abschnitt) für den given featureKey.
⚠️ To ensure proper functionality, the Cookie Wert muss encoded as a URI Komponente using eine Methode such as encodeURIComponent.
Argumente
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
Geworfene Ausnahmen

addData()

The addData 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.
The trackConversion Methode also sends out any previously associated data, just like the flush. The same holds true for getFeatureFlagVariationKey und getFeatureVariable Methoden if an experimentation rule is triggered.
  • userAgent data 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
Each Besucher can only have one Instanz of associated data for most data types. However, CustomData is an Ausnahme. Visitors can have one Instanz of associated CustomData per customDataIndex.
Argumente
  • kameleoonData is 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 assigned 0 as its ID, not 1.
Geworfene Ausnahmen
See the Data types reference for more details of how to manage different data types.

flush()

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.
If you need to send tracking Anfragen immediately, use flushInstant() — the asynchronous version of flush that returns Promise<void>. You can await it when you need delivery guarantees (zum Beispiel, before page navigation/unload), or call it without await as a fire-and-forget Anfrage:
  • await flushInstant(visitorCode) sends tracking Anfragen immediately for a specific Besucher and waits for completion
  • await flushInstant() sends tracking Anfragen immediately for all Besucher and waits for completion
Argumente
Or an Objekt mit dem type FlushParamsType, containing:
Geworfene Ausnahmen

getRemoteData()

Asynchronous Methode getRemoteData, 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.
Argumente
Rückgabewert
Geworfene Ausnahmen

getRemoteVisitorData()

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.
Read this Artikel for a better understanding of possible use cases.
By Standard, getRemoteVisitorData() automatically retrieves the neueste stored Custom Data with scope=Visitor and attaches them zum Besucher without the need to calle Methode addData(). Es ist particularly nützlich for synchronizing Custom Data between multiple Geräte.
Argumente
An Objekt mit dem type RemoteVisitorDataParamsType containing:
Rückgabewert
Geworfene Ausnahmen
Using Parameter in getRemoteVisitorData()
Die Methode getRemoteVisitorData() 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:

getVisitorWarehouseData()

Asynchronous Methode getVisitorWarehouseAudience 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.
Argumente
Parameters Objekt consisting of:
Rückgabewert
Geworfene Ausnahmen

setLegalConsent()

Die Methode setLegalConsent, 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.
If you use Kameleoon in Hybrid mode, we recommend reading the consent Abschnitt in our Hybrid experimentation Artikel
  • When handling legal consent, it’s important to use getVisitorCode Methode. Additionally, getVisitorCode does not accept domain as an Argument. Instead, pass it zum createClient Funktion.
Argumente
Geworfene Ausnahmen
Consent revocation behavior
When you call setLegalConsent() 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()

  • 📨 Sendet Tracking-Daten an Kameleoon
Die Methode 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.
Argumente
Parameters Objekt consisting of:
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’).
Geworfene Ausnahmen

getEngineTrackingCode()

Kameleoon integrates with several analytics solutions, including Mixpanel, Google Analytics 4, and Segment. To track serverseitig Experiments correctly, calle getEngineTrackingCode() 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.
  • 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.
In this example, 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
Rückgabewert
Geworfene Ausnahmen

Events

This Abschnitt bietet the Methoden you use to handle events.

onEvent()

Die Methode onEvent, 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.
You can only assign one Callback to each EventType.
Events
Events are defined im EventType enum. Depending on the event type, the eventData Parameter will have a different type.
Argumente
Geworfene Ausnahmen

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 Methode getEngineTrackingCode() , 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 Methode addData() 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.
Browser contains Browser Informationen.
Each Besucher can only have one Browser. Adding a second Browser overwrites the first one.

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.

Konversion

The Conversion data set stored here kann wird verwendet, um filter Experiment and personalization reports by any Ziel associated with it.
  • Each Besucher can have multiple Conversion Objekte.
  • You can find the goalId im Kameleoon app.
ConversionParametersType conversionParameters - an Objekt with Konversion Parameter described below
Cookie contains Informationen about the Cookie stored on the Besucher’s Gerät.
  • Generally, the React SDK will attempt to use a localStorage Cookie für den conditions. If not possible, SDK can use Cookie data as an alternative.
  • Each Besucher can only have one Cookie. Adding a second Cookie overwrites the first one.
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.

GeolocationData

GeolocationData contains the Besucher’s geolocation details
Each Besucher can only have one GeolocationData. Adding a second GeolocationData overwrites the first one.
An Objekt Parameter mit dem type GeolocationInfoType containing the following fields:

CustomData

To retain Custom Data for future visits, das SDK transmits CustomData 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.
  • Each Besucher is allowed only one CustomData for each eindeutig index. Adding another CustomData mit dem same index will 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 CustomData Instanz created with a name when das SDK Instanz is not initialized or the name is not registered, will result im data being ignored.

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.
Device contains Informationen about your Gerät.
Each Besucher can only have one Device. Adding a second Device overwrites the first one.

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.

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.
PageView contains Informationen about your web page.
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 page
PageViewParametersType pageViewParameters - an Objekt with page view Parameter described below

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 the UserAgent 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.
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. We recommend that you pass the Benutzer agent to be filtered by Kameleoon when running serverseitig Experiments for each Besucher browsing your website, to avoid counting bots in your analytics.If you use intern bots, we suggest that you pass the Wert curl/8.0 der userAgent to exclude them from our analytics.

ApplicationVersion

ApplicationVersion represents the semantic version Anzahl of your Anwendung.
A Besucher can have only one ApplicationVersion. Adding a second Instanz will overwrite the first one.

Rückgabetypen

DataFile

The DataFile 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.

FeatureFlag

The FeatureFlag 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.

Rule

The Rule 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.

Variation

Variation contains Informationen about the assigned Variation zum Besucher (or the Standard Variation, if no specific assignment exists).
  • Ensure that your code handles the case where id oder experimentId kann null, indicating a Standard Variation.
  • The variables map könnte empty if no Variablen are associated mit dem Variation.

Variable

Variable contains Informationen about a Variable associated mit dem assigned Variation.

Veraltete Methoden

These Methoden are deprecated and wird removed im next major aktualisieren.

getFeatureFlagVariationKey()

  • 📨 Sendet Tracking-Daten an Kameleoon
  • 🎯 Events: EventType.Evaluation
Verwenden Sie die getVariation Methode.
The 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.
Argumente
Rückgabewert
Geworfene Ausnahmen

getVisitorFeatureFlags()

  • 🚫 Doesn’t send Tracking Data to Kameleoon
  • 🎯 Events: EventType.Evaluation (for each feature flag)
Verwenden Sie die getVariations Methode.
The 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).
This Methode only collects the feature flags that are aktuell active für den Besucher. As a result, it does not include any feature flags for which the Besucher is assigned zum “off” Variation (Standard or control). If you need to retrieve all der Besucher’s feature flags, use getFeatureFlags stattdessen.Zum Beispiel:
For cases where you need all der Besucher’s feature flags, use getFeatureFlags stattdessen:
Argumente
Rückgabewert
Geworfene Ausnahmen

getActiveFeatureFlags()

  • 🚫 Doesn’t send Tracking Data to Kameleoon
  • 🎯 Events: EventType.Evaluation (for each feature flag)
Verwenden Sie die getVariations Methode.
The 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
This Methode only collects the Besucher’s active feature flags. This means the result excludes alle feature flags for which the Besucher is assigned zum off (Standard or control) Variation. When you need all der Besucher’s feature flags to iterate over, use getFeatureFlags stattdessen.See the getVisitorFeatureFlags CAUTION Abschnitt Methode for more details.
Argumente
Rückgabewert
Geworfene Ausnahmen

getFeatureFlagVariable()

  • 📨 Sendet Tracking-Daten an Kameleoon
  • 🎯 Events: EventType.Evaluation
Verwenden Sie die getVariation Methode.
The 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.
Argumente
Parameters Objekt of type GetFeatureFlagVariableParamsType containing the following fields:
Rückgabewert
Geworfene Ausnahmen

getFeatureFlagVariables()

  • 📨 Sendet Tracking-Daten an Kameleoon
  • 🎯 Events: EventType.Evaluation (for each feature flag)
Verwenden Sie die getVariations Methode.
The 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.
Argumente
Rückgabewert
Geworfene Ausnahmen

onConfigurationUpdate()

Verwenden Sie die onEvent Methode with EventType.ConfigurationUpdate stattdessen.
Die Methode onConfigurationUpdate collected with useInitialize Hook fires a Callback on client Konfiguration aktualisieren.
This Hook only works for server sent events of real time aktualisieren
Argumente
Geworfene Ausnahmen

getFeatureFlags()

🚫 Doesn’t send Tracking Data to Kameleoon The getFeatureFlags Methode collected mit dem useFeatureFlag Hook returns a list of feature flags stored im client Konfiguration.
Rückgabewert
Geworfene Ausnahmen