Zum Hauptinhalt springen
Mit dem Ruby SDK können Sie Experimente ausführen und Feature Flags auf Ihrem Ruby-Backend-Server aktivieren. Die Integration unseres SDK in Ihre Webanwendung ist einfach, und sein Footprint (Speicher- und Netzwerknutzung) ist gering. Erste Schritte: Hilfe für den Einstieg finden Sie im Entwicklerhandbuch. Changelog: Aktuelle Version des Ruby SDK: 3.18.0 Changelog. SDK-Methoden: Die vollständige Referenzdokumentation des Ruby SDK finden Sie im Abschnitt Referenz.

Entwicklerhandbuch

Dieser Abschnitt zeigt Ihnen, wie Sie unser SDK integrieren und Experimente in Ihren Ruby-Anwendungen ausführen. Folgen Sie diesem Tutorial, um einen einfachen A/B-Test einzurichten, mit dem Sie die Anzahl der empfohlenen Produkte je nach Variation ändern.

Erste Schritte

Installieren des SDK

Installieren Sie das SDK mit einem Standard-Gem-Paket, das im offiziellen RubyGems-Repository gehostet wird. Führen Sie zur Installation den folgenden Befehl aus:
gem install kameleoon-client-ruby

Konfigurieren des Clients

Sie geben die Anmeldedaten für das Ruby SDK über eine Konfigurationsdatei an, mit der Sie auch das Verhalten des SDK anpassen können. Sie können mit unserer Beispielkonfigurationsdatei beginnen. Wir empfehlen, diese Datei unter dem Standardpfad /etc/kameleoon/client-ruby.yaml abzulegen. Wenn Sie einen anderen Speicherort verwenden, müssen Sie den Pfad während der Initialisierung als Argument an die Methode Kameleoon::KameleoonClientFactory.Create() übergeben. Dies sind die verfügbaren Schlüssel im neuesten SDK:
SchlüsselBeschreibungStandardwert
client_id (erforderlich)Erforderlich für die Authentifizierung beim Kameleoon-Dienst. Um Ihre client id zu finden, lesen Sie die Dokumentation zu API-Anmeldedaten.
client_secret (erforderlich)Erforderlich für die Authentifizierung beim Kameleoon-Dienst. Um Ihr client secret zu finden, lesen Sie die Dokumentation zu API-Anmeldedaten.
session_duration_minute (optional)Bezeichnet das vordefinierte Zeitintervall, in dem Kameleoon den Besucher und die zugehörigen Daten im Speicher (RAM) speichert. Beachten Sie, dass eine Verlängerung der Sitzungsdauer den RAM-Bedarf zur Speicherung der Besucherdaten erhöht.30 Minuten
refresh_interval_minute (optional)Gibt das Aktualisierungsintervall in Minuten an, in dem das SDK die Konfiguration der aktiven Experimente und Feature Flags abruft. Der Wert bestimmt die maximale Zeit, die benötigt wird, um Änderungen wie das Aktivieren oder Deaktivieren von Feature Flags oder das Starten von Experimenten auf Ihre Produktionsserver zu übertragen. Zusätzlich bieten wir einen Streaming-Modus an, der Server-Sent Events (SSE) verwendet, um neue Konfigurationen automatisch an das SDK zu übermitteln und in Echtzeit ohne Verzögerungen anzuwenden.60 Minuten
default_timeout_millisecond (optional)Gibt das Timeout in Millisekunden für Netzwerkanfragen vom SDK an. Setzen Sie den Wert auf 30 Sekunden oder mehr, wenn Sie keine stabile Verbindung haben. Einige Methoden verfügen über einen zusätzlichen Parameter, mit dem Sie das Standard-Timeout für diese bestimmte Methode überschreiben können. Wenn Sie das Timeout für eine Methode nicht explizit angeben, verwendet das SDK diesen Standardwert.10000 Millisekunden
tracking_interval_millisecond (optional)Gibt das Intervall für Tracking-Anfragen in Millisekunden an. Alle Besucher, die Kameleoon für ein Feature Flag ausgewertet hat oder deren Daten geflusht wurden, sind in dieser Tracking-Anfrage enthalten, die das SDK einmal pro Intervall durchführt. Der Mindestwert ist 1000 ms, was auch der Standardwert ist, und der Höchstwert ist 5000 ms.1000 Millisekunden
environment (optional)Umgebung, aus der die Konfiguration des Feature Flags verwendet werden soll. Der Wert kann production, staging oder development sein. Weitere Informationen finden Sie im Artikel Umgebungen verwalten.production
top_level_domain (im Hybrid-Modus erforderlich)Die aktuelle Top-Level-Domain für Ihre Website. Verwenden Sie das Format: example.com. Geben Sie nicht https://, www oder andere Subdomains an. Kameleoon verwendet diese Information, um das entsprechende Cookie auf der Top-Level-Domain zu setzen.nil
network_domain (optional)Benutzerdefinierte Domain, die von SDKs für ausgehende Anfragen verwendet wird, oft für Proxying. Muss eine gültige Domain sein (z. B. example.com oder sub.example.com). Ungültige Formate werden auf den Standardwert von Kameleoon zurückgesetzt.nil
verbose_mode (veraltet)Boolescher Wert (true oder false), der zusätzliche Protokollierung aktiviert, einschließlich Netzwerkanfragen und Debug-Informationen. Dieses Feld ist veraltet und wird in der SDK-Version 4.0.0 entfernt. Verwenden Sie stattdessen KameleoonLogger.setLogLevel.nil
Das Kameleoon Ruby SDK verwendet die Automation API und folgt dem OAuth 2.0 Client-Credentials-Flow.

Initialisieren des Clients

Nachdem Sie das SDK in Ihre Anwendung installiert und die korrekten Anmeldedaten konfiguriert haben (in /etc/kameleoon/client-ruby.yaml oder Kameleoon::KameleoonClientConfig), müssen Sie ein serverseitiges Experiment in der Kameleoon-App einrichten. Der nächste Schritt besteht darin, den Kameleoon-Client in Ihrem Anwendungscode zu erstellen. Der folgende Code stellt ein Beispiel für die Erstellung des Kameleoon-Clients bereit. Ein Kameleoon::KameleoonClient ist ein Singleton-Objekt, das als Brücke zwischen Ihrer Anwendung und Kameleoon fungiert. Es enthält alle Methoden und Eigenschaften, die Sie benötigen, um ein Experiment auszuführen.
Entwickler sind dafür verantwortlich, die korrekte Logik ihres Anwendungscodes bei der Implementierung von A/B-Tests mit Kameleoon sicherzustellen. Eine bewährte Praxis besteht darin, immer davon auszugehen, dass ein Besucher vom Experiment ausgeschlossen werden kann, wenn es noch nicht gestartet wurde. Diese Praxis ist einfach umzusetzen, da sie mit der Standard- oder Referenzvariation übereinstimmt, die immer vorhanden sein sollte. Die Codebeispiele im nächsten Abschnitt veranschaulichen diesen Ansatz.
# external settings file
require "kameleoon"

site_code = "a8st4f59bj"

kameleoon_client = Kameleoon::KameleoonClientFactory.create(site_code)

kameleoon_client = Kameleoon::KameleoonClientFactory.create(site_code, config_path: '/etc/kameleoon/client-ruby.yaml')

# internal KameleoonClientConfig object
require 'kameleoon'
require 'kameleoon/kameleoon_client_config'

kameleoon_config = Kameleoon::KameleoonClientConfig.new(
  'client_id', # required
  'client_secret', # required
  refresh_interval_minute: configuration_refresh_interval, # (in minutes) optional, default: 60 minutes
  session_duration_minute: session_duration, # (in minutes) optional, default: 30 minutes
  default_timeout_millisecond: default_timeout, # (in milliseconds) optional, default: 2000 milliseconds
  tracking_interval_millisecond: tracking_interval, # (in milliseconds) optional (1000 ms by default)
  environment: environment, # optional, possible values: "production" / "staging" / "development" / "staging", default: "production"
  top_level_domain: 'example.com',
  verbose_mode: verbose_mode, # optional, default: false
  network_domain: 'example.com' # optional
)
kameleoon_client = Kameleoon::KameleoonClientFactory.create(site_code, config: kameleoon_config)
Wenn Sie Ruby on Rails verwenden, empfehlen wir, den Kameleoon-Client beim Serverstart in der Datei application.rb zu initialisieren.
require_relative 'boot'
require 'rails/all'
require 'kameleoon'
Bundler.require(*Rails.groups)

module App
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 6.1
	  if defined?(Rails::Server)
        config.after_initialize do
            site_code = 'a8st4f59bj'
            kameleoon_config = Kameleoon::KameleoonClientConfig.new('client_id', 'client_secret')
	        config.kameleoon_client = Kameleoon::KameleoonClientFactory.create(site_code, config: kameleoon_config)
        end
	  end
  end
end
Sie können dann in Ihren Controllern auf den Kameleoon-Client zugreifen:
class YourController < ApplicationController
  def index
    kameleoon_client = App::Application.config.kameleoon_client
    # Your controller code, using the kameleoon_client
  end
end

Aktivieren eines Feature Flags

Zuweisen einer eindeutigen ID zu einem Benutzer
Um einem Benutzer eine eindeutige ID zuzuweisen, können Sie die Methode get_visitor_code() verwenden. Wenn kein Visitor Code existiert (aus dem Cookie der Anfrage-Header), generiert die Methode eine zufällige eindeutige ID oder verwendet einen default_visitor_code, den Sie generiert hätten. Die ID wird dann in einem Cookie in den Antwort-Headern gesetzt. Wenn Sie Kameleoon im Hybrid-Modus verwenden, stellt der Aufruf der Methode get_visitor_code() sicher, dass die eindeutige ID (Visitor Code) zwischen der Anwendungsdatei engine.js (zuvor kameleoon.js genannt) und dem SDK geteilt wird.
Abrufen einer Flag-Konfiguration
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 get_variation() oder feature_active?() verwenden, um die Konfiguration basierend auf dem feature_key abzurufen. Die Methode get_variation() verarbeitet sowohl einfache Feature Flags mit AN/AUS-Zuständen als auch komplexere Flags mit mehreren Variationen. Die Methode ruft die entsprechende Variation für den Benutzer ab, indem sie die Feature-Regeln überprüft, die Variation zuweist und sie basierend auf feature_key und visitor_code zurückgibt. Die Methode feature_active?() kann verwendet werden, wenn Sie die Konfiguration eines einfachen Feature Flags abrufen möchten, das nur einen AN- oder AUS-Zustand hat, im Gegensatz zu komplexeren Feature Flags mit mehreren Variationen oder Targeting-Optionen. Wenn Ihr Feature Flag zugehörige Variablen hat (z. B. bestimmte Verhaltensweisen, die mit jeder Variation verknüpft sind), ermöglicht Ihnen get_variation() auch den Zugriff auf das Variation-Objekt, das Details zur zugewiesenen Variation und ihrem zugehörigen Experiment enthält. Diese Methode prüft, ob der Benutzer angesprochen wird, findet 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, die automatisch basierend auf dem tracking_interval_millisecond des SDK ausgelöst wird. Standardmäßig ist dieses Intervall auf 1000 Millisekunden (1 Sekunde) eingestellt. Mit der Methode get_variation() können Sie steuern, ob das Tracking durchgeführt wird. Bei track=false werden keine Expositionsereignisse vom SDK gesendet. Dies ist nützlich, wenn Sie keine Daten über das SDK verfolgen möchten und stattdessen auf clientseitiges Tracking, das von der Kameleoon-Engine verwaltet wird, angewiesen sind. Darüber hinaus ist die Einstellung track=false hilfreich bei der Verwendung der Methode get_variations(), 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 das Tracking funktioniert, lesen Sie diesen Artikel.
Hinzufügen von Datenpunkten zum Targeting eines Benutzers oder zum Filtern/Aufschlüsseln von Besuchen in Berichten
Um einen Benutzer anzusprechen, 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 add_data(), 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), nutzen Sie die Methode get_remote_visitor_data(). Diese Methode ruft Daten asynchron von den Servern ab. Es ist wichtig, get_remote_visitor_data() aufzurufen, bevor die Variation abgerufen oder geprüft wird, ob das Feature Flag aktiv ist, da diese Daten möglicherweise erforderlich sind, um einen Benutzer einer bestimmten Variation zuzuweisen. Um mehr über verfügbare Targeting-Bedingungen zu erfahren, lesen Sie den ausführlichen Artikel zum Thema. Darüber hinaus sind die Datenpunkte, die Sie dem Besucherprofil hinzufügen, bei der Analyse Ihrer Experimente 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 Clientseite, sodass Sie Ihre Ergebnisse einfach auf Basis dieser vorab gesammelten Datenpunkte aufschlüsseln können. Die vollständige Liste finden Sie hier. Wenn Sie zusätzliche Datenpunkte über das hinaus erfassen müssen, was automatisch gesammelt wird, können Sie die Custom-Data-Funktion von Kameleoon verwenden. Mit Custom Data können Sie spezifische Informationen erfassen und analysieren, die für Ihre Experimente relevant sind. Vergessen Sie nicht, die Methode flush() aufzurufen, um die gesammelten Daten zur Analyse an die Kameleoon-Server zu senden.
Um die Genauigkeit Ihrer Ergebnisse sicherzustellen, wird empfohlen, Bots mithilfe des Datentyps UserAgent herauszufiltern.
Tracking von Ziel-Konvertierungen
Wenn ein Benutzer eine gewünschte Aktion (z. B. einen Kauf) abschließt, wird dies als Konvertierung erfasst. Um Konvertierungen zu verfolgen, verwenden Sie die Methode track_conversion() und geben Sie die erforderlichen Parameter visitor_code und goal_id an. Die Anfrage zum Tracking der Konvertierung wird mit der nächsten geplanten Tracking-Anfrage gesendet, die das SDK in regelmäßigen Abständen sendet (definiert durch tracking_interval_millisecond). Wenn Sie es vorziehen, die Anfrage sofort zu senden, verwenden Sie die Methode flush() mit dem Parameter instant=true.
Senden von Ereignissen an Analyselösungen
Um Konvertierungen zu verfolgen und Expositionsereignisse an Ihre Kunden-Analyselösung zu senden, müssen Sie zunächst Kameleoon im Hybrid-Modus implementieren. Verwenden Sie dann die Methode get_engine_tracking_code(). Die Methode get_engine_tracking_code() ruft den eindeutigen Tracking-Code ab, der erforderlich ist, um Expositionsereignisse an Ihre Analyselösung zu senden. Die Verwendung dieser Methode ermöglicht es Ihnen, Ereignisse aufzuzeichnen und sie an Ihre gewünschte Analyseplattform zu senden.

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 zwischen den Geräten des Besuchers und den Abgleich seiner Besuchshistorie über Geräte hinweg durch Cross-Device-Experimentation. Fallstudien und detaillierte Informationen dazu, wie Kameleoon Daten geräteübergreifend verarbeitet, finden Sie im Artikel zur Cross-Device-Experimentation.

Synchronisieren von Custom Data zwischen Geräten

Obwohl die Synchronisierung benutzerdefinierter Zuordnungen verwendet wird, um Besucherdaten geräteübergreifend abzugleichen, ist sie nicht immer erforderlich. Im Folgenden werden zwei Szenarien beschrieben, in denen keine Synchronisierung der benutzerdefinierten Zuordnung erforderlich ist: Gleiche Benutzer-ID auf allen Geräten Wenn dieselbe Benutzer-ID konsistent auf allen Geräten verwendet wird, wird die Synchronisierung automatisch ohne Synchronisierung einer benutzerdefinierten Zuordnung gehandhabt. Es genügt, die Methode get_remote_visitor_data() 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 serverübergreifend verfügbar ist, ist die Synchronisierung zwischen Servern (mit get_remote_visitor_data()) ausreichend, ohne dass eine zusätzliche Synchronisierung der benutzerdefinierten Zuordnung erforderlich ist. Kunden, die zusätzliche Daten benötigen, können auf die Methodenbeschreibung get_remote_visitor_data() verweisen, um weitere Anleitungen zu erhalten. Im folgenden Code wird davon ausgegangen, dass derselbe eindeutige Identifikator (in diesem Fall der visitor_code, der auch als userId bezeichnet werden kann) konsistent zwischen den beiden Geräten für einen genauen Datenabruf verwendet wird.
Wenn Sie die gesammelten Daten in Echtzeit synchronisieren möchten, müssen Sie den Scope Visitor für Ihre Custom Data auswählen.
Device A
# In this example, Custom data with index `90` was set to "Visitor" scope in Kameleoon.
VISITOR_SCOPE_CUSTOM_DATA_INDEX = 90

kameleoon_client.add_data(visitor_code, CustomData.new(VISITOR_SCOPE_CUSTOM_DATA_INDEX, 'your data'))
kameleoon_client.flush(visitor_code)
Device B
# Before working with the data, call `get_remote_visitor_data`.
kameleoon_client.get_remote_visitor_data(visitor_code)

# After calling, the SDK on Device B will have access to CustomData of Visitor scope defined on Device A.
# So, "your data" will be available to target and track the visitor.

Verwenden von Custom Data zum Zusammenführen von Sitzungen

Die Cross-Device-Experimentation ermöglicht es, die Historie eines Besuchers über alle seine Geräte hinweg zu kombinieren (Historien-Abgleich). Der Historien-Abgleich ermöglicht es, verschiedene Besuchersitzungen zu einer einzigen zusammenzuführen. Um die Besuchshistorie abzugleichen, verwenden Sie CustomData, um einen eindeutigen Identifikator für den Besucher bereitzustellen. Weitere Informationen finden Sie in der entsprechenden Dokumentation. Nachdem der geräteübergreifende Abgleich aktiviert wurde, ruft der Aufruf von get_remote_visitor_data() mit dem Parameter userId alle bekannten Daten für einen bestimmten Benutzer ab. Sitzungen mit demselben Identifikator wird in einem Experiment immer dieselbe Variation angezeigt. In der Besucheransicht der Ergebnisseiten Ihres Experiments erscheinen diese Sitzungen als ein einzelner Besucher. 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 Variationszuweisung. Diese Einschränkungen sind hier beschrieben. Folgen Sie der Anleitung Aktivieren des geräteübergreifenden Historien-Abgleichs, um Ihre Custom Data auf der Kameleoon-Plattform einzurichten. Anschließend können Sie das SDK wie gewohnt verwenden. Die folgenden Methoden können im Kontext des Zusammenführens von Sitzungen hilfreich sein:
  • get_remote_visitor_data() mit hinzugefügtem UniqueIdentifier(true) – um Daten für alle verknüpften Besucher abzurufen.
  • track_conversion() oder flush() mit hinzugefügten UniqueIdentifier(true)-Daten – um bestimmte Daten für einen Besucher zu verfolgen, der einem anderen Besucher zugeordnet ist.
Da die Custom Data, die Sie als Identifikator verwenden, auf Visitor-Scope gesetzt sein müssen, müssen Sie die geräteübergreifende Synchronisierung von Custom Data verwenden, um den Identifikator mit der Methode get_remote_visitor_data() auf jedem Gerät abzurufen.
Hier ist ein Beispiel für die Verwendung von Custom Data zum Zusammenführen von Sitzungen.
# In this example, `91` represents the Custom Data's index configured as a unique identifier in Kameleoon.
MAPPING_INDEX = 91
FEATURE_KEY = 'ff123'

# 1. Before the visitor is authenticated

# Retrieve the variation for an unauthenticated visitor.
# Assume `anonymous_visitor_code` is the randomly generated ID for that visitor.
anonymous_variation = kameleoon_client.get_variation(anonymous_visitor_code, FEATURE_KEY)

# 2. After the visitor is authenticated

# Assume `user_id` is the visitor code of the authenticated visitor.
kameleoon_client.add_data(anonymous_visitor_code, CustomData.new(MAPPING_INDEX, user_id))
kameleoon_client.flush(anonymous_visitor_code, instant: true)

# Indicate that `user_id` is a unique identifier.
kameleoon_client.add_data(user_id, UniqueIdentifier.new(True))

# 3. After the visitor has been authenticated

# Retrieve the variation for the `user_id`, which will match the anonymous visitor code's variation.
user_variation = kameleoon_client.get_variation(user_id, FEATURE_KEY)
is_same_variation = user_variation.key == anonymous_variation.key # true

# The `user_id` and `anonymous_visitor_code` are now linked and tracked as a single visitor.
kameleoon_client.track_conversion(user_id, 123, 10.0)

# Additionally, the linked visitors will share all fetched remote visitor data.
kameleoon_client.get_remote_visitor_data(user_id)
In diesem Beispiel verfügt die Anwendung über eine Anmeldeseite. Da die Benutzer-ID zum Zeitpunkt der Anmeldung unbekannt ist, wird ein anonymer Besucher-Identifikator verwendet, der mit der Methode get_visitor_code() generiert wurde. Nach der Anmeldung des Benutzers wird der anonyme Besucher mit der Benutzer-ID verknüpft und als eindeutiger Identifikator für den Besucher verwendet.

Verwenden eines benutzerdefinierten Bucketing-Schlüssels

Standardmäßig verwendet Kameleoon eine eindeutige, anonyme Besucher-ID (visitor_code), um Benutzer den Variationen von Feature Flags 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 Ihren eigenen benutzerdefinierten Identifikator für das Bucketing bereitstellen. Dieses Überschreiben stellt sicher, dass die Zuweisungslogik von Kameleoon Ihren angegebenen Schlüssel anstelle des standardmäßigen visitor_code verwendet.

Anwendungsfälle

Die Verwendung eines benutzerdefinierten Bucketing-Schlüssels ist unerlässlich, um Konsistenz und Genauigkeit in Ihren Feature-Flag-Zuweisungen zu gewährleisten, insbesondere in folgenden Situationen:
  • Experimente 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 accountId verwenden. Benutzerdefinierte Bucketing-Schlüssel sind entscheidend für A/B-Tests von Funktionen, die ein gesamtes Team oder Unternehmen betreffen.
Durch die Implementierung eines benutzerdefinierten Bucketing-Schlüssels stellen Sie eine größere Konsistenz und Genauigkeit Ihrer Experimente sicher, was zu zuverlässigeren Ergebnissen und einer besseren Benutzererfahrung führt.

Technische Details

Wenn Sie einen benutzerdefinierten Bucketing-Schlüssel für ein Feature Flag konfigurieren, stellen Sie Kameleoon einen bestimmten Identifikator aus den Daten Ihrer Anwendung zur Verfügung:
bucketing_key = Kameleoon::CustomData.new(index, 'new_visitor_code')

kameleoon_client.add_data(visitor_code, bucketing_key)
  • Bereitstellung des benutzerdefinierten Schlüssels: Sie übergeben Ihren benutzerdefinierten Identifikator an das Kameleoon SDK über die Methode add_data(). 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 ordnungsgemäß funktioniert, muss er auch für das Feature Flag während der Erstellung oder Bearbeitung 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 benutzerdefinierter Bucketing-Schlüssel über die Methode add_data() bereitgestellt wird, verwenden alle Hash-Berechnungen zur Zuweisung von Benutzern zu Variationen diesen newVisitorCode (Ihren benutzerdefinierten Schlüssel) anstelle des standardmäßigen visitor_code. Die Verwendung von 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 Analytics: Es ist wichtig zu beachten, dass, während newVisitorCode (Ihr benutzerdefinierter Schlüssel) für Bucketing-Entscheidungen verwendet wird, alle nachfolgenden Daten (z. B. Tracking-Ereignisse und Konvertierungen) gesendet und dem ursprünglichen visitor_code zugeordnet werden. Diese Trennung stellt sicher, dass Ihre Analytics einzelne Benutzerverläufe und Interaktionen im breiteren Kontext Ihres Experiments genau widerspiegeln, auch wenn das Bucketing auf einer höheren Ebene (z. B. einem Konto) oder über mehrere Geräte/Sitzungen hinweg durchgeführt wird. Ihre ursprünglichen Besucherdaten bleiben für eine umfassende Berichterstattung intakt.

Technische Anforderungen

Um einen benutzerdefinierten Bucketing-Schlüssel effektiv zu verwenden:
  • Der Schlüssel muss ein String sein.
  • Er muss eindeutig für die Entität sein, die Sie bucketen möchten (z. B. wenn Sie eine userId verwenden, sollte die ID jedes Benutzers eindeutig sein).
  • Der Schlüssel muss dem SDK genau zum Zeitpunkt der Auswertung der Feature-Flag-Entscheidung für diesen Benutzer oder diese Anfrage zur Verfügung stehen.

Targeting-Bedingungen

Die Kameleoon-SDKs unterstützen eine Vielzahl vordefinierter Targeting-Bedingungen, die Sie verwenden können, um Benutzer in Ihren Kampagnen anzusprechen. Eine Liste der Bedingungen, die dieses SDK unterstützt, finden Sie unter Besuchshistorie zum Targeting von Benutzern verwenden. Sie können auch Ihre eigenen externen Daten zum Targeting von Benutzern verwenden.

Protokollierung

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

Protokollebenen

Das SDK unterstützt das Konfigurieren der Begrenzung der Protokollierung anhand einer Protokollebene.
require 'kameleoon/logging/kameleoon_logger'

# The `NONE` log level does not allow logging.
Kameleoon::Logging::KameleoonLogger.log_level = Kameleoon::Logging::LogLevel::NONE

# The `ERROR` log level only allows logging issues that may affect the SDK's main behaviour.
Kameleoon::Logging::KameleoonLogger.log_level = Kameleoon::Logging::LogLevel::ERROR

# The `WARNING` log level allows logging issues which may require additional attention.
# It extends the `ERROR` log level.
# The `WARNING` log level is a default log level.
Kameleoon::Logging::KameleoonLogger.log_level = Kameleoon::Logging::LogLevel::WARNING

# The `INFO` log level allows logging general information on the SDK's internal processes.
# It extends the `WARNING` log level.
Kameleoon::Logging::KameleoonLogger.log_level = Kameleoon::Logging::LogLevel::INFO

# The `DEBUG` level logs additional details about the SDK’s internal processes and extends the `INFO` level
# with more granular. diagnostic output.
# This information is not intended for end-user interpretation but can be sent to our support team
# to assist with internal troubleshooting.
Kameleoon::Logging::KameleoonLogger.log_level = Kameleoon::Logging::LogLevel::DEBUG

Benutzerdefinierte Behandlung von Protokollen

Das SDK schreibt seine Protokolle standardmäßig in die Konsolenausgabe. Dieses Verhalten kann überschrieben werden.
Die Begrenzung der Protokollierung anhand einer Protokollebene wird unabhängig von der Logik der Protokollbehandlung durchgeführt.
require 'logger'
require 'kameleoon/logging/logger'

module Kameleoon
  class CustomLogger < Kameleoon::Logging::Logger
    def initialize
      @internal_logger = Logger.new(STDOUT)
    end

    def log(level, message)
      case level
      when Kameleoon::Logging::LogLevel::ERROR
        @internal_logger.error(message)
      when Kameleoon::Logging::LogLevel::WARNING
        @internal_logger.warn(message)
      when Kameleoon::Logging::LogLevel::INFO
        @internal_logger.info(message)
      when Kameleoon::Logging::LogLevel::DEBUG
        @internal_logger.debug(message)
      end
    end
  end
end


# Log level filtering is applied separately from log handling logic.
# The custom logger will only accept logs that meet or exceed the specified log level.
# Ensure the log level is set correctly.
Kameleoon::Logging::KameleoonLogger.log_level = Kameleoon::Logging::LogLevel::DEBUG # Optional, defaults to `Kameleoon::Logging::LogLevel::WARNING`.
Kameleoon::Logging::KameleoonLogger.logger = CustomLogger.new

Referenz

Dies ist eine vollständige Referenzdokumentation des Ruby SDK.

Initialisierung

create()

Der Ausgangspunkt für die Verwendung des SDK ist der Initialisierungsschritt. Alle Interaktionen mit dem SDK erfolgen über ein Objekt namens Kameleoon::KameleoonClient. Daher müssen Sie dieses Objekt erstellen.
kameleoon_config = Kameleoon::KameleoonClientConfig.new('client_id', 'client_secret')
kameleoon_client = Kameleoon::KameleoonClientFactory.create('a8st4f59bj', config: kameleoon_config)

kameleoon_client = Kameleoon::KameleoonClientFactory.create('a8st4f59bj', config_path: '/etc/kameleoon/client-ruby.yaml')
Argumente
NameTypBeschreibung
site_codeStringDies ist ein eindeutiger Schlüssel des Kameleoon-Projekts, das Sie mit dem SDK verwenden. Dieses Feld ist obligatorisch.
configuration_file_pathStringPfad zur SDK-Konfigurationsdatei. Dieses Feld ist optional und standardmäßig auf /etc/kameleoon/client-ruby.yaml gesetzt.
configKameleoon::KameleoonClientConfigSDK-Konfigurationsobjekt, das Sie anstelle einer Konfigurationsdatei übergeben können. Dieses Feld ist optional.
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::SiteCodeIsEmptyAusnahme, die anzeigt, dass der angegebene Site-Code eine leere Zeichenfolge ist, was ungültig ist.

wait_init()

wait_init wartet auf die Initialisierung des Kameleoon-Clients. Mit dieser Methode können Sie überprüfen, ob der Client erfolgreich initialisiert wurde, bevor Sie mit anderen Operationen fortfahren.
kameleoon_client = Kameleoon::KameleoonClientFactory.create('a8st4f59bj')

if kameleoon_client.wait_init
  # The SDK has been initialized; you can fetch a feature flag / experiment configuration here.
end
Rückgabewert
TypBeschreibung
Booleantrue, wenn die Kameleoon-Client-Instanz erfolgreich initialisiert wurde, andernfalls false.

Feature Flags und Variationen

feature_active?()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track)
Zuvor activate_feature genannt – seit SDK-Version 3.0.0 entfernt.
Diese Methode nimmt einen visitor_code und feature_key als obligatorische Argumente entgegen, um zu prüfen, ob das angegebene Feature für einen Benutzer aktiv ist. Wenn ein solcher Benutzer noch nie diesem Feature Flag zugeordnet war, gibt das SDK zufällig einen booleschen Wert zurück (true, wenn der Benutzer dieses Feature haben sollte, oder false, wenn nicht). Wenn ein Benutzer mit einem bestimmten visitor_code bereits bei diesem Feature Flag registriert ist, erkennt es den vorherigen FeatureFlag-Wert. Sie müssen sicherstellen, dass in Ihrem Code eine geeignete Fehlerbehandlung eingerichtet ist, wie im Beispiel rechts gezeigt, um potenzielle Ausnahmen abzufangen. Wenn Sie einen visitor_code angeben, verwendet die Methode feature_active? den visitor_code als eindeutigen Besucher-Identifikator, was für Cross-Device-Experimentation nützlich ist. Wenn Sie einen visitor_code angeben und den Parameter is_unique_identifier auf true setzen, verknüpft das SDK die geflushten Daten mit dem Besucher, der dem angegebenen Identifikator zugeordnet ist.
Der Parameter is_unique_identifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.is_unique_identifier 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 Zugriff auf eine interne ID haben, die über die Funktionen zum Zusammenführen von Sitzungen mit dem anonymen Besucher verbunden ist.
visitor_code = kameleoon_client.get_visitor_code(cookies)

feature_key = "new_checkout"
has_new_checkout = false

begin
	has_new_checkout = kameleoon_client.feature_active?(visitor_code, feature_key)
	# disabling tracking
	has_new_checkout = kameleoon_client.feature_active?(visitor_code, feature_key, track: false)
rescue Kameleoon::Exception::FeatureNotFound
	# The user will not be counted in the experiment, but should see the reference variation.
	has_new_checkout = false
end

if has_new_checkout
	# Implement new checkout code here
end
Die Methode feature_active?() wertet die bereitgestellte Variante aus, nicht den Status des Master-Flags. Wenn Sie Regeln ausschließen, verwendet die Methode den Standardzustand Then, for everyone else serve. Wenn Sie für diesen Standardzustand Off auswählen, gibt die Methode immer false zurück, selbst wenn das Master-Feature-Flag On ist.
Argumente
NameTypBeschreibung
visitor_codeStringEindeutiger Identifikator des Benutzers. Dieses Feld ist obligatorisch.
feature_keyStringSchlüssel des Features, das Sie einem Benutzer zugänglich machen möchten. Dieses Feld ist obligatorisch.
is_unique_identifier (veraltet)BooleanWenn auf true gesetzt, verknüpft das SDK die geflushten Daten mit dem Besucher, der dem angegebenen Identifikator zugeordnet ist.
trackBooleanEin optionaler Parameter zum Aktivieren oder Deaktivieren des Trackings der Feature-Auswertung (standardmäßig true).
Rückgabewert
TypBeschreibung
BooleanWert des Features, das für einen bestimmten visitor_code registriert ist.
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::FeatureNotFoundAusnahme, die anzeigt, dass die angeforderte Feature-ID in der internen Konfiguration des SDK nicht gefunden wurde. Diese Ausnahme ist normalerweise normal und bedeutet, dass das Feature Flag auf Seiten von Kameleoon noch nicht aktiviert wurde (aber der Code, der das Feature implementiert, bereits auf Seiten der Webanwendung bereitgestellt ist).
Kameleoon::Exception::VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist (leer oder länger als 255 Zeichen).

get_variation()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track)
Ruft die einem bestimmten Besucher zugewiesene Variation für ein bestimmtes Feature Flag ab. Diese Methode nimmt einen visitor_code und feature_key als obligatorische Argumente entgegen. Das Argument track ist optional und standardmäßig auf true gesetzt. Sie gibt die zugewiesene Variation für den Besucher zurück. Wenn der Besucher keinen Feature-Flag-Regeln zugeordnet ist, gibt die Methode die Standard-Variation für das angegebene Feature Flag zurück. Stellen Sie sicher, dass in Ihrem Code eine geeignete Fehlerbehandlung implementiert ist, um potenzielle Ausnahmen zu verwalten.
Die Standardvariation bezieht sich auf die Variation, die einem Besucher zugewiesen wird, wenn er keiner der vordefinierten Auslieferungsregeln für ein Feature Flag entspricht. Mit anderen Worten, es ist die Fallback-Variation, die auf alle Benutzer angewendet wird, die nicht durch spezifische Regeln angesprochen werden. Sie wird als Variation im Abschnitt “Then, for everyone else…” in einer Verwaltungsoberfläche dargestellt.
feature_key = "new_checkout"

begin
  variation = kameleoon_client.get_variation(visitor_code, feature_key)
  # disabling tracking
  variation = kameleoon_client.get_variation(visitor_code, feature_key, track: false)
rescue Kameleoon::Exception::FeatureNotFound
  # The error has occurred; the feature flag isn't found in the current configuration.
rescue Kameleoon::Exception::FeatureEnvironmentDisabled
  # The feature flag is disabled for the environment
rescue Kameleoon::Exception::VisitorCodeInvalid
  # The visitor code you passed to the method is invalid and can't be accepted by SDK
end

# Fetch a variable value for the assigned variation
title = variation.variables['title'].value

case variation.key
when 'on'
  # Main variation key is selected for visitorCode
when 'alternative_variation'
  # Alternative variation key
else
  # Default variation key
end
Argumente
NameTypBeschreibungStandard
visitor_code (erforderlich)StringEindeutiger Identifikator des Besuchers.
feature_key (erforderlich)StringSchlüssel des Features, das Sie einem Besucher zugänglich machen möchten.
track (optional)BoolEin optionaler Parameter zum Aktivieren oder Deaktivieren des Trackings der Feature-Auswertung.true
Rückgabewert
TypBeschreibung
VariationEine einem bestimmten Besucher für ein bestimmtes Feature Flag zugewiesene Variation.
Ausgelöste Ausnahmen
TypBeschreibung
VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist. Er ist entweder leer oder länger als 255 Zeichen.
FeatureNotFoundAusnahme, die anzeigt, dass der angeforderte Feature-Key in der internen Konfiguration des SDK nicht gefunden wurde. Dies bedeutet normalerweise, dass das Feature Flag in der Kameleoon-App nicht aktiviert ist (aber der Code, der das Feature implementiert, bereits in der Anwendung bereitgestellt ist).
FeatureEnvironmentDisabledAusnahme, die anzeigt, dass das Feature Flag für die aktuelle Umgebung des Besuchers deaktiviert ist (z. B. production, staging oder development).

get_variations()

  • 📨 Sendet Tracking-Daten an Kameleoon (abhängig vom Parameter track)
Ruft eine Zuordnung 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 mit dem angegebenen Besucher verknüpfte Flag zurück. Sie nimmt visitor_code als obligatorisches Argument entgegen, während only_active und track optional sind.
  • Wenn only_active auf true gesetzt ist, gibt die Methode get_variations() die Variationen der Feature Flags zurück, sofern der Benutzer nicht der off-Variation zugeordnet ist.
  • Der Parameter track steuert, ob die Methode die Variationszuweisungen verfolgt. 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-Schlüsseln als Schlüsseln und ihren entsprechenden Variations 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 geeignete Fehlerbehandlung sollte implementiert sein, um potenzielle Ausnahmen zu verwalten.
Die Standardvariation bezieht sich auf die Variation, die einem Besucher zugewiesen wird, wenn er keiner der vordefinierten Auslieferungsregeln für ein Feature Flag entspricht. Mit anderen Worten, es ist die Fallback-Variation, die auf alle Benutzer angewendet wird, die nicht durch spezifische Regeln angesprochen werden. Sie wird als Variation im Abschnitt “Then, for everyone else…” in einer Verwaltungsoberfläche dargestellt.
begin
  variations = kameleoon_client.get_variations(visitor_code)
  # only active variations
  variations = kameleoon_client.get_variations(visitor_code, only_active: true)
  # disable tracking
  variations = kameleoon_client.get_variations(visitor_code, track: false)
rescue Kameleoon::Exception::VisitorCodeInvalid
  # Handle exception
end
Argumente
NameTypBeschreibungStandard
visitor_code (erforderlich)StringEindeutiger Identifikator des Besuchers.
only_active (optional)BoolEin optionaler Parameter, der angibt, ob Variationen für aktive (true) oder alle (false) Feature Flags zurückgegeben werden sollen.false
track (optional)BoolEin optionaler Parameter zum Aktivieren oder Deaktivieren des Trackings der Feature-Auswertung.true
Rückgabewert
TypBeschreibung
Hash<String, Variation>Map, die die zugewiesenen Variation-Objekte der Feature Flags enthält und die Schlüssel der entsprechenden Features verwendet.
Ausgelöste Ausnahmen
TypBeschreibung
VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist. Er ist entweder leer oder länger als 255 Zeichen.

set_forced_variation()

Mit dieser Methode können Sie einem Benutzer programmgesteuert eine bestimmte Variation zuweisen und so den Standardauswertungsprozess umgehen. Dies ist besonders wertvoll für kontrollierte Experimente, bei denen die übliche Auswertungslogik nicht erforderlich ist oder übersprungen werden muss. Es kann auch in Szenarien wie Debugging oder benutzerdefinierten Tests hilfreich sein. Wenn eine erzwungene Variation gesetzt wird, überschreibt sie die Echtzeit-Auswertungslogik von Kameleoon. Prozesse wie Segmentierung, Targeting-Bedingungen und algorithmische Berechnungen werden übersprungen. Um Segmentierung und Targeting-Bedingungen während eines Experiments beizubehalten, setzen Sie stattdessen force_targeting=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 ausgewertete Variation. Sie wird in Analytics verfolgt und im Benutzerkontext wie jede standardmäßig ausgewertete Variation gespeichert, was die Konsistenz in der Berichterstattung gewährleistet. Die Methode kann unter bestimmten Bedingungen Ausnahmen auslösen (z. B. ungültige Parameter, Benutzerkontext oder interne Probleme). Eine geeignete Ausnahmebehandlung ist unerlässlich, um sicherzustellen, dass Ihre Anwendung stabil und widerstandsfähig bleibt.
Es ist wichtig, erzwungene Variationen von simulierten Variationen zu unterscheiden:
  • Erzwungene Variationen: Sind spezifisch für ein einzelnes Experiment.
  • Simulierte Variationen: Beeinflussen das gesamte Ergebnis des Feature Flags.
experiment_id = 9516
begin
  # Forcing the variation "on" for the experiment 9516 for the visitor
  kameleoon_client.set_forced_variation(visitor_code, experiment_id, 'on')

  # Forcing the variation "on" while preserving segmentation and targeting conditions during the experiment
  kameleoon_client.set_forced_variation(visitor_code, experiment_id, 'on', force_targeting: false)

  # Resetting the forced variation for the experiment 9516 for the visitor
  kameleoon_client.set_forced_variation(visitor_code, experiment_id, nil)
rescue Kameleoon::Exception::KameleoonError => ex
  # Handling the exception
end
Argumente
NameTypBeschreibungStandard
visitor_code (erforderlich)StringEindeutiger Identifikator des Besuchers.
experiment_id (erforderlich)IntegerExperiment-Id, die während des Auswertungsprozesses gezielt und ausgewählt wird.
variation_key (erforderlich)`StringNilClass`Variation Key, der einer Variation entspricht, die als Rückgabewert für das Experiment erzwungen werden soll. Wenn der Wert nil ist, wird die erzwungene Variation zurückgesetzt.
force_targeting (optional)BoolGibt an, ob das Targeting für das Experiment erzwungen und übersprungen werden soll (true) oder wie im Standardauswertungsprozess angewendet werden soll (false).true
Ausgelöste Ausnahmen
TypBeschreibung
VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist. Er ist entweder leer oder länger als 255 Zeichen.
FeatureExperimentNotFoundAusnahme, die anzeigt, dass die angeforderte Experiment-ID in der internen Konfiguration des SDK nicht gefunden wurde. Dies ist normalerweise normal und bedeutet, dass das der Regel entsprechende Experiment auf Seiten von Kameleoon noch nicht aktiviert wurde.
FeatureVariationNotFoundAusnahme, die anzeigt, dass der angeforderte Variation Key (ID) in der internen Konfiguration des SDK nicht gefunden wurde. Dies ist normalerweise normal und bedeutet, dass das der Variation entsprechende Experiment auf Seiten von Kameleoon noch nicht aktiviert wurde.
In den meisten Fällen muss nur der grundlegende Fehler KameleoonError behandelt werden, wie im Beispiel gezeigt. Wenn jedoch verschiedene Fehlertypen eine Reaktion erfordern, behandeln Sie jeden basierend auf spezifischen Anforderungen separat. Zusätzlich können für erhöhte Zuverlässigkeit allgemeine Sprachfehler durch Einbeziehung von StandardError behandelt werden.

evaluate_audiences()

  • 📨 Sendet Tracking-Daten an Kameleoon
Diese Methode wertet Besucher anhand aller verfügbaren Audiences-Explorer-Segmente aus und verfolgt diejenigen, die übereinstimmen. evaluate_audiences() sollte nach dem Setzen oder Aktualisieren aller relevanten Besucherdaten und kurz vor dem Abrufen einer Feature-Variation oder dem Prüfen eines Feature Flags aufgerufen werden. Dieser Ansatz stellt sicher, dass der Besucher anhand der aktuellsten verfügbaren Daten ausgewertet wird, was eine genaue Zuordnung zur Zielgruppe basierend auf allen Kriterien ermöglicht. Nach dem Aufruf dieser Methode können Sie eine detaillierte Analyse der Segmentleistung im Audiences Explorer durchführen.
begin
  kameleoon_client.evaluate_audiences(visitor_code)
rescue Kameleoon::Exception::KameleoonError => ex
  # Handling the exception
end
Argumente
NameTypBeschreibung
visitor_code (erforderlich)StringEindeutiger Identifikator des Besuchers.
Ausgelöste Ausnahmen
TypBeschreibung
VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist. Er ist entweder leer oder länger als 255 Zeichen.
In den meisten Fällen muss nur der grundlegende Fehler KameleoonError behandelt werden, wie im Beispiel gezeigt. Wenn jedoch verschiedene Fehlertypen eine Reaktion erfordern, behandeln Sie jeden basierend auf spezifischen Anforderungen separat. Zusätzlich können für erhöhte Zuverlässigkeit allgemeine Sprachfehler durch Einbeziehung von StandardError behandelt werden.

get_data_file()

Um alle Feature Flags auszuwerten, verwenden Sie get_variations(). Diese Methode ist effizienter als das Aufrufen von DataFile und das Iterieren durch Flags mit get_variation().
Gibt die aktuelle SDK-Konfiguration als DataFile-Objekt zurück.
begin
  datafile = kameleoon_client.get_data_file
rescue StandardError => e
  # Recommended (but optional) safeguard for unexpected exceptions from third-party libraries
end
Rückgabewert
TypBeschreibung
DataFileDas DataFile, das die SDK-Konfiguration enthält.

Besucherdaten

get_visitor_code()

Zuvor obtain_visitor_code genannt – seit SDK-Version 3.0.0 entfernt.
Rufen Sie die Hilfsmethode get_visitor_code auf, um den Kameleoon-visitor_code für den aktuellen Besucher zu erhalten. Diese Methode ist wichtig, wenn Sie Kameleoon in einer gemischten Frontend- und Backend-Umgebung verwenden, in der die Genauigkeit der Benutzeridentifikation gewährleistet sein muss. Die Implementierungslogik ist wie folgt:
  1. Suchen Sie nach einem kameleoonVisitorCode-Cookie oder Query-Parameter, der mit der aktuellen HTTP-Anfrage verknüpft ist. Wenn gefunden, verwenden Sie diesen als Besucher-Identifikator.
  2. Wenn kein Cookie oder Parameter gefunden wird, prüfen Sie das Argument default_visitor_code. Wenn gefunden, verwenden Sie dieses als Identifikator. default_visitor_code_ ermöglicht es unseren Kunden, ihre eigenen Identifikatoren als Visitor Codes zu verwenden, falls sie dies wünschen, was den zusätzlichen Vorteil haben kann, Kameleoon-Besucher mit ihren eigenen Benutzern abzugleichen, ohne dass zusätzliche Lookups in einer Zuordnungstabelle erforderlich sind.
  3. Wenn weder Cookie, Parameter noch Argument gefunden wird, generieren Sie zufällig einen eindeutigen Identifikator.
In allen Fällen wird das serverseitige kameleoonVisitorCode-Cookie (über den HTTP-Header) mit dem Wert gesetzt. Bei späteren Besuchen ist der von Ihnen gesetzte Identifikator der von der Methode zurückgegebene Wert. Weitere Informationen finden Sie in diesem Artikel.
Wenn Sie Ihren eigenen visitor_code bereitstellen, müssen Sie dessen Eindeutigkeit garantieren – das SDK kann sie nicht prüfen. Beachten Sie außerdem, dass die Länge des visitor_code auf 255 Zeichen begrenzt ist. Überschüssige Zeichen lösen eine Ausnahme aus.
Mit der Methode get_visitor_code() können Sie simulierte Variationen für einen Besucher festlegen. Wenn Cookies (aus einer request oder einem document) den Schlüssel kameleoonSimulationFFData enthalten, wird der Standardauswertungsprozess 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): Bei Verwendung von Kameleoon Web Experimentation oder dem SDK im Hybrid-Modus wird das Cookie automatisch erstellt, wenn die Anzeige einer Variante über das Simulation Panel simuliert wird.
  • Manuell: Setzen Sie das Cookie kameleoonSimulationFFData manuell.
Es ist wichtig, simulierte Variationen von erzwungenen Variationen zu unterscheiden:
  • Simulierte Variationen: Beeinflussen das gesamte Ergebnis des Feature Flags.
  • Erzwungene Variationen: Sind spezifisch für ein einzelnes Experiment.
⚙️ Manuelle EinrichtungBitte stellen Sie sicher, dass das Cookie kameleoonSimulationFFData diesem Format folgt:
  • kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: Simuliert die Variation mit varId des Experiments expId für den angegebenen featureKey.
  • kameleoonSimulationFFData={"featureKey":{"expId":0}}: Simuliert die Standardvariation (definiert im Abschnitt Then, for everyone else in Production, serve) für den angegebenen featureKey.
⚠️ Um die ordnungsgemäße Funktionalität sicherzustellen, muss der Cookie-Wert als URI-Komponente mit einer Methode wie encodeURIComponent codiert werden.
visitor_code = kameleoon_client.get_visitor_code(cookies)

visitor_code = kameleoon_client.get_visitor_code(cookies, default_visitor_code)
Argumente
NameTypBeschreibung
cookiesHashCookies der aktuellen HTTP-Anfrage sollten als Hash-Objekt übergeben werden ({:cookie_name => cookie_value}). Wenn Sie Rails verwenden, können Sie die Variable cookies übergeben. Dieses Feld ist obligatorisch.
default_visitor_codeStringDieser Parameter wird als visitor_code verwendet, wenn in der Anfrage kein vorhandenes kameleoonVisitorCode-Cookie gefunden wird. Dieses Feld ist optional, und standardmäßig wird ein zufälliger visitor_code generiert.
Rückgabewert
TypBeschreibung
StringEin visitor_code, der diesem bestimmten Benutzer zugeordnet wird und mit den meisten SDK-Methoden verwendet werden sollte.

add_data()

Die Methode add_data() fügt dem Speicher Targeting-Daten hinzu, sodass andere Methoden die Daten verwenden können, um zu entscheiden, ob der aktuelle Besucher angesprochen werden soll oder nicht. Die Methode add_data() gibt keinen Wert zurück und interagiert nicht selbst mit den Kameleoon-Backend-Servern. Stattdessen werden alle deklarierten Daten für die zukünftige Übertragung mit der Methode flush() gespeichert. Dieser Ansatz reduziert die Anzahl der Serveraufrufe, da die Daten typischerweise zu einem einzigen Serveraufruf zusammengefasst werden, der durch flush() ausgelöst wird. Die Methode track_conversion() sendet ebenfalls alle zuvor zugeordneten Daten aus, genau wie flush(). Dasselbe gilt für die Methoden get_variation() und get_variations(), wenn eine Experimentregel 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 pro Index eine Instanz zugeordneter CustomData haben.
require "kameleoon"
require "kameleoon/data"

# Add a single data item (tracked by default)
kameleoon_client.add_data(visitor_code, Kameleoon::Browser.new(Kameleoon::BrowserType::CHROME))

# Add multiple data items (tracked by default)
kameleoon_client.add_data(
  visitor_code,
  Kameleoon::PageView.new("https://url.com", "title", [3]),
  Kameleoon::UserAgent("UserAgent")
)

# Add multiple data items stored locally for targeting only (not sent to the Kameleoon Data API)
kameleoon_client.add_data(
  visitor_code,
  Kameleoon::Data::PageView.new("https://url.com", "title", [3]),
  Kameleoon::Data::UserAgent.new("UserAgent"),
  track: false
)
Argumente
NameTypBeschreibungStandardwert
visitor_code (erforderlich)StringEindeutiger Identifikator des Besuchers.
data (erforderlich)*DataSammlung von Kameleoon-Datentypen.
track (optional)BoolGibt an, ob die hinzugefügten Daten für das Tracking geeignet sind. Wenn auf false gesetzt, werden die Daten lokal gespeichert und nur für die Targeting-Auswertung verwendet; sie werden nicht an die Kameleoon Data API gesendet.true
Ausnahmen
TypBeschreibung
VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist. Er ist entweder leer oder länger als 255 Zeichen.

flush()

  • 📨 Sendet Tracking-Daten an Kameleoon
flush() nimmt die mit dem Besucher verknüpften Kameleoon-Daten sowie alle Daten, die zuvor mit der Methode add_data hinzugefügt wurden und beim Aufrufen einer dieser Methoden noch nicht gesendet wurden, und sendet eine Tracking-Anfrage. flush() ist nicht-blockierend, da der Serveraufruf asynchron erfolgt. flush() ermöglicht es Ihnen zu steuern, wann die mit einem bestimmten visitor_code verknüpften Daten an unsere Server gesendet werden. Wenn Sie beispielsweise add_data() ein Dutzend Mal aufrufen, wäre es ineffizient, die Daten bei jedem Aufruf von add_data() an den Server zu senden. Sie müssen daher flush() nur einmal am Ende aufrufen. Wenn Sie einen visitor_code angeben, verwendet die Methode flush() ihn als eindeutigen Besucher-Identifikator, was für Cross-Device-Experimentation nützlich ist. Wenn Sie einen visitor_code angeben und den Parameter is_unique_identifier auf true setzen, verknüpft das SDK die geflushten Daten mit dem Besucher, der dem angegebenen Identifikator zugeordnet ist.
Der Parameter is_unique_identifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.is_unique_identifier 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 Zugriff auf eine interne ID haben, die über die Funktionen zum Zusammenführen von Sitzungen mit dem anonymen Besucher verbunden ist.
require "kameleoon"
require "kameleoon/data"

visitor_code = kameleoon_client.get_visitor_code(cookies)

kameleoon_client.add_data(visitor_code, Kameleoon::Browser.new(Kameleoon::BrowserType::CHROME))
kameleoon_client.add_data(
  visitor_code,
  Kameleoon::PageView.new("https://url.com", "title", [3]),
  Kameleoon::Interest.new(0)
)
kameleoon_client.add_data(visitor_code, Kameleoon::Conversion.new(32, 10, false))

kameleoon_client.flush(visitor_code) # Interval tracking (most performant way for tracking)

kameleoon_client.flush(visitor_code, instant: true) # Instant tracking

# if you operate with unique ID
kameleoon_client.add_data(Kameleoon::UniqueIdentifier.new(true))
kameleoon_client.flush(visitor_code)
Argumente
NameTypBeschreibung
visitor_codeStringEindeutiger Identifikator des Benutzers. Dieses Feld ist obligatorisch.
is_unique_identifierBooleanWenn true, verknüpft das SDK die geflushten Daten mit dem Besucher, der dem angegebenen Identifikator zugeordnet ist.
instantBooleanBoolescher Flag, der angibt, ob die Daten sofort gesendet werden sollen (true) oder gemäß dem geplanten Tracking-Intervall (false). Dieses Feld ist optional.

get_remote_data()

Zuvor benannt: retrieve_data_from_remote_source – seit SDK-Version 3.0.0 entfernt.
Die Methode get_remote_data() ermöglicht es Ihnen, Daten (gemäß einem als Argument übergebenen key) für einen angegebenen siteCode (in Kameleoon::KameleoonClientFactory.create() angegeben) abzurufen, die auf einem Kameleoon-Remote-Server gespeichert sind. Üblicherweise werden Daten mithilfe unserer Data API auf unseren Remote-Servern gespeichert. Diese Methode bietet zusammen mit der Verfügbarkeit unserer hoch skalierbaren Server für diesen Zweck eine bequeme Möglichkeit, große Datenmengen zu speichern, die für jeden Ihrer Besucher/Benutzer abgerufen werden können.
kameleoon_client.get_remote_data('test') # default timeout
kameleoon_client.get_remote_data('test', 1000) # 1000 milliseconds timeout
begin
	kameleoon_client.get_remote_data('test')
rescue => e
	#catch error
end
Argumente
NameTypBeschreibung
keyStringDer Schlüssel, mit dem die abzurufenden Daten verknüpft sind. Dieses Feld ist obligatorisch.
timeoutIntegerTimeout (in Millisekunden). Dieser Parameter gibt die maximale Zeit an, die die Methode blockieren kann, um auf ein Ergebnis zu warten. Dieses Feld ist optional; wenn nicht angegeben, wird der Wert default_timeout aus der Konfigurationsdatei verwendet oder 2000 Millisekunden, wenn er in der Datei nicht angegeben ist.
Rückgabewert
TypBeschreibung
HashHash-Objekt, das mit dem Abrufen von Daten für einen bestimmten key verknüpft ist.
Ausgelöste Ausnahmen
TypBeschreibung
ErrorFehler, der anzeigt, dass die Anfrage abgelaufen ist oder die abgerufenen Daten nicht mit der Methode JSON.parse() analysiert werden können.

get_remote_visitor_data()

get_remote_visitor_data() ist eine asynchrone Methode zum Abrufen von Kameleoon-Besuchsdaten für den visitor_code aus der Kameleoon Data API. Die Methode speichert Daten, die andere Methoden bei Targeting-Entscheidungen verwenden können. Mit dieser Methode abgerufene Daten spielen eine wichtige Rolle, wenn Sie:
  • von anderen Geräten gesammelte Daten verwenden möchten.
  • auf die Historie eines Benutzers zugreifen möchten, z. B. zuvor besuchte Seiten während früherer Besuche.
  • Daten verwenden möchten, die nur auf der Clientseite zugänglich sind, wie Datalayer-Variablen und Ziele, die nur im Frontend konvertieren.
Lesen Sie diesen Artikel für ein besseres Verständnis möglicher Anwendungsfälle.
Standardmäßig ruft get_remote_visitor_data() automatisch die zuletzt gespeicherten Custom Data mit scope=Visitor ab und fügt sie dem Besucher hinzu, ohne dass die Methode add_data() aufgerufen werden muss. Dies ist besonders nützlich für die Synchronisierung von Custom Data zwischen mehreren Geräten.
Der Parameter is_unique_identifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.is_unique_identifier 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 Zugriff auf eine interne ID haben, die über die Funktionen zum Zusammenführen von Sitzungen mit dem anonymen Besucher verbunden ist.
visitor_code = 'visitorCode'

# Visitor data will be fetched and automatically added for `visitor_code`
data_array = kameleoon_client.get_remote_visitor_data(visitor_code)  # default timeout
data_array = kameleoon_client.get_remote_visitor_data(visitor_code, 1000)  # 1 second timeout

# If you only want to fetch data and add it yourself manually, set `add_data` to `false`
data_array = kameleoon_client.get_remote_visitor_data(visitor_code, add_data: false)  # default timeout
data_array = kameleoon_client.get_remote_visitor_data(visitor_code, 1000, add_data: false)  # 1 second timeout

# If you want to fetch custom list of data types
filter = RemoteVisitorDataFilter(25, customData: false, conversions: true, experiments: true)
data_array = kameleoon_client.get_remote_visitor_data(visitor_code, filter: filter)

# If you want to the SDK to link the extracted data with the visitor associated with the specified identifier
kameleoon_client.add_data(Kameleoon::UniqueIdentifier.new(true))
data_array = kameleoon_client.get_remote_visitor_data(visitor_code)
Argumente
NameTypBeschreibung
visitor_codeStringDer Visitor Code, für den Sie die zugewiesenen Daten abrufen möchten. Dieses Feld ist obligatorisch.
timeoutIntegerTimeout (in Millisekunden). Dieser Parameter gibt die maximale Zeit an, die die Methode blockieren kann, um auf ein Ergebnis zu warten. Dieses Feld ist optional; wenn nicht angegeben, wird der Wert default_timeout aus der Konfigurationsdatei verwendet oder 2000 Millisekunden, wenn er in der Datei nicht angegeben ist.
add_dataBooleanEin boolescher Wert, der angibt, ob die Methode die abgerufenen Daten automatisch für einen Besucher hinzufügen soll. Wenn nicht angegeben, ist der Standardwert true. Dieses Feld ist optional.
filterKameleoon::Types::RemoteVisitorDataFilterFilter, der angibt, welche Daten aus den Besuchen abgerufen werden sollen. Standardmäßig werden nur CustomData aus dem aktuellen und dem letzten vorherigen Besuch abgerufen (RemoteVisitorDataFilter.new(previousVisitAmount: 1, currentVisit: true, customData: true) oder RemoteVisitorDataFilter.new). Andere Filterparameter sind auf false gesetzt. Dieses Feld ist optional.
is_unique_identifier (veraltet)BooleanEin optionaler Parameter, der angibt, ob der visitorCode ein eindeutiger Identifikator ist. Wenn nicht angegeben, ist der Standardwert false. Dieses Feld ist optional.
Rückgabewert
TypBeschreibung
ArrayEin Array von Daten, die dem angegebenen Besucher zugeordnet sind.
Verwenden von Parametern in get_remote_visitor_data()
Die Methode get_remote_visitor_data() bietet Flexibilität, indem sie es Ihnen ermöglicht, verschiedene Parameter beim Abrufen von Besucherdaten zu definieren. Egal, ob Sie auf Basis von Zielen, Experimenten oder Variationen targeten, 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 get_remote_visitor_data() angeben, um Ihr Targeting zu verfeinern. Wenn Sie beispielsweise nur Benutzer ansprechen möchten, die in ihren letzten fünf Besuchen das Ziel konvertiert haben, können Sie den Parameter previous_visit_amount auf 5 und conversions auf true setzen. Die in diesem Beispiel gezeigte Flexibilität ist nicht auf Zieldaten beschränkt. Sie können Parameter innerhalb der Methode get_remote_visitor_data() verwenden, um Daten zu einer Vielzahl von Besucherverhalten abzurufen.
Hier ist die Liste der verfügbaren Kameleoon::Types::RemoteVisitorDataFilter-Optionen:
NameTypBeschreibungStandard
previous_visit_amount (optional)IntegerAnzahl der vorherigen Besuche, aus denen Daten abgerufen werden sollen. Zahl zwischen 1 und 25.1
current_visit (optional)BooleanWenn true, werden die Daten des aktuellen Besuchs abgerufen.true
custom_data (optional)BooleanWenn true, werden Custom Data abgerufen.true
page_views (optional)BooleanWenn true, werden Seitendaten abgerufen.false
geolocation (optional)BooleanWenn true, werden Geolokalisierungsdaten abgerufen.false
device (optional)BooleanWenn true, werden Gerätedaten abgerufen.false
browser (optional)BooleanWenn true, werden Browserdaten abgerufen.false
operating_system (optional)BooleanWenn true, werden Betriebssystemdaten abgerufen.false
conversions (optional)BooleanWenn true, werden Konvertierungsdaten abgerufen.false
experiments (optional)BooleanWenn true, werden Experimentdaten abgerufen.false
kcs (optional)BooleanWenn true, wird der Kameleoon Conversion Score (KCS) abgerufen. Erfordert das AI Predictive Targeting Add-on.false
visitor_code (optional)BooleanWenn true, ruft Kameleoon den visitorCode aus dem letzten Besuch ab und verwendet ihn für den aktuellen Besuch. Dies ist notwendig, wenn Sie sicherstellen möchten, dass der durch seinen visitorCode identifizierte Besucher bei Cross-Device-Experimentation über alle Besuche hinweg immer dieselbe Variation erhält.true
personalization (optional)BooleanWenn true, werden Personalisierungsdaten abgerufen. Dies ist für die Personalisierungsbedingung erforderlich.false
cbs (optional)BooleanWenn true, werden Contextual-Bandit-Score-Daten abgerufen.false

get_visitor_warehouse_audience()

Ruft alle Audience-Daten ab, die dem Besucher in Ihrem Data Warehouse zugeordnet sind, unter Verwendung des angegebenen visitor_code und warehouse_key. Der warehouse_key ist typischerweise Ihre interne Benutzer-ID. Der Parameter custom_data_index entspricht dem Kameleoon-Custom-Data, das Kameleoon verwendet, um Ihre Besucher anzusprechen. Weitere Details finden Sie in der Warehouse-Targeting-Dokumentation. Die Methode gibt ein CustomData-Objekt zurück, das bestätigt, dass die Daten dem Besucher hinzugefügt wurden und für Targeting-Zwecke verfügbar sind.
begin
	warehouse_audience_data = kameleoon_client.get_visitor_warehouse_audience(visitor_code, custom_data_index)  # default timeout
	warehouse_audience_data = kameleoon_client.get_visitor_warehouse_audience(visitor_code, custom_data_index, 1000)  # 1 second timeout

	warehouse_audience_data = kameleoon_client.get_visitor_warehouse_audience(visitor_code, custom_data_index, warehouse_key: warehouse_key)  # default timeout
	warehouse_audience_data = kameleoon_client.get_visitor_warehouse_audience(visitor_code, custom_data_index, 1000, warehouse_key: warehouse_key)  # 1 second timeout

	# Your custom code
rescue => e
	# Handle exception
end
Argumente
NameTypBeschreibung
visitor_codeStringEine eindeutige Besucheridentifikationszeichenfolge, darf 255 Zeichen nicht überschreiten.
custom_data_indexIntegerEine Ganzzahl, die den Index des Custom Data darstellt, das Sie zum Targeting Ihrer BigQuery-Audiences verwenden möchten.
warehouse_keyStringEin eindeutiger Schlüssel zur Identifizierung der Warehouse-Daten (normalerweise Ihre interne Benutzer-ID). Dieses Feld ist optional.
timeoutIntegerTimeout (in Millisekunden). Dieser Parameter gibt die maximale Zeit an, die auf ein Ergebnis gewartet werden soll. Dieses Feld ist optional. Wenn nicht angegeben, ist der Standardwert 10000 Millisekunden.
Rückgabewert
TypBeschreibung
Kameleoon::CustomDataEine CustomData-Instanz, die bestätigt, dass die Daten dem Besucher hinzugefügt wurden.
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist (er ist entweder leer oder länger als 255 Zeichen).
StandardErrorAusnahme, die anzeigt, dass die Anfrage abgelaufen ist oder ein anderer Fehlergrund vorliegt.
Sie müssen diese Methode verwenden, um anzugeben, ob der Besucher seine rechtliche Einwilligung zur Verwendung personenbezogener Daten gegeben hat. Wenn Sie den Parameter consent auf false setzen, werden die Arten von Daten begrenzt, die Sie in Tracking-Anfragen einbeziehen können. Diese Methode hilft Ihnen, gesetzliche und regulatorische Anforderungen einzuhalten und gleichzeitig die Besucherdaten verantwortungsvoll zu verwalten. Weitere Informationen zu personenbezogenen Daten finden Sie in der Richtlinie zur Einwilligungsverwaltung.
visitor_code = kameleoon_client.get_visitor_code(cookies)
kameleoon_client.set_legal_consent(visitor_code, true, cookies)
Argumente
NameTypBeschreibung
visitor_codeStringDer eindeutige Identifikator des Benutzers. Dieses Feld ist erforderlich.
consentBoolEin boolescher Wert, der den Status der rechtlichen Einwilligung darstellt. true zeigt an, dass der Besucher seine rechtliche Einwilligung gegeben hat; false zeigt an, dass der Besucher nie eine Einwilligung erteilt oder diese widerrufen hat. Dieses Feld ist erforderlich.
cookiesHashDie HTTP-Antwort, bei der Werte in den Cookies basierend auf dem Status der rechtlichen Einwilligung angepasst werden. Dieses Feld ist optional.
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist. Er ist entweder leer oder länger als 255 Zeichen.
Verhalten bei Widerruf der Einwilligung
Wenn Sie set_legal_consent() mit consent=false aufrufen, löscht das SDK das kameleoonVisitorCode-Cookie nicht. Stattdessen verlängert es das Ablaufdatum des Cookies nicht mehr, sodass das Cookie bis zu seinem natürlichen Ablauf bestehen bleibt. Wenn Ihre Compliance-Anforderungen die sofortige Entfernung der Cookie-Datei bei einem Opt-out verlangen, müssen Sie sie manuell mit den nativen Cookie-Verwaltungsmethoden Ihres Frameworks löschen. Das SDK entfernt die Datei nicht automatisch.

Ziele und Drittanbieter-Analytics

track_conversion()

  • 📨 Sendet Tracking-Daten an Kameleoon
Verwenden Sie diese Methode, um eine Konvertierung für ein bestimmtes Ziel und Benutzer zu verfolgen. Diese Methode erfordert visitor_code und goal_id. Darüber hinaus akzeptiert diese Methode auch optionale Argumente revenue, negative und metadata. Der visitor_code ist normalerweise identisch mit dem, der beim Auslösen des Experiments verwendet wurde. Die Methode track_conversion() 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.isUniqueIdentifier kann auch in anderen Sonderfällen nützlich sein, z. B. wenn Sie nicht auf den anonymen visitor_code zugreifen können, der dem Besucher ursprünglich zugewiesen wurde, aber Zugriff auf eine interne ID haben, die über die Funktionen zum Zusammenführen von Sitzungen mit dem anonymen Besucher verbunden ist.
require "kameleoon"
require "kameleoon/data/page_view"
require "kameleoon/data/browser"
require "kameleoon/data/conversion"

visitor_code = kameleoon_client.get_visitor_code(cookies)
goal_id = 83023

kameleoon_client.add_data(visitor_code, Kameleoon::Conversion.new(32, 10, false))
kameleoon_client.track_conversion(visitor_code, goal_id)

# Add metadata
cd = Kameleoon::CustomData.new(1, "metadata");
kameleoon_client.track_conversion(visitorCode, goalId, metadata: [cd])
Argumente
NameTypBeschreibungStandard
visitor_code (erforderlich)StringEindeutiger Identifikator des Besuchers.
goal_id (erforderlich)IntegerID des Ziels.
revenue (optional)FloatUmsatz der Konvertierung.0
negative (optional)BoolDefiniert, ob der Umsatz positiv oder negativ ist.false
metadata (optional)Array<CustomData>Ermöglicht es Ihnen, spezifische Werte für Custom Data festzulegen, die als Metadaten für das Ziel in der Kameleoon-App definiert wurden. Beispiel: [CustomData{id: 5, value: "Payment Type"}, CustomData{id: 6, value: "Delivery Method"}]. In diesem Beispiel sind 5 und 9 die Indizes des Custom Data (5 = “Payment Type”, 9 = “Delivery Method”).nil
isUniqueIdentifier (veraltet)BoolEin optionaler Parameter, der angibt, ob der visitor_code ein eindeutiger Identifikator ist.false
Metadatenwerte sind über Rohdaten-Exporte und die Ergebnisseite zugänglich.Wenn der Parameter metadata angegeben ist, verwendet Kameleoon diese angegebenen Werte für die aktuelle Konvertierung anstelle der zuvor mit der Methode add_data() gesammelten Werte. Wird der Parameter weggelassen, verwendet Kameleoon die zuletzt verfolgten Werte für diese CustomData vor der Konvertierung und innerhalb desselben Besuchs.Kameleoon berücksichtigt nur die Metadatenwerte, die explizit als Parameter an die Methode track_conversion() übergeben werden.Im folgenden Beispiel ordnet Kameleoon die Konvertierung nur dem Custom-Data-Wert zu, der explizit als Parameter angegeben wurde (hier: Index 5 mit dem Wert ‘Amex Credit Card’).
kameleoon_client.add_data(visitor_code, Kameleoon::CustomData.new(5, "Credit Card"), Kameleoon::CustomData.new(9, "Express Delivery"))
kameleoon_client.track_conversion(visitor_code, 10, metadata: [Kameleoon::CustomData.new(5, "Amex Credit Card")])
Ausnahmen
TypBeschreibung
VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist. Er ist entweder leer oder länger als 255 Zeichen.

get_engine_tracking_code()

Kameleoon integriert sich mit mehreren Analyselösungen, darunter Mixpanel, Google Analytics 4 und Segment. Um serverseitige Experimente korrekt zu verfolgen, rufen Sie die Methode get_engine_tracking_code() auf, nachdem der Besucher ein Experiment ausgelöst hat. Das SDK gibt JavaScript-Queue-Befehle für die Experimente zurück, die der Besucher in den letzten fünf Sekunden ausgelöst hat. Wenn Sie diesen Code in die Seite einfügen, verarbeitet Engine.js die Befehle und sendet die Expositionsereignisse über die aktive Analytics-Integration. Weitere Informationen zur Implementierung dieser Methode finden Sie unter hybrid experimentation.
engine_tracking_code = kameleoon_client.get_engine_tracking_code(visitor_code)
  • Um diese Funktion zu nutzen, implementieren Sie sowohl das Ruby 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 Experimente nur in Kameleoon verfolgen möchten und keine Expositionsereignisse an Drittanbieter-Analytics-Tools senden müssen, verwenden Sie das JavaScript / TypeScript SDK. Diese Option eignet sich gut für serverless edge compute platforms. Das JavaScript / TypeScript SDK verfolgt Variationen automatisch, wenn Sie getVisitorCode aufrufen, solange Sie die entsprechenden Experimentzuweisungen zu window.kameleoonQueue hinzufügen.
  • Sie können den zurückgegebenen Tracking-Code direkt in ein HTML-<script>-Tag einfügen.
<html lang="en">
  <body>
    <script>
      const engineTrackingCode = `
        window.kameleoonQueue = window.kameleoonQueue || [];
        window.kameleoonQueue.push(['Experiments.assignVariation', 123456, 7890, true]);
        window.kameleoonQueue.push(['Experiments.trigger', 123456, true]);
        window.kameleoonQueue.push(['Experiments.assignVariation', 234567, 8901, true]);
        window.kameleoonQueue.push(['Experiments.trigger', 234567, true]);
      `;
      const script = document.createElement('script');

      script.textContent = engineTrackingCode;
      document.body.appendChild(script);
    </script>

  </body>
</html>
In diesem Beispiel sind 123456 und 234567 Experiment-IDs und 7890 und 8901 Variations-IDs. In Ihrer Implementierung generiert das SDK diese Werte im zurückgegebenen Tracking-Code.
Argumente
NameTypBeschreibung
visitor_code (erforderlich)StringEindeutiger Identifikator des Besuchers.
Rückgabewert
TypBeschreibung
StringJavaScript-Code, der in die Seite eingefügt werden soll.

Ereignisse

on_update_configuration()

Mit der Methode on_update_configuration() können Sie das Ereignis behandeln, wenn die Konfiguration Daten aktualisiert hat. Sie nimmt einen Eingabeparameter, handler, entgegen. Der Handler, der aufgerufen wird, wenn die Konfiguration über ein Echtzeit-Konfigurationsereignis aktualisiert wird.

kameleoon_client.on_update_configuration(
  # configuration was updated
)
Argumente
NameTypBeschreibung
handlerCallableDer Handler, der aufgerufen wird, wenn die Konfiguration über ein Echtzeit-Konfigurationsereignis aktualisiert wird.

Datentypen

Browser

Das hier gespeicherte Browser-Datenset kann verwendet werden, um Experiment- und Personalisierungsberichte nach jedem damit verbundenen Wert zu filtern.
NameTypBeschreibung
browser_type (erforderlich)BrowserTypeListe der Browser: CHROME, INTERNET_EXPLORER, FIREFOX, SAFARI, OPERA, OTHER.
version (optional)FloatVersion des Browsers, Gleitkommazahl, die die Haupt- und Nebenversion des Browsers darstellt.
kameleoon_client.add_data(visitor_code, Kameleoon::Browser.new(Kameleoon::BrowserType::CHROME))

kameleoon_client.add_data(visitor_code, Kameleoon::Browser.new(Kameleoon::BrowserType::SAFARI, 10.0))

PageView

NameTypBeschreibung
urlStringURL der angesehenen Seite. Dieses Feld ist obligatorisch.
titleStringTitel der angesehenen Seite. Dieses Feld ist obligatorisch.
referrersArrayReferrer der angesehenen Seiten. Dieses Feld ist optional.
Der Index (ID) des Referrers ist auf der Konfigurationsseite des Akquisitionskanals unseres Back-Office verfügbar. Achtung: Dieser Index beginnt bei 0, sodass der erste Akquisitionskanal, den Sie für eine Site erstellen, die ID 0 hat, nicht 1.
kameleoon_client.add_data(visitor_code, Kameleoon::PageView.new("https://url.com", "title", [3]))

Conversion

Das hier gespeicherte Conversion-Datenset kann verwendet werden, um Experiment- und Personalisierungsberichte nach jedem damit verbundenen Ziel zu filtern.
  • Jeder Besucher kann mehrere Conversion-Objekte haben.
  • Sie finden die goal_id in der Kameleoon-App.
NameTypBeschreibungStandard
goal_id (erforderlich)IntegerID des Ziels.
revenue (optional)FloatUmsatz der Konvertierung.0
negative (optional)BoolDefiniert, ob der Umsatz positiv oder negativ ist.false
metadata (optional)Array<CustomData>Metadaten der Konvertierung.nil
kameleoon_client.add_data(visitor_code, Kameleoon::Conversion.new(32, 10))

kameleoon_client.add_data(visitor_code, Kameleoon::Conversion.new(33, 0, true))

kameleoon_client.add_data(
  visitor_code,
  Kameleoon::Conversion.new(34, metadata: [
    Kameleoon::CustomData.new(3, 'metadata1', 'md2'),
    Kameleoon::CustomData.new(5, 'md3'),
  ])
)

CustomData

CustomData ermöglicht es, jeden Datentyp einfach einem Besucher zuzuordnen. Sie können es dann als Targeting-Bedingung in Segmenten oder als Filter/Aufschlüsselung in Experimentberichten verwenden. Um mehr über Custom Data zu erfahren, lesen Sie diesen Artikel.
NameTypBeschreibungStandard
index/name (erforderlich)Integer/StringIndex oder Name des Custom Data. Entweder index oder name muss angegeben werden, um die Daten zu identifizieren.
values (erforderlich)ArrayWerte des zu speichernden Custom Data.
overwrite (optional)BooleanFlag zur expliziten Steuerung, wie die Werte gespeichert werden und wie sie in Berichten erscheinen. Weitere Informationentrue
  • Jeder Besucher kann nur ein CustomData für jeden eindeutigen index haben. Das Hinzufügen eines weiteren CustomData mit demselben index ersetzt das vorhandene CustomData.
  • Der index des Custom Data ist im Custom-Data-Dashboard in der Spalte “INDEX” zu finden.
  • Um zu verhindern, dass das SDK Daten mit dem ausgewählten Index aus Datenschutzgründen an die Kameleoon-Server sendet, aktivieren Sie beim Erstellen von Custom Data die Option Use this data only locally for targeting purposes.
  • Das Hinzufügen einer mit einem Namen erstellten CustomData-Instanz, wenn die Konfiguration der SDK-Instanz nicht aktuell ist oder der Name nicht registriert ist, führt dazu, dass die Daten ignoriert werden.
custom_data = Kameleoon::CustomData.new(1, 'value')

# With several values
custom_data = Kameleoon::CustomData.new(1, 'value1', 'value2')

# To set the 'overwrite' flag to false
custom_data = Kameleoon::CustomData.new(1, 'value', overwrite: false)

# To use a name instead of the index
custom_data = Kameleoon::CustomData.new('my-custom-data', 'value')

# From hash
custom_data = Kameleoon::CustomData.new({ 'id' => 1, 'values' => ['value1', 'value2'] })

# From hash with the 'overwrite' flag set to false
custom_data = Kameleoon::CustomData.new({ 'id' => 1, 'values' => ['value'], 'overwrite' => false })

# From hash with a name instead of the index
custom_data = Kameleoon::CustomData.new({ 'name' => 'my-custom-data', 'values' => ['value'] })

kameleoon_client.add_data(visitor_code, custom_data)

Device

NameTypBeschreibung
deviceDeviceTypeListe der Geräte: PHONE, TABLET, DESKTOP. Dieses Feld ist obligatorisch.
kameleoon_client.add_data(visitor_code, Kameleoon::Device.new(Kameleoon::DeviceType::DESKTOP))

UserAgent

Speichert Informationen über den User-Agent des Besuchers. Serverseitige Experimente sind anfälliger für Bot-Traffic als clientseitige Experimente. Um diese Anfälligkeit zu beheben, verwendet Kameleoon die IAB/ABC International Spiders and Bots List, um bekannte Bots und Spider zu identifizieren. Kameleoon verwendet auch das Feld UserAgent, um Bots und anderen unerwünschten Traffic herauszufiltern, der sonst Ihre Konvertierungsmetriken verzerren könnte. Weitere Details finden Sie im Hilfeartikel zum Bot-Filtering. Wenn Sie interne Bots verwenden, empfehlen wir Ihnen, den Wert curl/8.0 des userAgent zu übergeben, um sie von unseren Analytics auszuschließen.
NameTypBeschreibung
valueStringDer User-Agent-Wert, der mit Tracking-Anfragen gesendet wird. Dieses Feld ist obligatorisch.
kameleoon_client.add_data(visitor_code, Kameleoon::UserAgent.new("Your User Agent"))

UniqueIdentifier

Wenn Sie keinen UniqueIdentifier für einen Besucher hinzufügen, wird visitor_code als eindeutiger Besucher-Identifikator 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 dem angegebenen Identifikator zugeordnet ist. UniqueIdentifier 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 Zugriff auf eine interne ID haben, die über die Funktionen zum Zusammenführen von Sitzungen mit dem anonymen Besucher verbunden ist.
NameTypBeschreibung
valueBooleanParameter zur Angabe, ob der visitor_code ein eindeutiger Identifikator ist. Dieses Feld ist erforderlich.
kameleoon_client.add_data(visitorCode, Kameleoon::UniqueIdentifier.new(true))

OperatingSystem

OperatingSystem enthält Informationen über das Betriebssystem des Besuchers.
Jeder Besucher kann nur ein OperatingSystem haben. Das Hinzufügen eines zweiten OperatingSystem überschreibt das erste.
NameTypBeschreibung
typeOperatingSystemTypeListe der Typen: WINDOWS, MAC, IOS, LINUX, ANDROID, WINDOWS_PHONE. Dieses Feld ist obligatorisch.
kameleoon_client.add_data(visitor_code, Kameleoon::OperatingSystem.new(Kameleoon::OperatingSystemType::ANDROID))
Cookie enthält Informationen über das auf dem Gerät des Besuchers gespeicherte Cookie.
Jeder Besucher kann nur ein Cookie haben. Das Hinzufügen eines zweiten Cookie überschreibt das erste.
NameTypBeschreibung
cookiesHashHash-Objekt ({:cookie_name => cookie_value}), das aus Cookie-Schlüsseln und -Werten besteht. Dieses Feld ist obligatorisch.
cookie = Kameleoon::Cookie.new({ "k1" => "v1", "k2" => "v2" })
kameleoon_client.add_data(visitor_code, cookie)

Geolocation

Geolocation enthält die Geolokalisierungsdetails des Besuchers.
NameTypBeschreibung
country (erforderlich)StringDas Land des Besuchers.
region (optional)StringDie Region des Besuchers.
city (optional)StringDie Stadt des Besuchers.
postal_code (optional)StringDie Postleitzahl des Besuchers.
latitude (optional)FloatDie Breitengradkoordinate, die den Standort des Besuchers darstellt. Die Koordinatenzahl stellt Dezimalgrade dar.
longitude (optional)FloatDie Längengradkoordinate, die den Standort des Besuchers darstellt. Die Koordinatenzahl stellt Dezimalgrade dar.
  • Jeder Besucher kann nur eine Geolocation haben. Das Hinzufügen einer zweiten Geolocation überschreibt die erste.
kameleoon_client.add_data(visitor_code, Kameleoon::Geolocation.new("France", "Île-de-France", "Paris"))

ApplicationVersion

ApplicationVersion stellt die semantische Versionsnummer Ihrer Anwendung dar.
Ein Besucher kann nur eine ApplicationVersion haben. Das Hinzufügen einer zweiten Instanz überschreibt die erste.
NameTypBeschreibung
version (optional)StringDie Version der Mobile-Anwendung. Dieses Feld muss der semantischen Versionierung folgen. Akzeptierte Formate sind major, major.minor oder major.minor.patch.
kameleoon_client_sdk.add_data(visitorCode, Kameleoon::ApplicationVersion.new("10")) # major

kameleoon_client_sdk.add_data(visitorCode, Kameleoon::ApplicationVersion.new("10.20")) # major.minor

kameleoon_client_sdk.add_data(visitorCode, Kameleoon::ApplicationVersion.new("10.20.30")) # major.minor.patch

Rückgabetypen

DataFile

Das DataFile enthält die SDK-Konfigurationsdetails. Es kann bei Bedarf um zusätzliche Informationen für Kunden erweitert werden. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.
NameTypBeschreibung
feature_flagsHash<String, FeatureFlag>Eine Map von FeatureFlag-Objekten, mit Feature-Flag-Schlüsseln als Schlüssel.
date_modifiedIntegerDer Zeitstempel (in Millisekunden), der angibt, wann das DataFile zuletzt geändert wurde.
# Retrieves the hash of feature flags from the DataFile.
# The hash is keyed by feature flag identifiers, with each value being a FeatureFlag object.
feature_flags = datafile.feature_flags

# Retrieves the last modification timestamp of the DataFile.
# The value is an Integer representing milliseconds since the Unix epoch.
date_modified = datafile.date_modified

FeatureFlag

Das FeatureFlag stellt eine Reihe von Eigenschaften dar, die das Feature Flag selbst definieren – zum Beispiel seine Variations, Rules, Umgebungsstatus und andere zugehörige Details. Es kann bei Bedarf um zusätzliche Informationen für Kunden erweitert werden. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.
NameTypBeschreibung
environment_enabledBoolGibt an, ob das Feature Flag in der aktuellen Umgebung aktiviert ist.
default_variation_keyStringDer Schlüssel der Standardvariation, die mit dem Feature Flag verknüpft ist.
variationsHash<String, Variation>Eine Map von Variation-Objekten, mit Variationsschlüsseln als Schlüssel.
rulesArray<Rule>Eine Liste von Rule-Objekten.
# Check whether the feature flag is enabled in the current environment
is_environment_enabled = feature_flag.environment_enabled

# Retrieve the key of the default variation
default_variation_key = feature_flag.default_variation_key

# Retrieve the default variation object
default_variation = feature_flag.default_variation

# Retrieve all variations of the feature flag as a map (key = variation key, value = Variation object)
variations = feature_flag.variations

# Retrieve all targeting rules associated with the feature flag
rules = feature_flag.rules

Rule

Das Rule stellt eine Reihe von Eigenschaften dar, die die Regel selbst definieren – zum Beispiel ihre Variations. Es kann bei Bedarf um zusätzliche Informationen für Kunden erweitert werden. Wenn Sie weitere Details benötigen, wenden Sie sich bitte an Ihren Customer Success Manager.
NameTypBeschreibung
variationsHash<String, Variation>Eine Map von Variation-Objekten, mit Variationsschlüsseln als Schlüssel.
# Retrieve all variations of the rule as a map (key = variation key, value = Variation object)
variations = rule.variations

Variation

Variation enthält Informationen über die dem Besucher zugewiesene Variation (oder die Standardvariation, wenn keine spezifische Zuweisung existiert).
NameTypBeschreibung
nameStringDer Name der Variation.
keyStringDer eindeutige Schlüssel, der die Variation identifiziert.
idInteger oder NilClassDie ID der zugewiesenen Variation (oder nil, wenn es sich um die Standardvariation handelt).
experiment_idInteger oder NilClassDie ID des mit der Variation verknüpften Experiments (oder nil, wenn Standard).
variablesHash<String, Variable>Eine Hash-Struktur, die die Variablen der zugewiesenen Variation enthält, mit Variablennamen als Schlüssel. Diese kann leer sein, wenn keine Variablen verknüpft sind.
  • Das Variation-Objekt bietet Details zur zugewiesenen Variation und ihrem zugehörigen Experiment, während das Variable-Objekt spezifische Details zu jeder Variable innerhalb einer Variation enthält.
  • Stellen Sie sicher, dass Ihr Code den Fall behandelt, in dem id oder experiment_id nil sein kann, was eine Standardvariation anzeigt.
  • Das Hash variables kann leer sein, wenn keine Variablen mit der Variation verknüpft sind.
# Retrieving the variation name
variation_name = variation.name

# Retrieving the variation key
variation_key = variation.key

# Retrieving the variation id
variation_id = variation.id

# Retrieving the experiment id
experiment_id = variation.experiment_id

# Retrieving the variables map
variables = variation.variables

Variable

Variable enthält Informationen über eine Variable, die mit der zugewiesenen Variation verknüpft ist.
NameTypBeschreibung
keyStringDer eindeutige Schlüssel, der die Variable identifiziert.
typeStringDer Typ der Variable. Mögliche Werte: BOOLEAN, NUMBER, STRING, JSON, JS, CSS
valueObjectDer Wert der Variable, der von folgenden Typen sein kann: Boolean, Integer, Float, String, Hash, Array.
# Retrieving the variables map
variables = variation.variables

# Variable type can be retrieved for further processing
type = variables["isDiscount"].type

# Retrieving the variable value by key
is_discount = variables["isDiscount"].value

# Variable value can be of different types (e.g., String)
title = variables["title"].value

Veraltete Methoden

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

get_feature_variation_key()

  • 📨 Sendet Tracking-Daten an Kameleoon
Verwenden Sie stattdessen get_variation().
Um einen Feature-Variation-Key zu erhalten, rufen Sie die Methode get_feature_variation_key auf. Diese Methode nimmt einen visitor_code und feature_key als obligatorische Argumente entgegen, um den Variation-Key eines Benutzers zu erhalten. Wenn ein solcher Benutzer noch nie mit diesem Feature Flag verknüpft war, gibt das SDK zufällig einen Variation-Key zurück (gemäß den Regeln des Feature Flags). Wenn ein Benutzer mit einem bestimmten visitor_code bereits bei diesem Feature Flag registriert ist, erkennt es den vorherigen Variation-Key-Wert. Wenn der Benutzer keiner der Regeln entspricht, wird der Standardwert zurückgegeben, den wir im Konto Ihres Kunden definieren können. Sie müssen sicherstellen, dass in Ihrem Code eine geeignete Fehlerbehandlung eingerichtet ist, wie im Beispiel rechts gezeigt, um potenzielle Ausnahmen abzufangen. Wenn Sie einen visitor_code angeben, verwendet die Methode get_feature_variation_key den visitor_code als eindeutigen Besucher-Identifikator, was für Cross-Device-Experimentation nützlich ist. Wenn Sie einen visitor_code angeben und den Parameter is_unique_identifier auf true setzen, verknüpft das SDK die geflushten Daten mit dem Besucher, der dem angegebenen Identifikator zugeordnet ist.
Der Parameter is_unique_identifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.is_unique_identifier 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 Zugriff auf eine interne ID haben, die über die Funktionen zum Zusammenführen von Sitzungen mit dem anonymen Besucher verbunden ist.
visitor_code = kameleoon_client.get_visitor_code(cookies)

feature_key = "feature_key"
variation_key = ""

begin
	variation_key = kameleoon_client.get_feature_variation_key(visitor_code, feature_key)
	case variation_key
	when 'on'
		# main variation key is selected for visitorCode
	when 'alternative_variation'
		# alternative variation key
	else
		# default variation key
	end
rescue Kameleoon::Exception::FeatureNotFound
	# The user will not be counted in the experiment, but should see the reference variation.
rescue Kameleoon::Exception::VisitorCodeInvalid
	# The visitor code you passed to the method isn't valid and can't be accepted by SDK.
rescue Kameleoon::Exception::FeatureEnvironmentDisabled
	# The feature is disabled for the environment.
end
Argumente
NameTypBeschreibung
visitor_codestringEindeutiger Identifikator des Benutzers. Dieses Feld ist obligatorisch.
feature_keystringSchlüssel des Features, das Sie einem Benutzer zugänglich machen möchten. Dieses Feld ist obligatorisch.
is_unique_identifier (veraltet)BooleanWenn true, verknüpft das SDK die geflushten Daten mit dem Besucher, der dem angegebenen Identifikator zugeordnet ist.
Rückgabewert
TypBeschreibung
stringVariation-Key des Feature Flags, der für einen bestimmten visitor_code registriert ist.
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::FeatureNotFoundAusnahme, die anzeigt, dass die angeforderte Feature-ID in der internen Konfiguration des SDK nicht gefunden wurde. Diese Ausnahme ist normalerweise normal und bedeutet, dass das Feature Flag auf Seiten von Kameleoon noch nicht aktiviert wurde (aber der Code, der das Feature implementiert, bereits auf Seiten der Webanwendung bereitgestellt ist).
Kameleoon::Exception::FeatureEnvironmentDisabledAusnahme, die anzeigt, dass das Feature Flag für die aktuelle Umgebung des Besuchers deaktiviert ist (z. B. production, staging oder development).
Kameleoon::Exception::VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist (leer oder länger als 255 Zeichen).

get_active_feature_list_for_visitor()

Verwenden Sie stattdessen get_active_features().
Diese Methode nimmt nur visitorCode als Eingabeparameter entgegen. Das Ergebnis enthält nur aktive Feature Flags für einen bestimmten Besucher.
active_feature_flag_list = kameleoon_client.get_active_feature_list_for_visitor(visitor_code)
Argumente
NameTypBeschreibung
visitor_codeStringEindeutiger Identifikator des Benutzers. Dieses Feld ist obligatorisch.
Rückgabewert
TypBeschreibung
ArrayListe der Feature-Flag-Schlüssel, die für einen bestimmten visitor_code aktiv sind.
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist (leer oder länger als 255 Zeichen).

get_active_features()

Die Methode get_active_features ruft Informationen über die aktiven Feature Flags ab, die für den angegebenen Visitor Code verfügbar sind.
Diese Methode ist veraltet und wird in der SDK-Version 4.0.0 entfernt. Verwenden Sie stattdessen get_variations().
active_features = kameleoon_client.get_active_features(visitor_code)
Argumente
NameTypBeschreibung
visitor_codeStringEindeutiger Identifikator des Benutzers. Dieses Feld ist obligatorisch.
Rückgabewert
TypBeschreibung
Hash<String, Variation>Ein Hash, das die zugewiesenen Variationen der aktiven Features enthält, wobei die IDs der aktiven Features als Schlüssel verwendet werden.
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist (leer oder länger als 255 Zeichen).

get_feature_variable()

  • 📨 Sendet Tracking-Daten an Kameleoon
Verwenden Sie stattdessen get_variation().
Zuvor obtain_feature_variable genannt – veraltet seit SDK-Version 2.1.0 und wird in zukünftigen Versionen entfernt.
Um eine Variable des einem Benutzer zugeordneten Variation-Keys zu erhalten, rufen Sie die Methode get_feature_variable auf. Diese Methode nimmt einen visitor_code, feature_key und variable_name als obligatorische Argumente entgegen, um eine Variable des Variation-Keys für einen bestimmten Benutzer zu erhalten. Wenn ein solcher Benutzer noch nie mit diesem Feature Flag verknüpft war, gibt das SDK zufällig den Variablenwert eines Variation-Keys zurück (gemäß den Regeln des Feature Flags). Wenn ein Benutzer mit einem bestimmten visitor_code bereits bei diesem Feature Flag registriert ist, erkennt es den Variablen-Wert für die zuvor zugeordnete Variation. Wenn der Benutzer keiner der Regeln entspricht, wird die Standardvariable zurückgegeben. Sie müssen sicherstellen, dass in Ihrem Code eine geeignete Fehlerbehandlung eingerichtet ist, wie im Beispiel rechts gezeigt, um potenzielle Ausnahmen abzufangen. Wenn Sie einen visitor_code angeben, verwendet die Methode get_feature_variable den visitor_code als eindeutigen Besucher-Identifikator, was für Cross-Device-Experimentation nützlich ist. Wenn Sie einen visitor_code angeben und den Parameter is_unique_identifier auf true setzen, verknüpft das SDK die geflushten Daten mit dem Besucher, der dem angegebenen Identifikator zugeordnet ist.
Der Parameter is_unique_identifier ist veraltet. Bitte verwenden Sie stattdessen UniqueIdentifier.is_unique_identifier 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 Zugriff auf eine interne ID haben, die über die Funktionen zum Zusammenführen von Sitzungen mit dem anonymen Besucher verbunden ist.
visitor_code = kameleoon_client.get_visitor_code(cookies)

feature_key = "feature_key"
variation_key = ""
variable_name = "variable_name"

begin
	variable_value = kameleoon_client.get_feature_variable(visitor_code, feature_key, variable_name)
	# your custom code depending of variable_value, e.g.
	case variable_value
	when 'value-1'
		# your custom code if variable == 'value-1'
	when 'value-2'
		# your custom code if variable == 'value-2'
	end
rescue Kameleoon::Exception::FeatureNotFound
	# The user will not be counted in the experiment, but should see the reference variation.
rescue Kameleoon::Exception::FeatureVariableNotFound
	# Requested variable not defined in Kameleoon
rescue Kameleoon::Exception::FeatureEnvironmentDisabled
	# The feature is disabled for the environment.
rescue Kameleoon::Exception::VisitorCodeInvalid
	# The visitor code you passed to the method isn't valid and can't be accepted by SDK.
end
Argumente
NameTypBeschreibung
visitor_codestringEindeutiger Identifikator des Benutzers. Dieses Feld ist obligatorisch.
feature_keystringSchlüssel des Features, das Sie einem Benutzer zugänglich machen möchten. Dieses Feld ist obligatorisch.
variable_namestringName der Variable, deren Wert Sie erhalten möchten. Dieses Feld ist obligatorisch.
is_unique_identifier (veraltet)BooleanWenn true, verknüpft das SDK die geflushten Daten mit dem Besucher, der dem angegebenen Identifikator zugeordnet ist.
Rückgabewert
TypBeschreibung
anyWert einer Variablen einer Variation, der für einen bestimmten visitor_code für dieses Feature Flag registriert ist. Mögliche Typen: boolean, number, string, hash.
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::FeatureNotFoundAusnahme, die anzeigt, dass die angeforderte Feature-ID in der internen Konfiguration des SDK nicht gefunden wurde. Diese Ausnahme ist normalerweise normal und bedeutet, dass das Feature Flag auf Seiten von Kameleoon noch nicht aktiviert wurde (aber der Code, der das Feature implementiert, bereits auf Seiten der Webanwendung bereitgestellt ist).
Kameleoon::Exception::FeatureEnvironmentDisabledAusnahme, die anzeigt, dass das Feature Flag in der aktuellen Umgebung des Besuchers deaktiviert ist (z. B. production, staging oder development).
Kameleoon::Exception::VisitorCodeInvalidAusnahme, die anzeigt, dass der bereitgestellte Visitor Code ungültig ist (leer oder länger als 255 Zeichen).
Kameleoon::Exception::FeatureVariableNotFoundAusnahme, die anzeigt, dass die angeforderte Variable nicht gefunden wurde. Überprüfen Sie, ob der Schlüssel der Variable mit dem Schlüssel in Ihrem Code übereinstimmt.

get_feature_variation_variables()

Verwenden Sie stattdessen get_variation().
Um alle Feature-Variablen abzurufen, rufen Sie die Methode get_feature_variation_variables auf. Eine Feature-Variable kann über unsere Webanwendung geändert werden. Diese Methode nimmt feature_key und variation_key als obligatorische Argumente entgegen. Sie gibt die Daten als Objekttyp zurück, wie er in der Weboberfläche definiert ist. Sie löst einen Fehler aus (FeatureNotFound), wenn das angeforderte Feature Flag in der Client-Konfiguration des SDK nicht gefunden wurde. Wenn der Variation-Key nicht gefunden wird, löst die Methode einen Fehler (FeatureVariationNotFound) aus.
featureKey := "test_feature_variables"
variationKey := "on"

begin
	data = kameleoon_client.get_feature_variation_variables(feature_key, variable_key)
rescue Kameleoon::Exception::FeatureNotFound
	# The feature is not activated in Kameleoon
rescue Kameleoon::Exception::FeatureVariationNotFound
	# Requested variation not defined in Kameleoon
rescue Kameleoon::Exception::FeatureEnvironmentDisabled
	# The feature is disabled for the environment.
end
Argumente
NameTypBeschreibung
feature_keystringSchlüssel des Feature Flags, das Sie abrufen möchten. Dieses Feld ist obligatorisch.
variation_keystringSchlüssel der Variation, die Sie abrufen möchten. Dieses Feld ist obligatorisch.
Rückgabewert
TypBeschreibung
HashDaten, die mit diesem Feature Flag und dieser Variation verknüpft sind. Die Werte können String, Boolean, Number oder Hash sein (je nach dem in der Weboberfläche definierten Typ).
Ausgelöste Ausnahmen
TypBeschreibung
Kameleoon::Exception::FeatureNotFoundAusnahme, die anzeigt, dass die angeforderte Feature-ID in der internen Konfiguration des SDK nicht gefunden wurde. Diese Ausnahme ist normalerweise normal und bedeutet, dass das Feature Flag auf Seiten von Kameleoon noch nicht aktiviert wurde (aber der Code, der das Feature implementiert, bereits auf Seiten der Webanwendung bereitgestellt ist).
Kameleoon::Exception::FeatureEnvironmentDisabledAusnahme, die anzeigt, dass das Feature Flag für die aktuelle Umgebung des Besuchers deaktiviert ist (z. B. production, staging oder development).
Kameleoon::Exception::FeatureVariationNotFoundAusnahme, die anzeigt, dass die angeforderte Variations-ID in der internen Konfiguration des SDK nicht gefunden wurde. Diese Ausnahme ist normalerweise normal und bedeutet, dass das der Variation entsprechende Experiment auf Seiten von Kameleoon noch nicht aktiviert wurde.

get_feature_list()

Gibt eine Liste der Feature-Flag-Schlüssel zurück, die derzeit für das SDK verfügbar sind.
feature_list = kameleoon_client.get_feature_list
Rückgabewert
TypBeschreibung
ArrayListe der Feature-Flag-Schlüssel.