Zum Hauptinhalt springen
Mit dem Kameleoon Java SDK können Sie Experiments ausführen und feature flags auf Ihrem Java EE / Jakarta EE Anwendungsserver aktivieren. Erste Schritte: Hilfe für den Einstieg finden Sie im Entwicklerhandbuch Changelog: Aktuelle Version des Java SDK: 4.22.0 Changelog. SDK-Methoden: Die vollständige Referenzdokumentation des Java SDK finden Sie im Abschnitt Referenz.

Developer guide

Dieser Leitfaden soll Ihnen helfen, unser SDK in wenigen Minuten zu integrieren und mit der Durchführung von Experiments in Ihren Java-Anwendungen zu beginnen.

Getting started

Starter kit

Um den Einstieg zu erleichtern, stellt Kameleoon ein Starter Kit und eine Demo-Anwendung zum Testen des SDK bereit. Das Starter Kit enthält eine vollständig konfigurierte App mit Beispielen, die zeigen, wie SDK-Methoden in einer App verwendet werden können. Das Starter Kit, die Demo-Anwendung und detaillierte Anweisungen sind unter Starter kit for Java verfügbar.

Install the Java client

Das Installationspaket ist im Maven Central Repository verfügbar. Sie können das Java SDK installieren, indem Sie eine Abhängigkeit in die pom.xml-Datei Ihres Projekts einfügen, wie im Beispiel rechts gezeigt. Wenn Sie ein anderes Projektmanagementsystem verwenden, finden Sie auf der Seite integrations weitere Beispiele.
pom.xml

Additional configuration

Erstellen Sie eine .properties-Konfigurationsdatei, um Anmeldeinformationen bereitzustellen und das SDK-Verhalten anzupassen. Sie können auch unsere Beispiel-Konfigurationsdatei herunterladen. Wir empfehlen, diese Datei im Standardpfad /etc/kameleoon/client-java.conf zu speichern, aber Sie können sie überall im Classpath als kameleoon-client-java.properties speichern. Die folgende Tabelle zeigt die verfügbaren Eigenschaften, die Sie festlegen können:

Initialize the Kameleoon client

Nachdem Sie das SDK in Ihre Anwendung installiert und Ihre Anmeldeinformationen und das SDK-Verhalten (in /etc/kameleoon/client-java.conf) konfiguriert haben, besteht der nächste Schritt darin, den Kameleoon-Client in Ihrem Anwendungscode zu erstellen. Zum Beispiel:
Ein KameleoonClient ist ein Singleton-Objekt, das eine Brücke zwischen Ihrer Anwendung und der Kameleoon-Plattform schlägt. Es enthält alle Methoden und Eigenschaften, die Sie zur Durchführung eines Experiments benötigen. Beachten Sie, dass wir auch die Verwendung eines HTTP-Proxys im Java SDK unterstützen (siehe die Referenz der Methode create() für Details).
Es liegt in Ihrer Verantwortung, die ordnungsgemäße Logik Ihres Anwendungscodes im Kontext von A/B test über Kameleoon sicherzustellen. Eine bewährte Praxis ist es, immer davon auszugehen, dass Sie den aktuellen Besucher aus dem Experiment ausschließen können, wenn Sie das Experiment nicht gestartet haben. Dieser Ausschluss ist einfach, da er der Implementierung der Standard- und Referenzvariation-Logik entspricht.
Sie sind nun bereit, mit der Erstellung und Implementierung von Experiments und feature flagging zu beginnen.

Activating a feature flag

Assigning a unique ID to a user
Um einem Benutzer eine eindeutige ID zuzuweisen, können Sie die Methode getVisitorCode() verwenden. Wenn ein visitor code nicht existiert (aus dem Cookie der Anfrage-Header), generiert die Methode eine zufällige eindeutige ID oder verwendet einen defaultVisitorCode, den Sie generiert hätten. Die ID wird dann in einem Cookie der Antwort-Header festgelegt. 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.
Retrieving a flag configuration
Um ein feature flag in Ihrem Code zu implementieren, müssen Sie zunächst das feature flag in Ihrem Kameleoon-Konto erstellen. Um den Status oder die Variation eines feature flags für einen bestimmten Benutzer zu bestimmen, sollten Sie die Methode getVariation() oder isFeatureActive() verwenden, um die Konfiguration basierend auf der featureKey abzurufen. Die Methode getVariation() verarbeitet sowohl einfache feature flags mit ON/OFF-Zuständen als auch komplexere Flags mit mehreren Variationen. Die Methode ruft die entsprechende Variation für den Benutzer ab, indem sie die Feature-Regeln prüft, die Variation zuweist und sie basierend auf der featureKey und dem visitorCode zurückgibt. Die Methode isFeatureActive() kann verwendet werden, wenn Sie die Konfiguration eines einfachen feature flags abrufen möchten, das nur einen ON- oder OFF-Zustand hat, 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), ermöglicht Ihnen getVariation() auch den Zugriff auf das Variation-Objekt, das Details über die zugewiesene Variation und das zugehörige Experiment liefert. Diese Methode prüft, ob der Benutzer targetiert ist, findet die dem Besucher zugewiesene Variation und speichert sie im Speicher. Wenn track=true, sendet das SDK das Expositionsereignis an das angegebene Experiment bei der nächsten Tracking-Anfrage, die automatisch basierend auf dem tracking_interval_millisecond des SDK ausgelöst wird. Standardmäßig ist dieses Intervall auf 1000 Millisekunden (1 Sekunde) eingestellt. Die Methode getVariation() ermöglicht es Ihnen zu steuern, ob ein Tracking durchgeführt wird. Wenn track=false, werden keine Expositionsereignisse vom SDK gesendet. Dies ist nützlich, wenn Sie es vorziehen, Daten nicht über das SDK zu verfolgen und sich stattdessen beispielsweise auf das vom Kameleoon-Engine verwaltete clientseitige Tracking zu verlassen. Außerdem ist track=false hilfreich, wenn Sie die Methode getVariations() verwenden, 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
Adding data points to target a user or filter / breakdown visits in reports
Um einen Benutzer zu targetieren, stellen Sie sicher, dass Sie relevante Datenpunkte zu seinem Profil hinzugefügt haben, bevor Sie die Feature-Variation abrufen oder prüfen, ob das Flag aktiv ist. Verwenden Sie die Methode addData(), um diese Datenpunkte zum Profil des Benutzers hinzuzufügen. Um Datenpunkte abzurufen, die auf anderen Geräten gesammelt wurden, oder um auf vergangene Benutzerdaten zuzugreifen (clientseitig gesammelt, wenn Kameleoon im Hybrid-Modus verwendet wird), 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 das feature flag aktiv ist, aufzurufen, da diese Daten möglicherweise erforderlich sind, um einem Benutzer eine bestimmte Variation zuzuweisen. Um mehr über verfügbare Targeting-Bedingungen zu erfahren, lesen Sie den detaillierten Artikel zum Thema. Darüber hinaus sind die Datenpunkte, die Sie dem Besucherprofil hinzufügen, bei der Analyse Ihrer Experiments verfügbar, sodass Sie Ihre Ergebnisse nach Faktoren wie Gerät und Browser filtern und aufschlüsseln können. Der Kameleoon-Hybrid-Modus sammelt automatisch eine Vielzahl von Datenpunkten auf der Client-Seite, was die Aufschlüsselung Ihrer Ergebnisse basierend auf diesen vorab gesammelten Datenpunkten erleichtert. Sehen Sie die vollständige Liste hier. Wenn Sie zusätzliche Datenpunkte verfolgen möchten, die über das automatisch gesammelte hinausgehen, können Sie Kameleoons Custom Data Feature verwenden. Custom Data ermöglicht es Ihnen, spezifische Informationen, die für Ihre Experiments relevant sind, zu erfassen und zu analysieren. Vergessen Sie nicht, die Methode flush() aufzurufen, um die gesammelten Daten an die Kameleoon-Server zur Analyse zu senden.
Um die Genauigkeit Ihrer Ergebnisse zu gewährleisten, wird empfohlen, Bots mithilfe des Datentyps UserAgent herauszufiltern.
Tracking goal conversions
Wenn ein Benutzer eine gewünschte Aktion ausführt (z. B. einen Kauf tätigt), wird dies als Konversion aufgezeichnet. Um Konversionen zu verfolgen, verwenden Sie die Methode trackConversion() und geben Sie die erforderlichen Parameter visitorCode und goalId an. Die Konversions-Tracking-Anfrage wird zusammen mit der nächsten geplanten Tracking-Anfrage gesendet, die das SDK in regelmäßigen 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.
Sending events to analytics solutions
Um Konversionen zu verfolgen und Expositionsereignisse an Ihre Customer-Analytics-Lösung zu senden, müssen Sie zunächst Kameleoon 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 Analytics-Lösung zu senden. Mit dieser Methode können Sie Ereignisse aufzeichnen und an Ihre gewünschte Analytics-Plattform senden.

Using a custom bucketing key

Standardmäßig verwendet Kameleoon eine eindeutige, anonyme Besucher-ID (visitorCode), um Benutzer feature flag-Variationen zuzuweisen. Diese ID wird normalerweise auf dem Gerät des Benutzers generiert und gespeichert (in einem Browser-Cookie für client- und serverseitige SDKs — im persistenten 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. Die Option Custom Bucketing Key ermöglicht es Ihnen, dieses Standardverhalten zu überschreiben, indem Sie Ihre eigene benutzerdefinierte Kennung für das Bucketing bereitstellen. Diese Überschreibung stellt sicher, dass die Zuweisungslogik von Kameleoon Ihren angegebenen Schlüssel anstelle des standardmäßigen visitorCode verwendet.

Use cases

Die Verwendung eines custom bucketing keys ist entscheidend für die Aufrechterhaltung von Konsistenz und Genauigkeit in Ihren feature flag-Zuweisungen, insbesondere in diesen 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 eine Kennung wie eine accountId verwenden. Custom bucketing keys sind entscheidend für A/B test-Features, die sich auf ein ganzes Team oder Unternehmen auswirken.
Durch die Implementierung eines custom bucketing keys gewährleisten Sie eine größere Konsistenz und Genauigkeit in Ihren Experiments, was zu zuverlässigeren Ergebnissen und einer besseren Benutzererfahrung führt.

Technical details

Wenn Sie einen custom bucketing key für ein feature flag konfigurieren, stellen Sie Kameleoon eine bestimmte Kennung aus den Daten Ihrer Anwendung zur Verfügung:
  • Bereitstellung des benutzerdefinierten Schlüssels: Sie stellen dem Kameleoon SDK Ihre benutzerdefinierte Kennung mithilfe der Methode addData() zur Verfügung. In dieser Methode übergeben Sie Ihren gewählten custom bucketing key als CustomData-Objekt. Hier bezieht sich newVisitorCode auf die Kennung, die Sie für Ihr Bucketing verwenden möchten (z. B. die neue userId oder accountId).
Damit der custom bucketing key korrekt funktioniert, muss er auch für das feature flag während des Erstellungs- oder Bearbeitungsprozesses des Flags 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 custom bucketing key über die Methode addData() bereitgestellt wird, verwenden alle Hash-Berechnungen zur Zuweisung von Benutzern zu Variationen diesen newVisitorCode (Ihren benutzerdefinierten Schlüssel) anstelle des standardmäßigen visitorCode. Die Verwendung des newVisitorCode bedeutet, dass die Bucketing-Entscheidung an Ihre benutzerdefinierte Kennung gebunden ist, was konsistente Zuweisungen in verschiedenen Kontexten gewährleistet, in denen diese Kennung vorhanden ist.
  • Datentracking und Analytik: Es ist wichtig zu beachten, dass, während der newVisitorCode (Ihr benutzerdefinierter Schlüssel) für Bucketing-Entscheidungen verwendet wird, alle nachfolgenden Daten (z. B. Tracking-Ereignisse und Konversionen) gesendet und dem ursprünglichen visitorCode zugeordnet werden. Diese Trennung stellt sicher, dass Ihre Analytik die individuellen Benutzerreisen und Interaktionen innerhalb des breiteren Kontexts Ihres Experiments genau widerspiegelt, selbst wenn das Bucketing auf einer höheren Ebene (wie einem Konto) oder über mehrere Geräte/Sitzungen hinweg durchgeführt wird. Ihre ursprünglichen Besucherdaten bleiben für umfassende Berichte intakt.

Technical requirementes

Um einen custom bucketing key effektiv zu verwenden:
  • Der Schlüssel muss ein String sein.
  • Er muss für die Entität, die Sie bucketen 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 zu dem Zeitpunkt zur Verfügung stehen, zu dem die feature flag-Entscheidung für diesen Benutzer oder diese Anfrage ausgewertet wird.

Targeting conditions

Die Kameleoon SDKs unterstützen eine Vielzahl vordefinierter Targeting-Bedingungen, die Sie verwenden können, um Benutzer in Ihren Kampagnen zu targetieren. Die Liste der Bedingungen, die dieses SDK unterstützt, finden Sie unter use visit history to target users. Sie können auch Ihre eigenen externen Daten verwenden, um Benutzer zu targetieren.

Cross-device experimentation

Um Besucher zu unterstützen, die von mehreren Geräten auf eine App zugreifen, ermöglicht Kameleoon die Synchronisierung zuvor gesammelter Besucherdaten über alle Geräte des Besuchers hinweg und die Abstimmung ihres Besuchsverlaufs über mehrere Geräte durch cross-device experimentation. Fallstudien und detaillierte Informationen darüber, wie Kameleoon Daten geräteübergreifend verarbeitet, finden Sie im Artikel über cross-device experimentation.

Synchronizing custom data across devices

Obwohl die Synchronisierung von benutzerdefinierten Mappings verwendet wird, um Besucherdaten geräteübergreifend abzugleichen, ist sie nicht immer notwendig. Im Folgenden finden Sie zwei Szenarien, in denen eine benutzerdefinierte Mapping-Synchronisierung nicht erforderlich ist: Gleiche User-ID auf allen Geräten Wenn dieselbe User-ID konsistent auf allen Geräten verwendet wird, wird die Synchronisierung automatisch ohne eine benutzerdefinierte Mapping-Synchronisierung gehandhabt. 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 Server-Instanzen), bei denen dieselbe User-ID auf allen Servern verfügbar ist, reicht die Synchronisierung zwischen Servern (mit getRemoteVisitorData()) aus, ohne dass eine zusätzliche benutzerdefinierte Mapping-Synchronisierung erforderlich ist. 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 dieselbe eindeutige Kennung (in diesem Fall der visitorCode, der auch als userId bezeichnet werden kann) konsistent zwischen den beiden Geräten für eine genaue Datenabfrage verwendet wird.
Wenn Sie gesammelte Daten in Echtzeit synchronisieren möchten, müssen Sie den Scope Visitor für Ihre Custom Data wählen.
Device A
Device B

Using custom data for session merging

Cross-device experimentation ermöglicht das Zusammenführen des Verlaufs eines Besuchers über alle Geräte hinweg (Verlaufsabgleich). Der Verlaufsabgleich ermöglicht das Zusammenführen verschiedener Besuchersitzungen zu einer. Um den Besuchsverlauf abzugleichen, verwenden Sie CustomData, um eine eindeutige Kennung für den Besucher bereitzustellen. Weitere Informationen finden Sie in der zugehörigen Dokumentation. Nachdem der geräteübergreifende Abgleich aktiviert wurde, ruft der Aufruf von getRemoteVisitorData() mit dem Parameter userId alle bekannten Daten für einen bestimmten Benutzer ab. Sitzungen mit derselben Kennung werden in einem Experiment immer dieselbe Variation angezeigt. In der Visitor-Ansicht der Ergebnisseiten Ihres Experiments werden diese Sitzungen als ein einzelner Besucher angezeigt. Die SDK-Konfiguration stellt sicher, dass zugeordnete Sitzungen immer dieselbe Variation des Experiments sehen. Es gibt jedoch einige Einschränkungen hinsichtlich der geräteübergreifenden Variation-Zuweisung. Diese Einschränkungen sind hier beschrieben. Folgen Sie dem Leitfaden activating cross-device history reconciliation, um Ihre Custom Data auf der Kameleoon-Plattform einzurichten. Anschließend können Sie das SDK normal verwenden. Die folgenden Methoden können im Kontext der Sitzungszusammenführung hilfreich sein:
  • getRemoteVisitorData() mit hinzugefügtem UniqueIdentifier(true) – um Daten für alle verknüpften Besucher abzurufen.
  • trackConversion() oder flush() mit hinzugefügten UniqueIdentifier(true)-Daten – um bestimmte Daten für einen bestimmten Besucher zu verfolgen, der mit einem anderen Besucher verknüpft ist.
Da die Custom Data, die Sie als Kennung verwenden, auf den Visitor-Scope gesetzt werden müssen, müssen Sie die geräteübergreifende Synchronisierung von Custom Data verwenden, um die Kennung mit der Methode getRemoteVisitorData() auf jedem Gerät abzurufen.
Hier ist ein Beispiel, wie Custom Data für die Sitzungszusammenführung verwendet werden kann.
In diesem Beispiel verfügt die Anwendung über eine Anmeldeseite. Da die User-ID zum Zeitpunkt der Anmeldung unbekannt ist, wird eine anonyme Besucher-Kennung verwendet, die von der Methode getVisitorCode() generiert wird. Nachdem sich der Benutzer angemeldet hat, wird der anonyme Besucher mit der User-ID verknüpft und als eindeutige Kennung für den Besucher verwendet.

Logging

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

Log levels

Das SDK unterstützt die Konfiguration der Begrenzung der Protokollierung durch ein Log Level.

Custom handling of logs

Das SDK schreibt seine Logs standardmäßig in die Konsolenausgabe. Dieses Verhalten kann überschrieben werden.
Die Begrenzung des Loggings durch ein Log Level erfolgt unabhängig von der Log-Handling-Logik.

Reference

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

Initialization

create()

Um das SDK zu verwenden, müssen Sie die Initialisierung abschließen. Ihre App führt alle Interaktionen mit dem SDK über ein Objekt der Klasse KameleoonClient durch. Erstellen Sie dieses Objekt mit der statischen Methode create() in KameleoonClientFactory.
Arguments
Return value
Exceptions thrown

waitInit()

waitInit() wartet auf die Initialisierung des KameleoonClient. Mit dieser Methode können Sie prüfen, ob das SDK den Client erfolgreich initialisiert hat, bevor Sie mit anderen Operationen fortfahren.
Wenn die Methode waitInit() fehlschlägt, wird der Initialisierungsprozess ohne Unterbrechung fortgesetzt. Nachfolgende Aufrufe der Methode waitInit() geben Ergebnisse zurück, die den aktuellen Zustand des KameleoonClient widerspiegeln. Sie können also die Methode waitInit() mehrmals aufrufen, um den Status des SDK zu überprüfen.
Return value
Exceptions thrown

Feature flags and variations

isFeatureActive()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track)
Diese Methode hieß zuvor activeFeature und wurde in SDK-Version 4.0.0 entfernt.
Rufen Sie diese Methode auf, um zu prüfen, ob ein feature flag für einen bestimmten Benutzer aktiv sein soll. Diese Methode nimmt einen visitorCode und eine featureKey als obligatorische Argumente entgegen, um zu prüfen, ob das Feature für den Benutzer aktiv ist. Wenn der Benutzer noch nie mit diesem feature flag verknüpft war, gibt das SDK einen zufälligen booleschen Wert zurück (entweder true, um den Benutzer zu diesem Feature hinzuzufügen, oder false, um ihn vom Feature auszuschließen). Wenn ein Benutzer mit dem angegebenen visitorCode bereits mit diesem feature flag registriert ist, erkennt das SDK den vorherigen featureFlag-Wert. Stellen Sie sicher, dass Sie mögliche Exceptions abfangen und behandeln. Wenn Sie einen visitorCode angeben, verwendet die Methode isFeatureActive() ihn als eindeutige Besucherkennung, was für Cross-device experimentation nützlich ist. Wenn Sie einen visitorCode angeben und den Parameter isUniqueIdentifier auf true setzen, verknüpft das SDK die geflushten Daten mit dem Besucher, der mit der angegebenen Kennung verknüpft ist.
Der Parameter isUniqueIdentifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.Der isUniqueIdentifier kann in besonderen Situationen hilfreich sein; zum Beispiel, wenn Sie nicht auf den anonymen visitorCode zugreifen können, der einem Besucher zugewiesen wurde, aber eine interne ID verwenden können, die über Session-Merging mit diesem Besucher verknüpft ist.
Arguments
Return value
Exceptions thrown

getVariation()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track)
Ruft die Variation ab, die einem bestimmten Besucher für ein bestimmtes feature flag zugewiesen ist. Diese Methode nimmt einen visitorCode und eine featureKey als obligatorische Argumente entgegen. Das track-Argument ist optional und standardmäßig true. Sie gibt die zugewiesene Variation für den Besucher zurück. Wenn der Besucher mit keinen feature flag-Regeln verknüpft ist, gibt die Methode die Standard-Variation für das angegebene feature flag zurück. Stellen Sie sicher, dass in Ihrem Code eine ordnungsgemäße Fehlerbehandlung implementiert ist, um mögliche Exceptions zu verwalten.
Die Standardvariation bezieht sich auf die Variation, die einem Besucher zugewiesen wird, wenn er nicht mit vordefinierten Delivery-Regeln für ein feature flag übereinstimmt. Mit anderen Worten, es ist die Fallback-Variation, die auf alle Benutzer angewendet wird, die nicht von bestimmten Regeln targetiert werden. Sie wird als die Variation im Abschnitt “Then, for everyone else…” in einer Verwaltungsoberfläche dargestellt.
Arguments
Return value
Exceptions thrown

getVariations()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track)
Ruft eine Map von Variation-Objekten ab, die einem bestimmten Besucher über alle feature flags hinweg zugewiesen sind. Diese Methode iteriert über alle verfügbaren feature flags und gibt die zugewiesene Variation für jedes Flag zurück, das mit dem angegebenen Besucher verknüpft ist. Sie nimmt visitorCode als obligatorisches Argument entgegen, während onlyActive und track optional sind.
  • Wenn onlyActive auf true gesetzt ist, gibt die Methode getVariations() feature flags-Variationen zurück, sofern der Benutzer nicht mit der off-Variation gebucketet ist.
  • Der Parameter track steuert, ob die Methode die Variationszuweisungen verfolgt oder nicht. Standardmäßig ist er auf true gesetzt. Wenn er auf false gesetzt ist, wird das Tracking deaktiviert.
Die zurückgegebene Map besteht aus feature flag-Keys als Schlüsseln und ihren entsprechenden Variation als Werten. Wenn für ein feature flag keine Variation zugewiesen ist, gibt die Methode die Standard-Variation für dieses Flag zurück. Eine ordnungsgemäße Fehlerbehandlung sollte implementiert werden, um mögliche Exceptions zu verwalten.
Die Standardvariation bezieht sich auf die Variation, die einem Besucher zugewiesen wird, wenn er nicht mit vordefinierten Delivery-Regeln für ein feature flag übereinstimmt. Mit anderen Worten, es ist die Fallback-Variation, die auf alle Benutzer angewendet wird, die nicht von bestimmten Regeln targetiert werden. Sie wird als die Variation im Abschnitt “Then, for everyone else…” in einer Verwaltungsoberfläche dargestellt.
Arguments
Return value
Exceptions thrown

setForcedVariation()

Die Methode ermöglicht es Ihnen, einem Benutzer programmatisch eine bestimmte Variation zuzuweisen und dabei den standardmäßigen Evaluierungsprozess zu umgehen. Dies ist besonders wertvoll für kontrollierte Experiments, bei denen die übliche Evaluierungslogik nicht erforderlich ist oder übersprungen werden muss. Es kann auch in Szenarien wie Debugging oder benutzerdefinierten Tests hilfreich sein. Wenn eine erzwungene Variation festgelegt wird, überschreibt sie die Echtzeit-Evaluierungslogik von Kameleoon. Prozesse wie Segmentierung, Targeting-Bedingungen und algorithmische Berechnungen werden übersprungen. Um Segmentierung und Targeting-Bedingungen während eines Experiments zu erhalten, setzen Sie stattdessen forceTargeting=false.
Simulierte Variationen haben in der Ausführungsreihenfolge immer Vorrang. Wenn eine Berechnung einer simulierten Variation ausgelöst wird, wird sie zuerst vollständig verarbeitet und abgeschlossen.
Eine erzwungene Variation wird genauso behandelt wie eine evaluierte Variation. Sie wird in der Analytik verfolgt und im Benutzerkontext wie jede standardmäßig evaluierte Variation gespeichert, was die Konsistenz im Reporting gewährleistet. Die Methode kann unter bestimmten Bedingungen Exceptions auslösen (z. B. ungültige Parameter, Benutzerkontext oder interne Probleme). Eine ordnungsgemäße Exception-Behandlung ist unerlässlich, um sicherzustellen, dass Ihre Anwendung stabil und widerstandsfähig bleibt.
Es ist wichtig, erzwungene Variationen von simulierten Variationen zu unterscheiden:
  • Forced variations: Sind spezifisch für ein einzelnes Experiment.
  • Simulated variations: Beeinflussen das Gesamtergebnis des feature flags.
Arguments
Exceptions thrown
In den meisten Fällen muss nur der grundlegende Fehler KameleoonException behandelt werden, wie im Beispiel gezeigt. Wenn jedoch verschiedene Fehlertypen eine Reaktion erfordern, behandeln Sie jeden basierend auf den spezifischen Anforderungen separat. Darüber hinaus können für eine erhöhte Zuverlässigkeit allgemeine Sprachfehler durch Einschluss von Exception behandelt werden.

evaluateAudiences()

  • 📨 Sendet Tracking-Daten an Kameleoon
Diese Methode evaluiert Besucher anhand aller verfügbaren Audiences Explorer-Segmente und verfolgt diejenigen, die übereinstimmen. evaluateAudiences() sollte nachdem alle relevanten Besucherdaten gesetzt oder aktualisiert wurden und kurz bevor eine Feature-Variation abgerufen oder ein feature flag geprüft wird, aufgerufen werden. Dieser Ansatz stellt sicher, dass der Besucher anhand der aktuellsten verfügbaren Daten bewertet wird, was eine genaue Audience-Zuweisung basierend auf allen Kriterien ermöglicht. Nach dem Aufruf dieser Methode können Sie eine detaillierte Analyse der Segmentleistung in Audiences Explorer durchführen.
Arguments
Exceptions thrown
In den meisten Fällen muss nur der grundlegende Fehler KameleoonException behandelt werden, wie im Beispiel gezeigt. Wenn jedoch verschiedene Fehlertypen eine Reaktion erfordern, behandeln Sie jeden basierend auf den spezifischen Anforderungen separat. Darüber hinaus können für eine erhöhte Zuverlässigkeit allgemeine Sprachfehler durch Einschluss von Exception behandelt werden.

getFeatureList()

Diese Methode hieß zuvor obtainFeatureList und wurde in SDK-Version 4.0.0 entfernt.
Gibt eine Liste der feature flag-Keys zurück, die derzeit für das SDK verfügbar sind.
Return value

getDataFile()

Um alle feature flags zu evaluieren, verwenden Sie getVariations(). Diese Methode ist effizienter als der Aufruf von DataFile und das Iterieren durch Flags mit getVariation().
Gibt die aktuelle SDK-Konfiguration als DataFile-Objekt zurück.
Return value

Visitor data

getVisitorCode()

Diese Methode hieß zuvor obtainVisitorCode und wurde in SDK-Version 4.0.0 entfernt.
Die Methode getVisitorCode() sollte aufgerufen werden, um den Kameleoon-visitorCode für den aktuellen Besucher zu erhalten. Diese Methode ist besonders wichtig, wenn Kameleoon in einer gemischten Front-End- und Back-End-Umgebung verwendet wird, in der die Konsistenz der Benutzeridentifikation garantiert sein muss. Die Implementierungslogik wird hier beschrieben:
  1. Wir prüfen, ob ein kameleoonVisitorCode-Cookie oder ein Query-Parameter, der mit der aktuellen HTTP-Anfrage verbunden ist, gefunden werden kann. Falls ja, verwenden wir diesen kameleoonVisitorCode als Besucherkennung.
  2. Wenn in der aktuellen Anfrage kein Cookie / Parameter gefunden wird, generieren wir entweder zufällig eine neue Kennung oder verwenden das defaultVisitorCode-Argument als Kennung, wenn es übergeben wird. Dieser Prozess ermöglicht es unseren Kunden, ihre Kennungen als Visitor-Codes zu verwenden, sofern sie dies wünschen. Diese Flexibilität bietet den zusätzlichen Vorteil, Kameleoon-Besucher mit ihren eigenen Benutzern ohne zusätzliche Lookups in einer Matching-Tabelle abzugleichen.
  3. In jedem Fall wird das serverseitige (über HTTP-Header) kameleoonVisitorCode-Cookie mit dem entsprechenden Wert gesetzt. Dann gibt die Methode diesen Kennungswert zurück.
Weitere Informationen finden Sie in diesem Artikel.
Wenn Sie einen visitorCode angeben, muss seine Eindeutigkeit von Ihrer Seite garantiert werden - das SDK kann sie nicht überprüfen. Beachten Sie auch, dass die Länge des visitorCode auf 255 Zeichen begrenzt ist. Jedes überschüssige Zeichen wirft eine Exception aus.
Die Methode getVisitorCode() ermöglicht es Ihnen, simulierte Variationen für einen Besucher festzulegen. Wenn Cookies (aus einer Anfrage oder einem Dokument) den Schlüssel kameleoonSimulationFFData enthalten, wird der standardmäßige Evaluierungsprozess umgangen. Stattdessen gibt die Methode direkt eine Variation basierend auf den bereitgestellten Daten zurück.Sie können Simulationen auf zwei Arten anwenden:
  • Automatisch (empfohlen): Wenn Sie Kameleoon Web Experimentation oder das SDK im Hybrid mode verwenden, wird das Cookie automatisch erstellt, wenn die Anzeige einer Variante mit dem Simulation Panel simuliert wird.
  • Manuell: Setzen Sie das Cookie kameleoonSimulationFFData manuell.
Es ist wichtig, simulierte Variationen von erzwungenen Variationen zu unterscheiden:
  • Simulated variations: Beeinflussen das Gesamtergebnis des feature flags.
  • Forced variations: Sind spezifisch für ein einzelnes Experiment.
⚙️ Manuelle EinrichtungStellen Sie bitte sicher, dass das Cookie kameleoonSimulationFFData diesem Format folgt:
  • kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: Simuliert die Variation mit varId des Experiments expId für die angegebene featureKey.
  • kameleoonSimulationFFData={"featureKey":{"expId":0}}: Simuliert die Standardvariation (definiert im Abschnitt Then, for everyone else in Production, serve) für die angegebene featureKey.
⚠️ Um die ordnungsgemäße Funktionalität zu gewährleisten, muss der Cookie-Wert als URI-Komponente mit einer Methode wie encodeURIComponent codiert werden.
Arguments
Return value

addData()

Die Methode addData() fügt dem Speicher Targeting-Daten hinzu, damit andere Methoden die Daten verwenden können, um zu entscheiden, ob der aktuelle Besucher targetiert werden soll oder nicht. Die Methode addData() gibt keinen Wert zurück und interagiert nicht selbstständig mit den Back-End-Servern von Kameleoon. Stattdessen werden alle deklarierten Daten für die zukünftige Übertragung mit der Methode flush() gespeichert. Dieser Ansatz reduziert die Anzahl der durchgeführten Serveraufrufe, da die Daten typischerweise in einem einzigen Serveraufruf zusammengefasst werden, der durch flush() ausgelöst wird. Die Methode trackConversion() sendet ebenfalls alle zuvor zugeordneten Daten, genau wie flush(). Dasselbe gilt für die Methoden getVariation() und getVariations(), wenn eine Experimentierungsregel ausgelöst wird.
Jeder Besucher kann für die meisten Datentypen nur eine Instanz zugeordneter Daten haben. CustomData ist jedoch eine Ausnahme. Besucher können eine Instanz zugeordneter CustomData pro Index haben.
Arguments
Exceptions

flush()

  • 📨 Sendet Tracking-Daten an Kameleoon
Die Methode flush() sammelt die Kameleoon-Daten, die mit dem Besucher verknüpft sind. Sie sendet dann eine Tracking-Anfrage zusammen mit allen Daten, die mit der addData-Methode hinzugefügt wurden und noch nicht mit einer dieser Methoden gesendet wurden. flush() ist nicht blockierend, da der Serveraufruf asynchron erfolgt. flush ermöglicht es Ihnen zu steuern, wann Daten, die mit einem bestimmten visitorCode verknüpft sind, an unsere Server gesendet werden. Wenn Sie beispielsweise addData() ein Dutzend Mal aufrufen, wäre es ineffizient, die Daten bei jedem Aufruf von addData() an den Server zu senden. Sie müssen also nur einmal flush() aufrufen. Wenn Sie einen visitorCode angeben, verwendet die Methode flush() diesen Code als eindeutige Besucherkennung, was für cross-device experimentation nützlich ist. Wenn Sie einen visitorCode angeben und den Parameter isUniqueIdentifier auf true setzen, verknüpft das SDK die geflushten Daten mit dem Besucher, der mit der angegebenen Kennung verknüpft ist.
Der Parameter isUniqueIdentifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.Der isUniqueIdentifier kann in besonderen Situationen hilfreich sein; zum Beispiel, wenn Sie nicht auf den anonymen visitorCode zugreifen können, der einem Besucher zugewiesen wurde, aber eine interne ID verwenden können, die über Session-Merging mit diesem Besucher verknüpft ist.
Arguments

getRemoteData()

Diese Methode hieß zuvor retrieveDataFromRemoteSource und wurde in SDK-Version 4.0.0 entfernt.
Die Methode getRemoteData() ermöglicht es Ihnen, Daten (gemäß einem als Argument übergebenen key) für den angegebenen siteCode abzurufen, die auf dem Kameleoon-Server gespeichert sind. Ihr Site-Code wird in KameleoonClientFactory.create() angegeben. Normalerweise werden Daten auf unseren Remote-Servern mit unserer Data API gespeichert. Diese Methode bietet zusammen mit der Verfügbarkeit unserer skalierbaren Server eine bequeme Möglichkeit, zusätzliche Daten zu speichern, die Sie später für Ihre App abrufen können.
Arguments
Return value

getRemoteVisitorData()

getRemoteVisitorData() ist eine asynchrone Methode zum Abrufen von Kameleoon Visits Data für den visitorCode von der Kameleoon Data API. Die Methode fügt die Daten dem Speicher hinzu, damit andere Methoden sie beim Treffen von Targeting-Entscheidungen verwenden können. Mit dieser Methode erhaltene Daten spielen eine wichtige Rolle, wenn Sie:
  • Daten verwenden möchten, die von anderen Geräten gesammelt wurden.
  • auf den Verlauf eines Benutzers zugreifen möchten, z. B. zuvor besuchte Seiten während vergangener Besuche.
  • Daten verwenden möchten, die nur auf der Client-Seite zugänglich sind, wie Datalayer-Variablen und Ziele, die auf dem Front-End konvertieren.
Lesen Sie diesen Artikel für ein besseres Verständnis möglicher Anwendungsfälle.
Standardmäßig ruft getRemoteVisitorData() automatisch die zuletzt gespeicherten Custom Data mit scope=Visitor ab und fügt sie dem Besucher hinzu, ohne dass die Methode addData() aufgerufen werden muss. Dies ist besonders nützlich für die Synchronisierung von Custom Data zwischen mehreren Geräten.
Der Parameter isUniqueIdentifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.Der isUniqueIdentifier kann in besonderen Situationen hilfreich sein; zum Beispiel, wenn Sie nicht auf den anonymen visitorCode zugreifen können, der einem Besucher zugewiesen wurde, aber eine interne ID verwenden können, die über Session-Merging mit diesem Besucher verknüpft ist.
Arguments
Return value
Using parameters in getRemoteVisitorData()
Die Methode getRemoteVisitorData() bietet Flexibilität, indem sie es Ihnen ermöglicht, verschiedene Parameter beim Abrufen von Daten zu Besuchern zu definieren. Egal, ob Sie auf der Grundlage von Zielen, Experiments oder Variationen targetieren, derselbe Ansatz gilt für alle Datentypen. Angenommen, Sie möchten Daten zu Besuchern abrufen, die ein Ziel “Order transaction” abgeschlossen haben. Sie können Parameter innerhalb der Methode getRemoteVisitorData() angeben, um Ihr Targeting zu verfeinern. Wenn Sie beispielsweise nur Benutzer targetieren möchten, die in ihren letzten fünf Besuchen das Ziel konvertiert haben, können Sie den Parameter previousVisitAmount auf 5 und conversions auf true setzen. Die in diesem Beispiel gezeigte Flexibilität beschränkt sich nicht auf Zieldaten. Sie können Parameter innerhalb der Methode getRemoteVisitorData() verwenden, um Daten zu einer Vielzahl von Besucherverhaltensweisen abzurufen.
Hier ist die Liste der verfügbaren kameleoon.types.RemoteVisitorDataFilter-Optionen:

getVisitorWarehouseAudience()

Diese Methode ruft alle Audience-Daten ab, die mit dem Besucher in Ihrem Data Warehouse verknüpft sind, unter Verwendung des angegebenen visitorCode und warehouseKey. Der warehouseKey ist typischerweise Ihre interne Benutzer-ID. Der Parameter customDataIndex entspricht den Kameleoon Custom Data, die Kameleoon verwendet, um Ihre Besucher zu targetieren. Sie können sich auf die Warehouse-Targeting-Dokumentation für zusätzliche Details beziehen. Die Methode übergibt das Ergebnis an das zurückgegebene Future als CustomData-Objekt und bestätigt, dass die Daten dem Besucher hinzugefügt wurden und für Targeting-Zwecke verfügbar sind.
Arguments
Return value
Exceptions thrown

setLegalConsent()

Sie müssen diese Methode verwenden, um anzugeben, ob der Besucher seine rechtliche Zustimmung zur Verwendung personenbezogener Daten gegeben hat. Das Setzen des Parameters legalConsent auf false schränkt die Arten von Daten ein, die Sie in Tracking-Anfragen aufnehmen können. Diese Methode hilft Ihnen, rechtliche und regulatorische Anforderungen einzuhalten und gleichzeitig Besucherdaten verantwortungsvoll zu verwalten. Weitere Informationen zu personenbezogenen Daten finden Sie in der Richtlinie zur Einwilligungsverwaltung.
Arguments
Exceptions thrown
Consent revocation behavior
Wenn Sie setLegalConsent() mit legalConsent=false aufrufen, löscht das SDK das kameleoonVisitorCode-Cookie nicht. Stattdessen verlängert es das Ablaufdatum des Cookies nicht mehr und lässt das Cookie bestehen, bis es natürlich abläuft. Wenn Ihre Compliance-Anforderungen die sofortige Entfernung der Cookie-Datei beim Opt-Out verlangen, müssen Sie sie manuell mit den nativen Cookie-Verwaltungsmethoden Ihres Frameworks löschen. Das SDK entfernt die Datei nicht automatisch.

Goals and third-party analytics

trackConversion()

  • 📨 Sendet Tracking-Daten an Kameleoon
Verwenden Sie diese Methode, um eine Konversion für ein bestimmtes Ziel und einen bestimmten Benutzer zu verfolgen. Diese Methode erfordert visitorCode und goalId. Außerdem akzeptiert diese Methode auch optionale Argumente revenue, negative und metadata. Der visitorCode ist normalerweise identisch mit demjenigen, der beim Auslösen des Experiments verwendet wurde. Die Methode trackConversion() gibt keinen Wert zurück. Diese Methode ist nicht blockierend, da der Serveraufruf asynchron erfolgt.
Der Parameter isUniqueIdentifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.Der isUniqueIdentifier kann auch in anderen Sonderfällen nützlich sein, z. B. wenn Sie nicht auf den anonymen visitorCode zugreifen können, der dem Besucher ursprünglich zugewiesen wurde, aber auf eine interne ID zugreifen können, die mit dem anonymen Besucher über Session-Merging-Funktionen verbunden ist.
Arguments
Metadatenwerte sind über Rohdatenexporte und die Ergebnisseite zugänglich.Wenn der Parameter metadata angegeben wird, verwendet Kameleoon diese angegebenen Werte für die aktuelle Konversion anstelle der zuvor mit der Methode addData() gesammelten Werte. Wenn der Parameter weggelassen wird, verwendet Kameleoon die zuletzt verfolgten Werte für diese CustomData vor der Konversion und innerhalb desselben Besuchs.Kameleoon berücksichtigt nur die Metadatenwerte, die explizit als Parameter an die Methode trackConversion() übergeben werden.Im untenstehenden Beispiel ordnet Kameleoon die Konversion nur dem Custom Data-Wert zu, der explizit als Parameter angegeben wurde (hier: Index 5 mit dem Wert ‘Amex Credit Card’).
Exceptions

getEngineTrackingCode()

Kameleoon lässt sich mit mehreren Analytics-Lösungen integrieren, darunter Mixpanel, Google Analytics 4 und Segment. Um serverseitige Experiments korrekt zu verfolgen, rufen Sie die Methode getEngineTrackingCode() auf, nachdem der Besucher ein Experiment ausgelöst hat. Das SDK gibt JavaScript-Queue-Befehle für die Experiments zurück, die der Besucher in den letzten fünf Sekunden ausgelöst hat. Wenn Sie diesen Code in die Seite einfügen, verarbeitet Engine.js die Befehle und sendet die Expositionsereignisse über die aktive Analytics-Integration. Siehe hybrid experimentation für weitere Informationen zur Implementierung dieser Methode.
  • Um diese Funktion zu nutzen, implementieren Sie sowohl das Java SDK als auch Kameleoon Engine.js. Da Engine.js in diesem Flow nur für das Tracking verwendet wird, können Sie das asynchrone Tag vor dem schließenden </body>-Tag installieren.
  • Wenn Sie Experiments nur in Kameleoon verfolgen möchten und keine Expositionsereignisse an Drittanbieter-Analytics-Tools senden müssen, verwenden Sie das JavaScript / TypeScript SDK. Diese Option funktioniert gut für serverless edge compute platforms. Das JavaScript / TypeScript SDK verfolgt Variationen automatisch, wenn Sie getVisitorCode aufrufen, sofern Sie die entsprechenden Experiment-Zuweisungen zu window.kameleoonQueue hinzufügen..
  • Sie können den zurückgegebenen Tracking-Code direkt in ein HTML-<script>-Tag einfügen.
In diesem Beispiel sind 123456 und 234567 Experiment-IDs und 7890 und 8901 Variation-IDs. In Ihrer Implementierung generiert das SDK diese Werte im zurückgegebenen Tracking-Code.
Arguments
Return value

Events

setEventHandler()

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

Data types

Dieser Abschnitt listet die von Kameleoon in com.kameleoon.Data unterstützten Datentypen auf. Wir bieten mehrere Standarddatentypen sowie den Typ CustomData, mit dem Sie benutzerdefinierte Datentypen definieren können.

Browser

Das hier gespeicherte Browser-Dataset kann verwendet werden, um Experiment- und Personalisierungsberichte nach jedem damit verknüpften Wert zu filtern.

Conversion

Das hier gespeicherte Conversion-Dataset kann verwendet werden, um Experiment- und Personalisierungsberichte nach jedem damit verknüpften Ziel zu filtern.
  • Jeder Besucher kann mehrere Conversion-Objekte haben.
  • Sie können die goalId in der Kameleoon-App finden.
Cookie enthält Informationen über das Cookie, das auf dem Gerät des Besuchers gespeichert ist.
Jeder Besucher kann nur ein Cookie haben. Das Hinzufügen eines zweiten Cookie überschreibt das erste.

Geolocation

Geolocation enthält die Geolokalisierungsdetails des Besuchers.
  • Jeder Besucher kann nur eine Geolocation haben. Das Hinzufügen einer zweiten Geolocation überschreibt die erste.

CustomData

CustomData ermöglicht die Verknüpfung jeder Art von Daten mit jedem Besucher und macht es zu einem effektiven Werkzeug für Targeting-Bedingungen in Segmenten. Darüber hinaus kann es als Filter oder Breakdown in Experiment-Berichten verwendet werden. Weitere Informationen zu Custom Data finden Sie in diesem Artikel. Definieren Sie Custom Data-Typen in der Kameleoon-App oder der Data API und verwenden Sie sie vom SDK aus.
  • Jeder Besucher ist nur eine CustomData für jeden eindeutigen index(name) erlaubt. Das Hinzufügen einer weiteren CustomData mit demselben index(name) ersetzt die vorhandene.
  • Der Custom Data-Index befindet sich im Custom Data dashboard unter der Spalte “INDEX”.
  • Um zu verhindern, dass das SDK Daten mit dem ausgewählten Index aus Datenschutzgründen an Kameleoon-Server sendet, aktivieren Sie die Option: Use this data only locally for targeting purposes beim Erstellen von Custom Data.
  • Das Hinzufügen einer CustomData-Instanz, die mit einem Namen erstellt wurde, wenn die SDK-Instanz nicht initialisiert ist oder der Name nicht registriert ist, führt dazu, dass die Daten ignoriert werden.

Device

PageView

Speichert Page-View-Ereignisse.
Der Index (ID) des Referrers ist in der Kameleoon-App auf der Seite der Konfiguration des Akquisitionskanals verfügbar. Vorsicht: Dieser Index beginnt bei 0, sodass der erste Akquisitionskanal, den Sie für die angegebene Site erstellen, die ID 0 hätte, nicht 1.

UserAgent

Serverseitige Experiments sind mit größerer Wahrscheinlichkeit von Bot-Traffic betroffen als clientseitige Experiments. Kameleoon verwendet die IAB/ABC International Spiders and Bots List, um dieses Problem anzugehen und bekannte Bots und Spider zu erkennen. Kameleoon verwendet auch das Feld UserAgent, um Bots und anderen unerwünschten Traffic herauszufiltern, der Ihre Konversionsmetriken verfälschen könnte. Weitere Details finden Sie in unserem Hilfeartikel zum Bot-Filtering. Wenn Sie interne Bots verwenden, empfehlen wir, den Wert curl/8.0 des userAgent zu übergeben, um sie aus unserer Analytik auszuschließen.

UniqueIdentifier

Wenn Sie keinen UniqueIdentifier für einen Besucher hinzufügen, wird visitorCode als eindeutige Besucherkennung verwendet, was für Cross-device experimentation nützlich ist. Wenn Sie UniqueIdentifier für einen Besucher hinzufügen, verknüpft das SDK die geflushten Daten mit dem Besucher, der mit der angegebenen Kennung verknüpft ist. Der isUniqueIdentifier kann in besonderen Situationen hilfreich sein; zum Beispiel, wenn Sie nicht auf den anonymen visitorCode zugreifen können, der einem Besucher zugewiesen wurde, aber eine interne ID verwenden können, die über Session-Merging mit diesem Besucher verknüpft ist.

OperatingSystem

OperatingSystem enthält Informationen über das Betriebssystem auf dem Gerät des Besuchers.
Jeder Besucher kann nur ein OperatingSystem haben. Das Hinzufügen eines zweiten OperatingSystem überschreibt das erste.

ApplicationVersion

ApplicationVersion repräsentiert die semantische Versionsnummer Ihrer Anwendung.
Ein Besucher kann nur eine ApplicationVersion haben. Das Hinzufügen einer zweiten Instanz überschreibt die erste.

Returned Types

DataFile

Das DataFile enthält die SDK-Konfigurationsdetails. Es kann bei Bedarf von Kunden um zusätzliche Informationen erweitert werden. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.

FeatureFlag

Das FeatureFlag repräsentiert eine Reihe von Eigenschaften, die ein feature flag selbst definieren – z. B. seine Variations, Rules, den Status der Umgebung und andere zugehörige Details. Es kann bei Bedarf von Kunden um zusätzliche Informationen erweitert werden. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.

Rule

Die Rule repräsentiert eine Reihe von Eigenschaften, die eine Regel selbst definieren – z. B. ihre Variations. Sie kann bei Bedarf von Kunden um zusätzliche Informationen erweitert werden. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.

Variation

Variation enthält Informationen über die zugewiesene Variation des Besuchers (oder die Standardvariation, wenn keine spezifische Zuweisung existiert).
  • Das Variation-Objekt liefert Details über die zugewiesene Variation und das zugehörige Experiment, während das Variable-Objekt spezifische Details über jede Variable innerhalb einer Variation enthält.
  • Stellen Sie sicher, dass Ihr Code den Fall behandelt, in dem id oder experimentId null sein können, was auf eine Standardvariation hinweist.
  • Die variables-Map kann leer sein, wenn keine Variablen mit der Variation verknüpft sind.

Variable

Variable enthält Informationen über eine Variable, die mit der zugewiesenen Variation verknüpft ist.

Deprecated methods

Diese Methoden sind veraltet und werden in SDK-Version 5.0.0 entfernt.

getFeatureVariationKey()

  • 📨 Sendet Tracking-Daten an Kameleoon
Verwenden Sie stattdessen getVariation().
Rufen Sie diese Methode auf, um den Feature-Variation-Key für einen angegebenen Benutzer und ein angegebenes Feature zu erhalten. Diese Methode nimmt einen visitorCode und eine featureKey als obligatorische Argumente entgegen, um den Variation-Key für den Benutzer und das Feature zu erhalten. Wenn der Benutzer noch nie mit diesem feature flag verknüpft war, gibt das SDK einen zufällig zugewiesenen Variation-Key zurück (gemäß den feature flag-Regeln). Wenn ein Benutzer mit dem angegebenen visitorCode bereits mit diesem feature flag registriert ist, erkennt das SDK den vorherigen Variation-Key-Wert. Wenn der Benutzer mit keiner der Regeln übereinstimmt, wird der Standardwert zurückgegeben, den Sie in der Kameleoon-App anpassen können. Stellen Sie sicher, dass Sie mögliche Exceptions abfangen und behandeln. Wenn Sie einen visitorCode angeben, verwendet die Methode flush() ihn als eindeutige Besucherkennung, was für Cross-device experimentation nützlich ist. Wenn Sie einen visitorCode angeben und den Parameter isUniqueIdentifier auf true setzen, verknüpft das SDK die geflushten Daten mit dem Besucher, der mit der angegebenen Kennung verknüpft ist.
Der Parameter isUniqueIdentifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.Der isUniqueIdentifier kann in besonderen Situationen hilfreich sein; zum Beispiel, wenn Sie nicht auf den anonymen visitorCode zugreifen können, der einem Besucher zugewiesen wurde, aber eine interne ID verwenden können, die über Session-Merging mit diesem Besucher verknüpft ist.
Arguments
Return value
Exceptions thrown

getActiveFeatures()

Verwenden Sie stattdessen getVariations().
Diese Methode nimmt einen einzelnen Parameter visitorCode entgegen. Das Ergebnis enthält nur aktive Features für einen bestimmten Besucher.
Arguments
Return value
Exceptions thrown

getActiveFeatureListForVisitorCode()

  • Verwenden Sie stattdessen getVariations().
  • Diese Methode hieß zuvor obtainFeatureListForVisitorCode und wurde in SDK-Version 4.0.0 entfernt.
Diese Methode nimmt einen einzelnen Parameter visitorCode entgegen. Gibt nur die aktiven feature flags für den angegebenen Besucher zurück.
Arguments
Return value

getFeatureVariable()

  • 📨 Sendet Tracking-Daten an Kameleoon
Verwenden Sie stattdessen getVariation().
Rufen Sie diese Methode auf, um den zugehörigen Feature-Variationswert eines Benutzers zu erhalten. Diese Methode nimmt einen visitorCode, eine featureKey und eine variableKey als erforderliche Argumente entgegen, um die Variable des Variation-Keys für den angegebenen Benutzer zu erhalten. Wenn ein Benutzer noch nie mit diesem feature flag verknüpft war, gibt das SDK einen zufällig zugewiesenen Variablenwert des Variation-Keys gemäß den feature flag-Regeln zurück. Wenn ein Benutzer mit dem angegebenen visitorCode bereits mit diesem feature flag registriert ist, gibt das SDK den Variablenwert für die zuvor zugeordnete Variation zurück. Wenn der Benutzer mit keiner der Regeln übereinstimmt, wird die Standardvariable zurückgegeben. Stellen Sie sicher, dass Sie mögliche Exceptions abfangen und behandeln. Wenn Sie einen visitorCode angeben, verwendet die Methode getFeatureVariable() den Code als eindeutige Besucherkennung, was für cross-device experimentation nützlich ist. Wenn Sie einen visitorCode angeben und den Parameter isUniqueIdentifier auf true setzen, verknüpft das SDK die geflushten Daten mit dem Besucher, der mit der angegebenen Kennung verknüpft ist.
Der Parameter isUniqueIdentifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.Der isUniqueIdentifier kann in besonderen Situationen hilfreich sein; zum Beispiel, wenn Sie nicht auf den anonymen visitorCode zugreifen können, der einem Besucher zugewiesen wurde, aber eine interne ID verwenden können, die über Session-Merging mit diesem Besucher verknüpft ist.
Arguments
Return value
Exceptions thrown

getFeatureVariables()

  • 📨 Sendet Tracking-Daten an Kameleoon
Verwenden Sie stattdessen getVariation().
Diese Methode ruft eine Map ab, die Variablenschlüssel und ihre Werte enthält, die gemäß der Variation zugewiesen werden, der der Besucher im angegebenen feature flag zugewiesen ist. Feature-Variablen können in der Kameleoon-App geändert werden. Wenn ein Benutzer noch nie mit diesem feature flag verknüpft war, gibt das SDK einen zufällig zugewiesenen Satz von Variablenwerten in der Variation gemäß den feature flag-Regeln zurück. Wenn ein Benutzer mit dem angegebenen visitorCode bereits mit diesem feature flag registriert ist, gibt das SDK die Variablenwerte für die zuvor verwendete Variation zurück. Wenn der Benutzer mit keiner der Regeln übereinstimmt, werden die Standardvariablen zurückgegeben. Stellen Sie sicher, dass Sie mögliche Exceptions abfangen und behandeln.
Arguments
Return value
Exceptions thrown

getFeatureVariationVariables()

  • Verwenden Sie stattdessen getVariation().
  • Diese Methode hieß zuvor getFeatureAllVariables und wurde in SDK-Version 4.0.0 entfernt.
Rufen Sie diese Methode auf, um alle Feature-Variablen für ein Feature abzurufen. Sie können Feature-Variablen in der Kameleoon-App ändern. Diese Methode nimmt zwei Eingabeparameter entgegen: featureKey und variationKey. Sie gibt die Daten mit dem Typ Map<String, Object> zurück, wie in der Kameleoon-App definiert. Sie wirft eine Exception (KameleoonException.FeatureNotFound), wenn das angeforderte Feature in der internen Konfiguration des SDK nicht gefunden wird.
Arguments
Return value
Exceptions thrown