React 16.8.0+
Developer guide
Suivez cette section pour intégrer le SDK dans votre application et en apprendre davantage sur son utilisation.Getting started
Cette section vous guide à travers l’installation et la configuration du SDK pour la première fois.Installation
L’outil d’installation du SDK Kameleoon est la méthode recommandée pour installer le SDK. Ce SDK Installer vous aide à installer le SDK de votre choix, à générer un échantillon de code de base et à configurer les dépendances externes si nécessaire. Pour démarrer l’outil d’installation du SDK, installez-le et exécutez-le globalement :npx :
Create the Kameleoon Client
Pour commencer, créez un point d’entrée pour le SDK React en créant un Kameleoon Client au niveau supérieur de votre application. Créez une instance deKameleoonClient en utilisant la fonction createClient(), importée depuis le package kameleoon.
- TypeScript
- JavaScript
Wrap the application in the Kameleoon Provider
La deuxième étape consiste à connecter le Kameleoon Client précédemment créé àKameleoonProvider en passant le client configuré à KameleoonProvider :
- TS
- JS
- NextJS (TS)
- NextJS (JS)
- NextJS with externals(TS)
- NextJS with externals(JS)
KameleoonProvider
Utilisez ce provider au niveau racine en englobant votre application pour accéder àKameleoonClient. Cela garantit que votre application ne scintille pas en raison de modifications de flag au démarrage.
Props
KameleoonProviderSSR
Utilisez ce provider au niveau racine en englobant votre application pour accéder àKameleoonClient.
KameleoonProviderSSR diffère de KameleoonProvider en ce qu’il crée une instance KameleoonClient à l’intérieur du contexte lors de la première requête client. Cela évite le risque de créer le client côté serveur. Il est recommandé pour une utilisation dans les systèmes basés sur le SSR, tels que Next.js avec SSR.
Props
Await for the client initialization
L’initialisation deKameleoonClient se fait de manière asynchrone afin de garantir que l’appel à l’API Kameleoon a réussi ; pour cela, le hook useInitialize est utilisé. Vous pouvez utiliser async/await, Promise.then() ou toute autre méthode pour gérer l’initialisation asynchrone du client.
- TypeScript
- JavaScript
Activating a feature flag
Assigning a unique ID to a user
Pour attribuer un identifiant unique à un utilisateur, vous pouvez utiliser la méthodegetVisitorCode(). Si un visitor code n’existe pas (à partir du cookie des en-têtes de requête), la méthode génère un identifiant unique aléatoire ou utilise un defaultVisitorCode que vous auriez généré. L’identifiant est ensuite défini dans un cookie des en-têtes de réponse.
Si vous utilisez Kameleoon en mode Hybride, l’appel à la méthode getVisitorCode() garantit que l’identifiant unique (visitor code) est partagé entre le fichier d’application engine.js (anciennement nommé kameleoon.js) et le SDK.
Retrieving a flag configuration
Pour implémenter un feature flag dans votre code, vous devez d’abord créer le feature flag dans votre compte Kameleoon. Pour déterminer le statut ou la variation d’un feature flag pour un utilisateur spécifique, vous devez utiliser la méthodegetVariation() ou isFeatureFlagActive() pour récupérer la configuration en fonction du featureKey.
La méthode getVariation() gère à la fois les feature flags simples avec des états ON/OFF et les flags plus complexes avec plusieurs variations. La méthode récupère la variation appropriée pour l’utilisateur en vérifiant les règles de la fonctionnalité, en attribuant la variation et en la renvoyant en fonction du featureKey et du visitorCode.
La méthode isFeatureFlagActive() peut être utilisée si vous souhaitez récupérer la configuration d’un feature flag simple qui n’a qu’un état ON ou OFF, par opposition aux feature flags plus complexes avec plusieurs variations ou options de ciblage.
Si votre feature flag a des variables associées (telles que des comportements spécifiques liés à chaque variation), getVariation() vous permet également d’accéder à l’objet Variation, qui fournit des détails sur la variation attribuée et son expérience associée. Cette méthode vérifie si l’utilisateur est ciblé, trouve la variation attribuée au visiteur et l’enregistre dans le stockage. Lorsque track=true, le SDK enverra l’événement d’exposition à l’expérience spécifiée lors de la prochaine requête de suivi, qui est automatiquement déclenchée en fonction du tracking_interval_millisecond du SDK. Par défaut, cet intervalle est défini sur 1000 millisecondes (1 seconde).
La méthode getVariation() vous permet de contrôler si le suivi est effectué. Si track=false, aucun événement d’exposition ne sera envoyé par le SDK. Cela est utile si vous préférez ne pas suivre les données via le SDK et plutôt vous appuyer sur le suivi côté client géré par le moteur Kameleoon, par exemple. De plus, définir track=false est utile lors de l’utilisation de la méthode getVariations(), où vous pouvez n’avoir besoin que des variations pour tous les flags sans déclencher d’événements de suivi. Si vous souhaitez en savoir plus sur le fonctionnement du suivi, consultez cet article
Adding data points to target a user or filter / breakdown visits in reports
Pour cibler un utilisateur, assurez-vous d’avoir ajouté les points de données pertinents à son profil avant de récupérer la variation de la fonctionnalité ou de vérifier si le flag est actif. Utilisez la méthodeaddData() pour ajouter ces points de données au profil de l’utilisateur.
Pour récupérer les points de données collectés sur d’autres appareils ou pour accéder aux données utilisateur passées (collectées côté client lors de l’utilisation de Kameleoon en mode Hybride), utilisez la méthode getRemoteVisitorData(). Cette méthode récupère les données de manière asynchrone à partir des serveurs. Il est important d’appeler getRemoteVisitorData() avant de récupérer la variation ou de vérifier si le feature flag est actif, car ces données peuvent être nécessaires pour attribuer un utilisateur à une variation donnée.
Pour en savoir plus sur les conditions de ciblage disponibles, consultez l’article détaillé à ce sujet.
De plus, les points de données que vous ajoutez au profil du visiteur seront disponibles lors de l’analyse de vos expériences, vous permettant de filtrer et de décomposer vos résultats par facteurs tels que l’appareil et le navigateur. Le mode Hybride de Kameleoon collecte automatiquement une variété de points de données côté client, facilitant la décomposition de vos résultats en fonction de ces points de données pré-collectés. Voir la liste complète ici.
Si vous devez suivre des points de données supplémentaires au-delà de ce qui est collecté automatiquement, vous pouvez utiliser la fonctionnalité Custom Data de Kameleoon. Custom Data vous permet de capturer et d’analyser des informations spécifiques pertinentes pour vos expériences. N’oubliez pas d’appeler la méthode flush() pour envoyer les données collectées aux serveurs Kameleoon pour analyse.
Pour garantir que vos résultats sont précis, il est recommandé de filtrer les bots en utilisant le type de données
UserAgent.Tracking goal conversions
Lorsqu’un utilisateur effectue une action souhaitée (telle qu’un achat), elle est enregistrée comme une conversion. Pour suivre les conversions, utilisez la méthodetrackConversion() et fournissez les paramètres requis visitorCode et goalId.
La requête de suivi de conversion sera envoyée avec la prochaine requête de suivi planifiée, que le SDK envoie à intervalles réguliers (définis par tracking_interval_millisecond). Si vous préférez envoyer la requête immédiatement, utilisez la méthode flush() avec le paramètre instant=true.
Sending events to analytics solutions
Pour suivre les conversions et envoyer des événements d’exposition à votre solution d’analyse client, vous devez d’abord implémenter Kameleoon en mode Hybride. Ensuite, utilisez la méthodegetEngineTrackingCode().
La méthode getEngineTrackingCode() récupère le code de suivi unique nécessaire pour envoyer des événements d’exposition à votre solution d’analyse. L’utilisation de cette méthode vous permet d’enregistrer des événements et de les envoyer à la plateforme d’analyse de votre choix.
React Native considerations
React Native sur la plateforme
android ne prend pas en charge la fonctionnalité Real Time Update.@kameleoon/react-native-storage- construit avec la bibliothèquereact-native-mmkv@kameleoon/react-native-event-source- construit avec la bibliothèquereact-native-event-source-ts@kameleoon/react-native-visitor-code-manager- construit sur la base de la bibliothèquereact-native-mmkv@kameleoon/react-native-platform-analyzer- construit avec la bibliothèquereact-native- optional
@kameleoon/react-native-secure-prng- construit avec la bibliothèquereact-native-get-random-values
- TypeScript
- JavaScript
Using a custom bucketing key
Par défaut, Kameleoon utilise un ID de visiteur unique et anonyme (visitorCode) pour attribuer les utilisateurs aux variations de feature flag. Cet ID est généralement généré et stocké sur l’appareil de l’utilisateur (dans un cookie de navigateur pour les SDK côté client et côté serveur — dans le stockage persistant pour les SDK mobiles). Cependant, dans certains scénarios, vous pouvez avoir besoin de garantir que tous les utilisateurs d’une même organisation voient la même variante d’un feature flag.
L’option Custom Bucketing Key vous permet de remplacer ce comportement par défaut en fournissant votre propre identifiant personnalisé pour le bucketing. Ce remplacement garantit que la logique d’attribution de Kameleoon utilise votre clé spécifiée au lieu du visitorCode par défaut.
Use cases
Utiliser une clé de bucketing personnalisée est essentiel pour maintenir la cohérence et la précision de vos attributions de feature flag, en particulier dans ces situations :- Expériences au niveau du compte ou de l’organisation : Pour les produits B2B ou les scénarios où vous souhaitez attribuer tous les utilisateurs d’une même organisation à la même variation, vous pouvez utiliser un identifiant tel qu’un
accountId. Les clés de bucketing personnalisées sont cruciales pour les fonctionnalités d’A/B test qui impactent une équipe ou une entreprise entière.
Technical details
Lorsque vous configurez une clé de bucketing personnalisée pour un feature flag, vous fournissez à Kameleoon un identifiant spécifique provenant des données de votre application :- Fournir la clé personnalisée : Vous fournissez votre identifiant personnalisé au SDK Kameleoon à l’aide de la méthode
addData(). Dans cette méthode, vous passerez votre clé de bucketing personnalisée choisie en tant qu’objetCustomData. Ici,newVisitorCodefait référence à l’identifiant que vous souhaitez utiliser pour votre bucketing (par exemple, le nouveauuserIdouaccountId).
- Logique de bucketing : Une fois qu’une clé de bucketing personnalisée est fournie via la méthode
addData(), tous les calculs de hash pour attribuer les utilisateurs aux variations utiliseront cenewVisitorCode(votre clé personnalisée) au lieu duvisitorCodepar défaut. Utiliser lenewVisitorCodesignifie que la décision de bucketing est liée à votre identifiant personnalisé, garantissant des attributions cohérentes à travers les différents contextes où cet identifiant est présent. - Suivi des données et analytique : Il est essentiel de noter que bien que le
newVisitorCode(votre clé personnalisée) soit utilisé pour les décisions de bucketing, toutes les données ultérieures (événements de suivi et conversions, par exemple) sont envoyées et associées auvisitorCodeoriginal. Cette séparation garantit que vos analytiques reflètent avec précision les parcours et interactions individuels des utilisateurs dans le contexte plus large de votre expérience, même lorsque le bucketing est effectué à un niveau supérieur (comme un compte) ou à travers plusieurs appareils/sessions. Vos données de visiteur d’origine restent intactes pour des rapports complets.
Technical requirementes
Pour utiliser efficacement une clé de bucketing personnalisée :- La clé doit être une
string. - Elle doit être unique pour l’entité que vous avez l’intention de bucketer (par exemple, si vous utilisez un
userId, l’ID de chaque utilisateur doit être unique). - La clé doit être disponible pour le SDK au moment exact où la décision de feature flag est évaluée pour cet utilisateur ou cette requête.
Targeting conditions
Les SDK Kameleoon prennent en charge une variété de conditions de ciblage prédéfinies que vous pouvez utiliser pour cibler les utilisateurs dans vos campagnes. Pour la liste des conditions prises en charge par ce SDK, consultez use visit history to target users. Vous pouvez également utiliser vos propres données externes pour cibler les utilisateurs.Logging
Le SDK génère des logs pour refléter divers processus internes et problèmes.Log levels
Le SDK prend en charge la configuration de la limitation du logging par niveau de log.- TypeScript
- JavaScript
Custom handling of logs
Le SDK écrit ses logs dans la sortie console par défaut. Ce comportement peut être remplacé.La limitation du logging par niveau de log est effectuée indépendamment de la logique de gestion des logs.
- TypeScript
- JavaScript
Domain information
Vous fournissez un domaine en tant quedomain dans la [configuration] de KameleoonClient, qui est utilisé pour stocker le visitor code Kameleoon dans les cookies. Ceci est important lorsque vous travaillez avec les méthodes getVisitorCode et setLegalConsent. Le domaine que vous fournissez est stocké dans le cookie en tant que clé Domain=.
Setting the domain
Le domaine que vous fournissez indique que l’adresse URL peut utiliser le cookie. Par exemple, si votre domaine estwww.example.com, le cookie n’est disponible qu’à partir d’une URL www.example.com. Cela signifie que les pages avec le domaine app.example.com ne peuvent pas utiliser le cookie.
Pour être plus flexible avec les sous-domaines, vous pouvez préfixer un domaine par .. Par exemple, le domaine .example.com permet au cookie de fonctionner à la fois sur app.example.com et login.example.com.
Vous ne pouvez pas utiliser d’expressions régulières, de symboles spéciaux, de protocole ou de numéros de port dans le
domain.
De plus, une liste spécifique de sous-domaines n’est pas autorisée à être utilisée avec le préfixe ..Developing on localhost
localhost est toujours considéré comme un domaine invalide, ce qui rend difficile le test du domaine lors du développement sur localhost.
Il existe deux façons d’éviter ce problème :
- Ne pas spécifier le champ
domaindans le client SDK lors des tests. Cela évite les problèmes delocalhost(le cookie sera défini sur n’importe quel domaine). - Créer un domaine local pour
localhost. Par exemple :- Naviguez vers
/etc/hostssur Linux ou versc:\Windows\System32\Drivers\etc\hostssur Windows - Ouvrez
hostsavec les droits de super-utilisateur ou d’administrateur - Ajoutez un domaine au port localhost, par exemple :
127.0.0.1 app.com - Vous pouvez maintenant exécuter votre application localement sur
app.com:{my_port}et spécifier.app.comcomme votre domaine
- Naviguez vers
External dependencies
Les dépendances externes du SDK utilisent le modèle dependency injection pour vous donner la possibilité de fournir vos propres implémentations pour certaines parties d’un SDK.Dans le SDK React, toutes les dépendances externes ont des implémentations par défaut, qui utilisent une API native du navigateur, il n’est donc pas nécessaire de les fournir à moins qu’une autre API ne soit requise pour des cas d’utilisation spécifiques.
L’exemple suivant implémente les dépendances externes. Pour importer une interface depuis un SDK, créez une classe qui l’implémente et passez la classe instanciée au SDK.
Storage
- TypeScript
- JavaScript
EventSource
- TypeScript
- JavaScript
VisitorCodeManager
- TypeScript
- JavaScript
Requester
- TypeScript
- JavaScript
Pseudo Random Number Generator
Le Pseudo Random Number Generator (PRNG) est une dépendance qui génère un nombre à virgule flottante aléatoire entre0 et 1 (similaire à Math.random).
L’implémentation par défaut de Kameleoon repose sur la fonction crypto du navigateur ou sur Math.random si crypto n’est pas disponible.
Ces API sont très sécurisées et fiables, cependant dans certains cas particuliers (en particulier dans certains moteurs React Native), vous pouvez vouloir fournir votre propre implémentation ou utiliser un package Kameleoon dédié à React Native - @kameleoon/react-native-secure-prng
- TypeScript
- JavaScript
Error Handling
Presque chaque callback du SDK React renvoyé par les hooks peut générer une erreur à un moment donné ; ces erreurs ne sont pas de simples cas particuliers mais plutôt desKameleoonError délibérément prédéfinis
qui étendent la classe native Error de JavaScript en fournissant des messages utiles et un champ spécial type de type KameleoonException.
KameleoonException est une enum contenant tous les types d’erreur possibles.
Pour savoir exactement quel type de KameleoonException les callbacks peuvent générer, vous pouvez consulter la section Throws de la description des hooks sur cette page ou simplement survoler le callback dans votre IDE pour voir la description jsdoc.
Dans l’ensemble, gérer les erreurs est considéré comme une bonne pratique pour rendre votre application plus stable et éviter les problèmes techniques.
- TypeScript
- JavaScript
Cross-device experimentation
Pour prendre en charge les visiteurs qui accèdent à une application depuis plusieurs appareils, Kameleoon permet la synchronisation des données de visiteur précédemment collectées sur chacun des appareils du visiteur et la réconciliation de leur historique de visites entre appareils via l’expérimentation cross-device. Des études de cas et des informations détaillées sur la façon dont Kameleoon gère les données entre appareils sont disponibles dans l’article sur l’expérimentation cross-device.Synchronizing custom data across devices
Bien que la synchronisation de mapping personnalisé soit utilisée pour aligner les données du visiteur entre les appareils, elle n’est pas toujours nécessaire. Voici deux scénarios où la synchronisation de mapping personnalisée n’est pas requise : Même ID utilisateur entre appareils Si le même ID utilisateur est utilisé de manière cohérente sur tous les appareils, la synchronisation est gérée automatiquement sans synchronisation de mapping personnalisé. Il suffit d’appeler la méthodegetRemoteVisitorData() lorsque vous souhaitez synchroniser les données collectées entre plusieurs appareils.
Instances multi-serveurs avec des ID cohérents
Dans les configurations complexes impliquant plusieurs serveurs (par exemple, des instances de serveurs distribués), où le même ID utilisateur est disponible sur tous les serveurs, la synchronisation entre serveurs (avec getRemoteVisitorData()) est suffisante sans synchronisation de mapping personnalisé supplémentaire.
Les clients ayant besoin de données supplémentaires peuvent se référer à la description de la méthode getRemoteVisitorData() pour obtenir des conseils supplémentaires. Dans le code ci-dessous, il est supposé que le même identifiant unique (dans ce cas, le visitorCode, qui peut également être appelé userId) est utilisé de manière cohérente entre les deux appareils pour une récupération précise des données.
Si vous souhaitez synchroniser les données collectées en temps réel, vous devez choisir le scope Visitor pour vos custom data.
- TypeScript
- JavaScript
Device One
Device Two
Using custom data for session merging
- SDK Version 9
- SDK Version 10
L’expérimentation cross-device vous permet de combiner l’historique d’un visiteur sur chacun de ses appareils (réconciliation d’historique). L’une des fonctionnalités puissantes que la réconciliation d’historique fournit est la capacité de fusionner différentes sessions de visiteurs en une seule. Pour réconcilier l’historique des visites, vous pouvez utiliser
CustomData pour fournir un identifiant unique pour le visiteur.Suivez le guide activating cross-device history reconciliation pour configurer vos custom data sur la plateforme KameleoonUne fois vos custom data configurées, vous pouvez les utiliser dans votre code pour fusionner la session d’un visiteur.
Les sessions avec le même identifiant verront toujours la même variation d’expérience et seront affichées comme un seul visiteur dans la vue Visitor des pages de résultats de votre expérience.La configuration du SDK garantit que les sessions associées voient toujours la même variation de l’expérience.Avant d’utiliser d’autres méthodes, assurez-vous d’informer le SDK que le visiteur est un identifiant unique en ajoutant des données UniqueIdentifier à un visiteurVoici un exemple d’utilisation de custom data pour la fusion de sessions. Dans cet exemple, nous avons une application avec une page de connexion. Comme nous ne connaissons pas l’ID utilisateur au moment de la connexion, nous utilisons un identifiant de visiteur anonyme généré par la méthode getVisitorCode. Après la connexion de l’utilisateur, nous pouvons associer le visiteur anonyme à l’ID utilisateur et l’utiliser comme identifiant unique pour le visiteur.- TypeScript
- JavaScript
Login Page
Application Page
Utilities
Le SDK dispose d’un ensemble de méthodes utilitaires qui peuvent être utilisées pour simplifier le processus de développement. Toutes les méthodes sont représentées en tant que membres statiques de la classeKameleoonUtils.
simulateSuccessRequest
La méthodesimulateSuccessRequest est utilisée pour simuler une requête réussie vers le serveur Kameleoon. Elle peut être utile pour les implémentations personnalisées de Requester lorsque le développeur a besoin de simuler une requête réussie, par exemple en désactivant le suivi.
- TypeScript
- JavaScript
Arguments
Le type de données
SimulateRequestDataType est défini comme suit :
RequestType.Tracking-nullRequestType.ClientConfiguration-ClientConfigurationDataTypeRequestType.RemoteData-JSONType
Return value
getCookieValue
La méthodegetCookieValue est utilisée pour analyser une chaîne de cookie courante (key_1=value_1; key_2=value_2; ...) et obtenir la valeur d’une clé de cookie spécifique. Elle est utile lorsque vous travaillez avec une implémentation personnalisée de VisitorCodeManager.
- TypeScript
- JavaScript
Arguments
Return value
Reference
Il s’agit de la documentation de référence complète pour le SDK React.Initialization
Cette section fournit les méthodes que vous utilisez pour créer et initialiser le Kameleoon Client dans votre application.initialize()
- SDK Version 9
- SDK Version 10
Une fonction asynchrone
initialize, collectée avec le hook useInitialize, qui est utilisée pour l’initialisation de KameleoonClient en récupérant les données liées au SDK Kameleoon depuis le serveur ou en récupérant les données depuis une source locale si les données sont à jour ou si l’intervalle de mise à jour n’a pas été atteint.-
Si la configuration du SDK n’a pas pu être récupérée mais qu’une configuration plus ancienne est disponible dans le stockage du SDK, le SDK utilise la configuration plus ancienne comme solution de repli et
initializene génère pas d’erreur. - Le SDK prend en charge un mode hors ligne.
- TypeScript
- JavaScript
Return value
Exceptions thrown
isInitialized()
La fonctionisInitialized, collectée avec le hook useInitialize, est une petite méthode utilitaire qui vérifie si l’initialisation du SDK est terminée. Par exemple, cela peut être utile lorsque vous travaillez avec une arborescence de composants profondément imbriqués, car cela vous permet de vérifier rapidement la disponibilité du SDK sans avoir à gérer un état global, ou à passer le résultat de l’initialisation via les props des composants.
- TypeScript
- JavaScript
Return value
Une valeurboolean. Renvoie true si le SDK a été initialisé avec succès, sinon renvoie false.
createClient()
Pour commencer, vous devez créer un point d’entrée pour le SDK React en créant un Kameleoon Client au niveau supérieur de votre application en utilisant la fonctioncreateClient() importée du package kameleoon.
Une instance de KameleoonClient est créée à l’aide de la fonction createClient().
- TypeScript
- JavaScript
Arguments
Un objet de typeSDKParameters contenant :
Configuration Parameters
- SDK Version 9
- SDK Version 10
Return value
Assurez-vous de ne pas utiliser plusieurs instances de client dans une seule application car cela n’est pas encore entièrement pris en charge et peut écraser la configuration du stockage local et provoquer un comportement inattendu (bugs).
Feature flags and variations
Cette section fournit les méthodes que vous utilisez pour récupérer et gérer les feature flags et variations attribués au visiteur.getVariation()
- 📨 Envoie des données de suivi à Kameleoon (selon le paramètre
track)
Variation attribuée à un visiteur donné pour un feature flag spécifique.
Cette méthode prend featureKey comme argument obligatoire et track comme argument optionnel. L’argument track est optionnel et vaut true par défaut.
Elle renvoie la Variation attribuée au visiteur. Si le visiteur n’est associé à aucune règle de feature flag, la méthode renvoie la Variation par défaut pour le feature flag donné.
Assurez-vous qu’une gestion d’erreur appropriée est implémentée dans votre code pour gérer les exceptions potentielles.
La variation par défaut fait référence à la variation attribuée à un visiteur lorsqu’il ne correspond à aucune règle de livraison prédéfinie pour un feature flag. En d’autres termes, c’est la variation de repli appliquée à tous les utilisateurs qui ne sont pas ciblés par des règles spécifiques. Elle est représentée comme la variation dans la section “Then, for everyone else…” dans une interface de gestion.
- TypeScript
- JavaScript
Arguments
Un objet de typeGetVariationParamsType avec les propriétés suivantes :
Return value
Exceptions thrown
getVariations()
- 📨 Envoie des données de suivi à Kameleoon (selon le paramètre
track) - 🎯 Events:
EventType.Evaluation
La méthode est obtenue à l’aide du hook
useFeatureFlag.Variation attribués à un visiteur donné pour tous les feature flags.
Cette méthode itère sur tous les feature flags disponibles et renvoie la Variation attribuée pour chaque flag associé au visiteur spécifié. Elle prend visitorCode comme argument obligatoire, tandis que onlyActive et track sont optionnels.
- Si
onlyActiveest défini surtrue, la méthodegetVariations()renverra les variations de feature flags à condition que l’utilisateur ne soit pas placé dans la variationoff. - Le paramètre
trackcontrôle si la méthode suivra ou non les attributions de variations. Par défaut, il est défini surtrue. S’il est défini surfalse, le suivi sera désactivé.
Variation correspondantes comme valeurs. Si aucune variation n’est attribuée pour un feature flag, la méthode renvoie la Variation par défaut pour ce flag.
Une gestion d’erreur appropriée doit être implémentée pour gérer les exceptions potentielles.
La variation par défaut fait référence à la variation attribuée à un visiteur lorsqu’il ne correspond à aucune règle de livraison prédéfinie pour un feature flag. En d’autres termes, c’est la variation de repli appliquée à tous les utilisateurs qui ne sont pas ciblés par des règles spécifiques. Elle est représentée comme la variation dans la section “Then, for everyone else…” dans une interface de gestion.
- TypeScript
- JavaScript
Arguments
Un objet de typeGetVariationsParamsType avec les propriétés suivantes :
Return value
Exceptions thrown
isFeatureFlagActive()
- 📨 Envoie des données de suivi à Kameleoon (selon le paramètre
track) - 🎯 Events:
EventType.Evaluation
isFeatureFlagActive(), utilisée avec le hook useFeatureFlag, détermine si un visiteur identifié par visitorCode a la featureKey spécifiée active. Cette méthode vérifie les conditions de ciblage, identifie la variation pour le visiteur et enregistre cette information dans le stockage. De plus, le hook envoie une requête de suivi.
Il existe également une surcharge pour cette méthode qui inclut un paramètre track, vous permettant de désactiver le suivi de l’évaluation de la fonctionnalité.
Le visiteur doit être ciblé pour que le feature flag soit actif
Kameleoon utilise le suivi pour compter les sessions et les visiteurs lorsque vous appelez certaines méthodes, telles que
isFeatureFlagActive(), getVariation() ou getVariations().Utilisez la valeur par défaut true pour le paramètre track lorsque vous exposez des visiteurs à une variation et avez besoin de les compter. Définissez le paramètre track sur false uniquement si vous appelez ces méthodes avant d’exposer les visiteurs.Par exemple, si vous appelez getVariations() pour récupérer toutes les variations avant d’exposer les visiteurs, définissez le paramètre track sur false. Ce réglage empêche Kameleoon de compter prématurément une session. Vous pouvez ensuite déclencher le suivi plus tard lorsque vous exposez explicitement le visiteur.Kameleoon envoie les données de suivi toutes les secondes par défaut. Vous pouvez configurer cet intervalle jusqu’à cinq secondes à l’aide de l’option de configuration de l’intervalle de suivi. Kameleoon regroupe les événements de suivi en une seule session tant que l’intervalle entre les événements est inférieur à 30 minutes. Si plus de 30 minutes s’écoulent entre les événements de suivi, Kameleoon compte les événements comme des sessions distinctes. Une visite apparaît dans vos rapports 30 minutes après le dernier événement enregistré dans la session.- TypeScript
- JavaScript
Arguments
Deux surcharges sont disponibles pour cette méthode :- Surcharge à deux paramètres :
- Surcharge avec paramètre objet de type
IsFeatureFlagActiveParamsType:
Return value
Exceptions thrown
setForcedVariation()
La méthode vous permet d’attribuer programmatiquement uneVariation spécifique à un utilisateur, en contournant le processus d’évaluation standard. Cela est particulièrement utile pour les expériences contrôlées où la logique d’évaluation habituelle n’est pas requise ou doit être ignorée. Cela peut également être utile dans des scénarios comme le debugging ou les tests personnalisés.
Lorsqu’une variation forced est définie, elle remplace la logique d’évaluation en temps réel de Kameleoon. Les processus tels que la segmentation, les conditions de ciblage et les calculs algorithmiques sont ignorés. Pour préserver la segmentation et les conditions de ciblage pendant une expérience, définissez forceTargeting=false à la place.
Les variations simulated ont toujours la priorité dans l’ordre d’exécution. Si un calcul de variation simulated est déclenché, il sera d’abord entièrement traité et complété.
- TypeScript
- JavaScript
Arguments
Un objet de typeSetForcedVariationParametersType avec les propriétés suivantes :
Exceptions thrown
Dans la plupart des cas, seule l’erreur de base,
KameleoonException, doit être gérée, comme démontré dans l’exemple. Cependant, si différents types d’erreurs nécessitent une réponse, gérez chacune séparément en fonction des exigences spécifiques. De plus, pour une fiabilité accrue, les erreurs générales de langage peuvent être gérées en incluant Error.evaluateAudiences()
- 📨 Envoie des données de suivi à Kameleoon
evaluateAudiences() doit être appelée après que toutes les données pertinentes du visiteur ont été définies ou mises à jour, et juste avant d’obtenir une variation de fonctionnalité ou de vérifier un feature flag. Cette approche garantit que le visiteur est évalué par rapport aux données les plus actuelles disponibles, permettant une attribution d’audience précise basée sur tous les critères.
Après avoir appelé cette méthode, vous pouvez effectuer une analyse détaillée des performances des segments dans Audiences Explorer.
- TypeScript
- JavaScript
Arguments
Exceptions thrown
Dans la plupart des cas, seule l’erreur de base,
KameleoonException, doit être gérée, comme démontré dans l’exemple. Cependant, si différents types d’erreurs nécessitent une réponse, gérez chacune séparément en fonction des exigences spécifiques. De plus, pour une fiabilité accrue, les erreurs générales de langage peuvent être gérées en incluant Error.getDataFile()
Renvoie la configuration actuelle du SDK sous forme d’objetDataFile.
- TypeScript
- JavaScript
Return value
Visitor data
Cette section fournit les méthodes que vous utilisez pour gérer les données du visiteur.getVisitorCode()
La méthodegetVisitorCode collectée à partir du hook useVisitorCode obtient un visitor code à partir du cookie du navigateur. Si le visitor code n’existe pas encore, la fonction génère un visitor code aléatoire (ou utilise la valeur defaultVisitorCode si vous en avez fourni une) et définit le nouveau visitor code dans un cookie.
La méthode
getVisitorCode() vous permet de définir des variations simulated pour un visiteur. Lorsque les cookies (d’une request ou d’un document) contiennent la clé kameleoonSimulationFFData, le processus d’évaluation standard est contourné. Au lieu de cela, la méthode renvoie directement une Variation basée sur les données fournies.Vous pouvez appliquer des simulations de deux manières :- Automatiquement (recommandé) : Si vous utilisez Web Experimentation de Kameleoon ou le SDK en mode Hybride, le cookie est créé automatiquement lors de la simulation de l’affichage d’une variante à l’aide du Simulation Panel.
- Manuellement : Définissez le cookie
kameleoonSimulationFFDatamanuellement.
- Simulated variations : affectent le résultat global du feature flag.
- Forced variations : sont spécifiques à une expérience individuelle.
kameleoonSimulationFFData suit ce format :kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: Simule la variation avecvarIdde l’expérienceexpIdpour lafeatureKeydonnée.kameleoonSimulationFFData={"featureKey":{"expId":0}}: Simule la variation par défaut (définie dans la section Then, for everyone else in Production, serve) pour lafeatureKeydonnée.
encodeURIComponent.- TypeScript
- JavaScript
Arguments
Si vous ne fournissez pas de
defaultVisitorCode et qu’aucun visitor code n’est stocké dans un cookie, le visitor code sera généré aléatoirement.Return value
Exceptions thrown
addData()
La fonctionaddData, utilisée avec le hook useData, collecte les données de ciblage à stocker pour que les autres hooks déterminent si le visiteur actuel est ciblé.
- La fonction
addData()ne renvoie aucune valeur et n’interagit pas avec les serveurs back-end de Kameleoon par elle-même. Au lieu de cela, toutes les données déclarées sont enregistrées pour une transmission future via la méthode flush. Cette approche permet de réduire le nombre d’appels au serveur effectués, car les données sont généralement regroupées en un seul appel au serveur déclenché par l’exécution de flush.
-
Les données
userAgentne seront pas stockées dans le stockage comme les autres données, et elles seront envoyées avec chaque requête de suivi pour le filtrage des bots. - Consultez la liste des conditions prises en charge pour savoir quels types de données peuvent être utilisés pour le ciblage
- TypeScript
- JavaScript
Arguments
-
kameleoonDataest un argument variadique, il peut être passé comme un ou plusieurs arguments (voir l’exemple) -
L’index ou l’ID des custom data peut être trouvé dans votre compte Kameleoon. Il est important de noter que cet index commence à
0, ce qui signifie que les premières custom data que vous créez pour un site donné se verront attribuer0comme ID, et non1.
Exceptions thrown
Consultez la référence Data types pour plus de détails sur la façon de gérer différents types de données.
flush()
- SDK Version 9
- SDK Version 10
flush() prend les données Kameleoon associées au visiteur et planifie l’envoi des données avec la prochaine requête de suivi. L’heure de la prochaine requête de suivi est définie par le paramètre trackingInterval de la configuration du SDK. Les données du visiteur peuvent être ajoutées à l’aide des méthodes addData et getRemoteVisitorData.Si vous ne spécifiez pas de visitorCode, le SDK vide toutes ses données stockées vers les serveurs Kameleoon distants. Si des requêtes de suivi précédemment échouées ont été stockées localement pendant le mode hors ligne, le SDK tente d’envoyer les requêtes stockées avant d’exécuter la dernière requête.- TypeScript
- JavaScript
Arguments
Ou un objet de type FlushParamsType, contenant :
Exceptions thrown
getRemoteData()
La méthode asynchronegetRemoteData, collectée avec le hook useData, renvoie les données stockées pour un site code spécifié sur un serveur Kameleoon distant.
Par exemple, vous pouvez utiliser cette fonction pour récupérer les préférences des utilisateurs, les données historiques ou toute autre donnée pertinente pour la logique de votre application. En stockant ces données sur nos serveurs hautement scalables à l’aide de notre [Data API], vous pouvez gérer efficacement d’énormes quantités de données et les récupérer pour chacun de vos visiteurs ou utilisateurs.
- TypeScript
- JavaScript
Arguments
Return value
Exceptions thrown
getRemoteVisitorData()
- SDK Version 9
- SDK Version 10
getRemoteVisitorData() est une méthode asynchrone pour récupérer les Kameleoon Visits Data pour le visitorCode à partir de l’API Data de Kameleoon. La méthode ajoute les données au stockage pour que d’autres méthodes les utilisent lors de la prise de décisions de ciblage.Les données obtenues à l’aide de cette méthode jouent un rôle important lorsque vous souhaitez :- utiliser des données collectées sur d’autres appareils.
- accéder à l’historique d’un utilisateur, comme les pages précédemment visitées lors de visites passées.
- utiliser des données qui ne sont accessibles que côté client, comme les variables datalayer et les goals qui ne convertissent que sur le front-end.
- TypeScript
- JavaScript
Arguments
Un objet de typeRemoteVisitorDataParamsType contenant :Return value
Exceptions thrown
Using parameters in getRemoteVisitorData()
La méthodegetRemoteVisitorData() offre de la flexibilité en vous permettant de définir divers paramètres lors de la récupération des données sur les visiteurs. Que vous cibliez sur la base d’objectifs, d’expériences ou de variations, la même approche s’applique à tous les types de données.Par exemple, supposons que vous souhaitiez récupérer des données sur les visiteurs qui ont complété un objectif “Order transaction”. Vous pouvez spécifier des paramètres dans la méthode getRemoteVisitorData() pour affiner votre ciblage. Par exemple, si vous souhaitez cibler uniquement les utilisateurs qui ont converti sur l’objectif lors de leurs cinq dernières visites, vous pouvez définir le paramètre previousVisitAmount sur 5 et conversions sur true.La flexibilité montrée dans cet exemple n’est pas limitée aux données d’objectifs. Vous pouvez utiliser des paramètres dans la méthode getRemoteVisitorData() pour récupérer des données sur une variété de comportements de visiteurs.Voici la liste des filtres
VisitorDataFiltersType disponibles :getVisitorWarehouseData()
La méthode asynchronegetVisitorWarehouseAudience collectée avec le hook useData récupère toutes les données d’audience associées au visiteur dans votre data warehouse à l’aide des visitorCode et warehouseKey spécifiés. Le warehouseKey est généralement votre ID d’utilisateur interne. Le paramètre customDataIndex correspond à la custom data Kameleoon utilisée par Kameleoon pour cibler vos visiteurs. Consultez la documentation sur le ciblage warehouse pour plus de détails.
- TypeScript
- JavaScript
Arguments
Objet de paramètres composé de :Return value
Exceptions thrown
setLegalConsent()
La méthodesetLegalConsent, collectée avec le hook useVisitorCode, spécifie si le visiteur a donné son consentement légal à l’utilisation de données personnelles. Définir le paramètre legalConsent sur false limite les types de données que vous pouvez inclure dans les requêtes de suivi. Cela vous aide à respecter les exigences légales et réglementaires tout en gérant de manière responsable les données des visiteurs. Vous pouvez trouver plus d’informations sur les données personnelles dans la politique de gestion du consentement.
- Les informations de consentement sont synchronisées entre le moteur Kameleoon (fichier d’application engine.js) et le SDK React. Cette synchronisation signifie qu’une fois le consentement défini sur le moteur ou le SDK, il est automatiquement défini pour les deux. Cette fonctionnalité élimine le besoin de gestion manuelle du consentement et garantit que les SDK fonctionnent conformément aux préférences des utilisateurs.
- Lors de la gestion du consentement légal, il est important d’utiliser la méthode
getVisitorCode. De plus,getVisitorCoden’accepte pasdomaincomme argument. Au lieu de cela, passez-le à la fonctioncreateClient.
- TypeScript
- JavaScript
Arguments
Exceptions thrown
Consent revocation behavior
Lorsque vous appelezsetLegalConsent() avec consent=false, le SDK ne supprime pas le cookie kameleoonVisitorCode. Au lieu de cela, il arrête de prolonger la date d’expiration du cookie, permettant au cookie de persister jusqu’à son expiration naturelle.
Si vos exigences de conformité demandent la suppression immédiate du fichier de cookie lors de l’opt-out, vous devez le supprimer manuellement à l’aide des méthodes natives de gestion des cookies de votre framework. Le SDK ne supprimera pas le fichier automatiquement.
Goals and third-party analytics
Cette section fournit les méthodes que vous utilisez pour suivre lorsqu’une action d’un visiteur atteint l’un de vos objectifs (une conversion).trackConversion()
- SDK Version 9
- SDK Version 10
- 📨 Envoie des données de suivi à Kameleoon
trackConversion(), utilisée avec le hook useData, crée et ajoute des données Conversion au visiteur avec les paramètres spécifiés et exécute flush().Utilisez cette méthode pour suivre une conversion pour un objectif spécifique et un utilisateur. Cette méthode nécessite visitorCode et goalId. De plus, cette méthode accepte également des arguments optionnels revenue, negative et metadata. Le visitorCode est généralement identique à celui utilisé lors du déclenchement de l’expérience.La méthode trackConversion() ne renvoie aucune valeur. Cette méthode est non bloquante car l’appel au serveur est effectué de manière asynchrone.- TypeScript
- JavaScript
Arguments
Objet de paramètres composé de :Les valeurs de métadonnées sont accessibles via les exports de données brutes et la page de résultats.Si le paramètre
metadata est fourni, Kameleoon utilisera ces valeurs spécifiées pour la conversion actuelle au lieu de ce qui a été précédemment collecté à l’aide de la méthode addData(). Si le paramètre est omis, Kameleoon utilisera les dernières valeurs suivies pour ces CustomData avant la conversion et au cours de la même visite.Kameleoon ne prendra en compte que les valeurs de métadonnées explicitement passées en paramètres à la méthode trackConversion().Dans l’exemple ci-dessous, Kameleoon associera la conversion uniquement à la valeur de custom data explicitement fournie en paramètre (ici : index 5 avec la valeur ‘Amex Credit Card’).- TypeScript
- JavaScript
Exceptions thrown
getEngineTrackingCode()
Kameleoon s’intègre à plusieurs solutions d’analytique, notamment Mixpanel, Google Analytics 4 et Segment. Pour suivre correctement les expériences côté serveur, appelez la méthodegetEngineTrackingCode() après que le visiteur a déclenché une expérience. Le SDK renvoie les commandes de la file d’attente JavaScript pour les expériences que le visiteur a déclenchées au cours des cinq dernières secondes. Lorsque vous insérez ce code dans la page, Engine.js traite les commandes et envoie les événements d’exposition via l’intégration analytique active.
Reportez-vous à l’expérimentation hybride pour plus d’informations sur l’implémentation de cette méthode.
- TypeScript
- JavaScript
-
Pour utiliser cette fonctionnalité, implémentez à la fois le SDK React et Kameleoon Engine.js. Comme Engine.js est utilisé uniquement pour le suivi dans ce flux, vous pouvez installer le tag asynchrone avant la balise fermante
</body>. -
Vous pouvez insérer le code de suivi renvoyé directement dans une balise HTML
<script>.
123456 et 234567 sont des IDs d’expérience, et 7890 et 8901 sont des IDs de variation. Dans votre implémentation, le SDK génère ces valeurs dans le code de suivi renvoyé.Arguments
Return value
Exceptions thrown
Events
Cette section fournit les méthodes que vous utilisez pour gérer les événements.- SDK Version 10
onEvent()
La méthodeonEvent, collectée avec le hook useInitialize, déclenche un callback lorsqu’un événement spécifique est déclenché. La fonction callback a accès aux données associées à l’événement. Les méthodes du SDK dans cette documentation indiquent quels types d’événements elles peuvent déclencher, le cas échéant.- TypeScript
- JavaScript
Vous ne pouvez attribuer qu’un seul callback à chaque
EventType.Events
Les événements sont définis dans l’enumEventType. Selon le type d’événement, le paramètre eventData aura un type différent.Arguments
Exceptions thrown
Sending exposure events to external tools
Kameleoon offre des intégrations natives avec diverses solutions d’analytique et de CDP, telles que Mixpanel, Google Analytics 4, Segment…. Pour garantir que vous pouvez suivre et analyser vos expériences côté serveur, Kameleoon fournit une méthodegetEngineTrackingCode() qui renvoie le code JavaScript à insérer dans votre page pour envoyer automatiquement les événements d’exposition à la solution d’analyse que vous utilisez. Le SDK construit un code de suivi pour votre solution d’analyse active en fonction des expériences que le visiteur a déclenchées au cours des 5 dernières secondes.
Pour plus d’informations sur l’expérimentation hybride, veuillez consulter cette documentation.Pour bénéficier de cette fonctionnalité, vous devrez implémenter à la fois le SDK React et notre tag JavaScript Kameleoon. Nous vous recommandons d’implémenter le [tag asynchrone Kameleoon], que vous pouvez installer avant votre balise fermante
<body> dans votre page HTML, car il ne sera utilisé qu’à des fins de suivi.Data types
Les types de Data Kameleoon sont des classes d’aide utilisées pour stocker des données dans le stockage sous des formes prédéfinies. Lors de l’exécution de flush, le SDK collecte toutes les données et les envoie avec la requête de suivi. Les données disponibles dans le SDK ne sont pas disponibles pour le ciblage et le reporting dans l’application Kameleoon tant que vous n’ajoutez pas les données. Par exemple, en utilisant la méthodeaddData().
Voir use visit history to target users pour plus d’informations.
Si vous utilisez le mode hybride, vous pouvez appeler
getRemoteVisitorData() pour remplir automatiquement toutes les données que Kameleoon a précédemment collectées.Browser
Depuis le SDK React
10.11.0, Browser est automatiquement détecté en fonction de la chaîne User-Agent. Cependant, vous pouvez toujours le remplacer manuellement si nécessaire.Chaque visiteur ne peut avoir qu’un seul
Browser. Ajouter un deuxième Browser écrase le premier.- TypeScript
- JavaScript
UniqueIdentifier
Les donnéesUniqueIdentifier sont utilisées comme marqueur pour l’identification unique du visiteur.
Si vous ajoutez UniqueIdentifier pour un visiteur, le visitorCode est utilisé comme identifiant unique du visiteur, ce qui est utile pour l’expérimentation cross-device. Associer un UniqueIdentifier à un visiteur indique au SDK que le visiteur est lié à un autre visiteur.
L’UniqueIdentifier peut également être utile dans d’autres scénarios particuliers, comme lorsque vous ne pouvez pas accéder au visitorCode anonyme initialement attribué au visiteur, mais que vous avez accès à un ID interne connecté au visiteur anonyme grâce aux fonctionnalités de fusion de sessions.
Chaque visiteur ne peut avoir qu’un seul
UniqueIdentifier. Ajouter un autre UniqueIdentifier écrase le premier.- TypeScript
- JavaScript
Conversion
L’ensemble de donnéesConversion stocké ici peut être utilisé pour filtrer les rapports d’expériences et de personnalisations par n’importe quel objectif qui lui est associé.
ConversionParametersType conversionParameters - un objet avec les paramètres de conversion décrits ci-dessous
- TypeScript
- JavaScript
Cookie
Cookie contient des informations sur le cookie stocké sur l’appareil du visiteur.
-
En général, le SDK React tentera d’utiliser un cookie
localStoragepour les conditions. Si ce n’est pas possible, le SDK peut utiliser les donnéesCookiecomme alternative. -
Chaque visiteur ne peut avoir qu’un seul
Cookie. Ajouter un deuxièmeCookieécrase le premier.
- TypeScript
- JavaScript
Methods
Les donnéesCookie ont une méthode utilitaire statique fromString que vous pouvez utiliser pour créer un cookie instantanément en analysant une chaîne qui contient des données de cookie valides.
La méthode accepte une string en paramètre et renvoie une instance Cookie initialisée.
- TypeScript
- JavaScript
GeolocationData
GeolocationData contient les détails de géolocalisation du visiteur
Chaque visiteur ne peut avoir qu’un seul
GeolocationData. Ajouter un deuxième GeolocationData écrase le premier.GeolocationInfoType contenant les champs suivants :
- TypeScript
- JavaScript
CustomData
Pour conserver les custom data pour les visites futures, le SDK transmetCustomData avec un scope Visitor lors de la prochaine requête de suivi. Vous pouvez configurer le scope dans les paramètres des données sur le dashboard custom data.
CustomData vous permet d’associer facilement n’importe quel type de données à chaque visiteur. Ces données peuvent ensuite être utilisées comme condition de ciblage dans les segments ou comme filtre ou breakdown dans les rapports d’expériences.
Pour plus d’informations sur les custom data, veuillez consulter cet article.
-
Chaque visiteur n’est autorisé qu’à un seul
CustomDatapour chaqueindexunique. Ajouter un autreCustomDataavec le mêmeindexremplacera l’existant. - L’« index » de la custom data peut être trouvé dans le dashboard Custom Data sous la colonne « INDEX ».
- Pour empêcher le SDK d’envoyer des données avec l’index sélectionné aux serveurs Kameleoon pour des raisons de confidentialité, activez l’option : Use this data only locally for targeting purposes lors de la création de la custom data.
-
Ajouter une instance
CustomDatacréée avec un nom alors que l’instance SDK n’est pas initialisée ou que le nom n’est pas enregistré, entraînera l’ignorance des données.
- TypeScript
- JavaScript
Device
Depuis le SDK React
10.11.0, Device est automatiquement détecté en fonction de la chaîne User-Agent. Cependant, vous pouvez toujours le remplacer manuellement si nécessaire.React Native : La prise en charge de cette fonctionnalité est actuellement expérimentale et peut nécessiter des ajustements pour fonctionner correctement. Dans React Native, le Device est automatiquement détecté en fonction du DPI de react-native.Dimensions.Chaque visiteur ne peut avoir qu’un seul
Device. Ajouter un deuxième Device écrase le premier.- TypeScript
- JavaScript
OperatingSystem
Depuis le SDK React
10.11.0, OperatingSystem est automatiquement détecté en fonction de la chaîne User-Agent. Cependant, vous pouvez toujours le remplacer manuellement si nécessaire.React Native : La prise en charge de cette fonctionnalité est actuellement expérimentale et peut nécessiter des ajustements pour fonctionner correctement. Dans React Native, l’OperatingSystem est automatiquement détecté en fonction de react-native.Platform.OperatingSystem contient les informations du système d’exploitation du visiteur.
Chaque visiteur ne peut avoir qu’un seul
OperatingSystem. Ajouter un deuxième OperatingSystem écrase le précédent.- TypeScript
- JavaScript
PageView
Depuis le SDK React
10.11.0, PageView est automatiquement détecté en fonction de window.location?.href et document.title. Cependant, vous pouvez toujours le remplacer manuellement si nécessaire.React Native : La prise en charge de cette fonctionnalité est actuellement expérimentale et peut nécessiter des ajustements pour fonctionner correctement.Chaque visiteur peut avoir un
PageView par URL unique. Ajouter un PageView avec la même URL qu’un existant informera le SDK que le visiteur a revisité la pagePageViewParametersType pageViewParameters - un objet avec les paramètres de vue de page décrits ci-dessous
- TypeScript
- JavaScript
UserAgent
Stocke les informations sur le user-agent du visiteur. Les expériences côté serveur sont plus vulnérables au trafic des bots que les expériences côté client. Pour résoudre ce problème, Kameleoon utilise la liste IAB/ABC International Spiders and Bots List pour identifier les bots et spiders connus. Kameleoon utilise également le champUserAgent pour filtrer les bots et autre trafic indésirable qui pourrait autrement fausser vos métriques de conversion. Pour plus de détails, consultez l’article d’aide sur le filtrage des bots.
Si vous utilisez des bots internes, nous vous suggérons de passer la valeur curl/8.0 du userAgent pour les exclure de nos analytiques.
Un visiteur ne peut avoir qu’un seul
UserAgent. Ajouter un deuxième UserAgent écrase le premier.- TypeScript
- JavaScript
ApplicationVersion
ApplicationVersion représente le numéro de version sémantique de votre application.
- TypeScript
- JavaScript
Returned Types
DataFile
LeDataFile contient les détails de configuration du SDK.
Il peut être étendu avec des informations supplémentaires si nécessaire pour les clients. Si vous avez besoin de plus de détails, veuillez contacter votre Customer Success Manager.
- TypeScript
- JavaScript
FeatureFlag
LeFeatureFlag représente un ensemble de propriétés qui définissent un feature flag lui-même — par exemple, ses Variations, Rules, statut d’environnement et autres détails associés.
Il peut être étendu avec des informations supplémentaires si nécessaire pour les clients. Si vous avez besoin de plus de détails, veuillez contacter votre Customer Success Manager.
- TypeScript
- JavaScript
Rule
LaRule représente un ensemble de propriétés qui définissent une règle elle-même — par exemple, ses Variations.
Elle peut être étendue avec des informations supplémentaires si nécessaire pour les clients. Si vous avez besoin de plus de détails, veuillez contacter votre Customer Success Manager.
- TypeScript
- JavaScript
Variation
Variation contient des informations sur la variation attribuée au visiteur (ou la variation par défaut, si aucune attribution spécifique n’existe).
- Assurez-vous que votre code gère le cas où
idouexperimentIdpeut êtrenull, indiquant une variation par défaut. - La map
variablespeut être vide si aucune variable n’est associée à la variation.
- TypeScript
- JavaScript
Variable
Variable contient des informations sur une variable associée à la variation attribuée.
- TypeScript
- JavaScript
Deprecated methods
getFeatureFlagVariationKey()
- 📨 Envoie des données de suivi à Kameleoon
- 🎯 Events:
EventType.Evaluation
Utilisez la méthode
getVariation.getFeatureFlagVariationKey(), qui est utilisée avec le hook useFeatureFlag, récupère la clé de variation pour un visiteur identifié par son visitorCode. Ce processus inclut la vérification des critères de ciblage, l’identification de la variation appropriée attribuée au visiteur, le stockage de ces informations, et l’envoi d’une requête de suivi.
Si un utilisateur n’a jamais été associé à un feature flag, le SDK renverra aléatoirement une clé de variation selon les règles de ce feature flag. Si l’utilisateur est déjà lié au feature flag, le SDK identifiera la clé de variation précédemment attribuée. Si l’utilisateur ne correspond à aucune des règles spécifiées, le SDK renverra la valeur par défaut définie dans les règles de livraison du feature flag de Kameleoon. Il est important de noter que la valeur par défaut peut ne pas toujours être une clé de variation ; il peut également s’agir d’une valeur booléenne ou d’un autre type de données, selon la configuration du feature flag.
- TypeScript
- JavaScript
Arguments
Return value
Exceptions thrown
getVisitorFeatureFlags()
- 🚫 N’envoie pas de données de suivi à Kameleoon
- 🎯 Events:
EventType.Evaluation(pour chaque feature flag)
Utilisez la méthode
getVariations.getVisitorFeatureFlags, utilisée avec le hook useFeatureFlag, renvoie une liste de feature flags actifs qui ciblent le visiteur associé au visitorCode (le visiteur doit avoir l’une des variations allouées).
- TypeScript
- JavaScript
Arguments
Return value
Exceptions thrown
getActiveFeatureFlags()
- 🚫 N’envoie pas de données de suivi à Kameleoon
- 🎯 Events:
EventType.Evaluation(pour chaque feature flag)
Utilisez la méthode
getVariations.getActiveFeatureFlags, collectée avec le hook useFeatureFlag, renvoie une Map, où la clé est la clé de fonctionnalité et la valeur est l’information détaillée sur la variation du visiteur et ses variables
- TypeScript
- JavaScript
Arguments
Return value
Exceptions thrown
getFeatureFlagVariable()
- 📨 Envoie des données de suivi à Kameleoon
- 🎯 Events:
EventType.Evaluation
Utilisez la méthode
getVariation.getFeatureFlagVariable, collectée avec le hook useFeatureFlag, renvoie une variable pour le visiteur sous visitorCode dans le feature flag trouvé ; cela inclut la vérification du ciblage, la recherche de la variation correspondante exposée au visiteur et son enregistrement dans le stockage en même temps que l’envoi de la requête de suivi.
- TypeScript
- JavaScript
Arguments
Objet de paramètres de typeGetFeatureFlagVariableParamsType contenant les champs suivants :
Return value
Exceptions thrown
getFeatureFlagVariables()
- 📨 Envoie des données de suivi à Kameleoon
- 🎯 Events:
EventType.Evaluation(pour chaque feature flag)
Utilisez la méthode
getVariations.getFeatureFlagVariables, collectée avec le hook useFeatureFlag, renvoie une liste de variables pour le visiteur sous visitorCode dans le feature flag trouvé ; cela inclut la vérification du ciblage, la recherche de la variation correspondante exposée au visiteur et son enregistrement dans le stockage en même temps que l’envoi de la requête de suivi.
- TypeScript
- JavaScript
Arguments
Return value
Exceptions thrown
onConfigurationUpdate()
Utilisez plutôt la méthode
onEvent avec EventType.ConfigurationUpdate.onConfigurationUpdate collectée avec le hook useInitialize déclenche un callback lors d’une mise à jour de la configuration du client.
Ce hook ne fonctionne que pour les server sent events de mise à jour en temps réel
- TypeScript
- JavaScript
Arguments
Exceptions thrown
getFeatureFlags()
🚫 N’envoie pas de données de suivi à Kameleoon La méthodegetFeatureFlags collectée avec le hook useFeatureFlag renvoie une liste de feature flags stockés dans la configuration client.
- TypeScript
- JavaScript