Guide du développeur
Premiers pas
Ce guide est conçu pour vous aider à intégrer notre SDK dans vos applications C#.Kit de démarrage
Pour vous aider à démarrer, Kameleoon fournit un kit de démarrage et une application de démonstration pour tester le SDK. Le kit de démarrage inclut une application entièrement configurée avec des exemples montrant comment les méthodes du SDK peuvent être utilisées dans une application. Le kit de démarrage, l’application de démonstration et les instructions détaillées sont disponibles sur Starter kit for .NET.Installer le client C#
Vous pouvez utiliser le gestionnaire de paquets NuGet, .NET CLI ou Paket pour installer le client C#.- NuGet Package Manager
- .NET CLI
- Paket CLI
Configuration supplémentaire
Créez un fichier de configuration.properties pour fournir les identifiants et personnaliser le comportement du SDK. Vous pouvez également télécharger un exemple de configuration. Enregistrez ce fichier dans le chemin par défaut /etc/kameleoon/client-csharp.conf. Si vous placez le fichier à un autre emplacement, vous devrez passer le chemin en argument à KameleoonClientFactory.Create(). Avec la version actuelle du SDK C#, voici les clés disponibles :
Initialiser le client Kameleoon
Après avoir installé le SDK et configuré vos identifiants et le comportement du SDK, créez le client Kameleoon dans le code de votre application. Par exemple :IKameleoonClient est un objet singleton qui connecte votre application à la plateforme Kameleoon. Il inclut toutes les méthodes et fonctionnalités dont vous avez besoin pour exécuter une expérience.
En tant que développeur, vous devez vous assurer que votre application utilise la logique correcte pour les A/B tests avec Kameleoon. Il est préférable d’exclure un visiteur de l’expérience si vous ne l’avez pas encore lancée. Exclure est simple car cela correspond à la logique par défaut des variations.
Activer un feature flag
Attribuer un identifiant unique à un utilisateur
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 la 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 la réponse.
Si vous utilisez Kameleoon en mode hybride, appeler 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.
Récupérer une configuration de flag
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 IsFeatureActive() afin de récupérer la configuration basée sur le 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 du feature, en attribuant la variation et en la renvoyant en fonction du featureKey et du visitorCode.
La méthode IsFeatureActive() 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 à des feature flags plus complexes avec plusieurs variations ou options de ciblage.
Si votre feature flag a des variables associées (comme 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 déclenchée automatiquement 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 vous fier au suivi côté client géré par le moteur Kameleoon, par exemple. De plus, définir track=false est utile lorsque vous utilisez la méthode GetVariations(), où vous pourriez uniquement avoir besoin des variations pour tous les flags sans déclencher d’événements de suivi. Si vous voulez en savoir plus sur le fonctionnement du suivi, consultez cet article.
Ajouter des points de données pour cibler un utilisateur ou filtrer / segmenter les visites dans les rapports
Pour cibler un utilisateur, assurez-vous d’avoir ajouté des points de données pertinents à son profil avant de récupérer la variation du feature 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 de manière asynchrone les données depuis les 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é sur le 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 segmenter vos résultats par des 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, ce qui facilite la segmentation de vos résultats en fonction de ces points de données pré-collectés. Consultez 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 l’exactitude de vos résultats, il est recommandé de filtrer les bots en utilisant le type de données
UserAgent.Suivre les conversions d’objectif
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.
Envoyer des événements aux solutions d’analyse
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 requis 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 vers la plateforme d’analyse de votre choix.
Expérimentation cross-device
Pour prendre en charge les visiteurs qui accèdent à une application depuis plusieurs appareils, Kameleoon permet la synchronisation des données visiteur précédemment collectées sur chacun des appareils du visiteur et la réconciliation de leur historique de visite entre les appareils grâce à 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 les appareils sont disponibles dans l’article sur l’expérimentation cross-device.Synchroniser les custom data entre appareils
Bien que la synchronisation de mappage personnalisé soit utilisée pour aligner les données visiteur entre les appareils, ce n’est pas toujours nécessaire. Vous trouverez ci-dessous deux scénarios dans lesquels la synchronisation de mappage personnalisé 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 mappage 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 IDs cohérents
Dans les configurations complexes impliquant plusieurs serveurs (par exemple, des instances de serveur distribuées), où le même ID utilisateur est disponible sur les serveurs, la synchronisation entre serveurs (avec GetRemoteVisitorData()) est suffisante sans synchronisation de mappage personnalisé supplémentaire.
Les clients qui ont besoin de données supplémentaires peuvent se référer à la description de la méthode GetRemoteVisitorData() pour plus d’instructions. Dans le code ci-dessous, on suppose 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 la portée Visitor pour vos custom data.
Device A
Device B
Utiliser les custom data pour la fusion de sessions
L’expérimentation cross-device permet de combiner l’historique d’un visiteur entre chacun de ses appareils (réconciliation d’historique). La réconciliation d’historique permet de fusionner différentes sessions visiteur en une seule. Pour réconcilier l’historique de visite, utilisezCustomData pour fournir un identifiant unique pour le visiteur. Pour plus d’informations, consultez la documentation dédiée.
Une fois la réconciliation cross-device activée, appeler GetRemoteVisitorData() avec le paramètre userId récupère toutes les données connues pour un utilisateur donné.
Les sessions avec le même identifiant verront toujours la même variation dans une expérience. Dans la vue Visitor des pages de résultats de votre expérience, ces sessions apparaîtront comme un seul visiteur.
La configuration du SDK garantit que les sessions associées voient toujours la même variation de l’expérience. Cependant, il existe certaines limitations concernant l’allocation de variation cross-device. Ces limitations sont décrites ici.
Suivez le guide activating cross-device history reconciliation pour configurer vos custom data sur la plateforme Kameleoon.
Ensuite, vous pouvez utiliser le SDK normalement. Les méthodes suivantes peuvent être utiles dans le contexte de la fusion de sessions :
GetRemoteVisitorData()avecUniqueIdentifier(true)ajouté - pour récupérer les données de tous les visiteurs liés.TrackConversion()ouFlush()avecUniqueIdentifier(true)ajouté - pour suivre certaines données pour un visiteur spécifique qui est associé à un autre visiteur.
GetVisitorCode() est utilisé. Une fois l’utilisateur connecté, le visiteur anonyme est associé à l’ID utilisateur et utilisé comme identifiant unique pour le visiteur.
Utiliser une clé de bucketing personnalisée
Par défaut, Kameleoon utilise un ID 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 SDKs côté client et côté serveur — dans un stockage persistant pour les SDKs mobiles). Cependant, dans certains scénarios, vous pouvez avoir besoin de vous assurer 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. Cette substitution garantit que la logique d’attribution de Kameleoon utilise votre clé spécifiée au lieu du visitorCode par défaut.
Cas d’utilisation
L’utilisation d’une clé de bucketing personnalisée est essentielle 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 organisationnel : pour les produits B2B ou les scénarios où vous voulez attribuer tous les utilisateurs d’une même organisation à la même variation, vous pouvez utiliser un identifiant comme un
accountId. Les clés de bucketing personnalisées sont cruciales pour les A/B tests des fonctionnalités qui impactent toute une équipe ou entreprise.
Détails techniques
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 hachage pour attribuer les utilisateurs aux variations utiliseront cenewVisitorCode(votre clé personnalisée) au lieu duvisitorCodepar défaut. L’utilisation dunewVisitorCodesignifie que la décision de bucketing est liée à votre identifiant personnalisé, garantissant des attributions cohérentes dans différents contextes où cet identifiant est présent. - Suivi des données et analyse : il est crucial 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 analyses reflètent avec précision les parcours utilisateur individuels et les interactions dans le contexte plus large de votre expérience, même lorsque le bucketing est effectué à un niveau supérieur (comme un compte) ou sur plusieurs appareils/sessions. Vos données visiteur originales restent intactes pour des rapports complets.
Exigences techniques
Pour utiliser efficacement une clé de bucketing personnalisée :- La clé doit être une
string. - Elle doit être unique pour l’entité que vous souhaitez 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 du feature flag est évaluée pour cet utilisateur ou cette requête.
Conditions de ciblage
Les SDKs 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.Journalisation
Le SDK génère des logs pour refléter divers processus internes et problèmes.Niveaux de log
Le SDK prend en charge la configuration de la limitation de la journalisation par niveau de log.Gestion personnalisée des logs
Le SDK écrit ses logs dans la sortie console par défaut. Ce comportement peut être remplacé.La limitation de la journalisation par niveau de log est effectuée séparément de la logique de gestion des logs.
Référence
Voici la documentation de référence complète du SDK C#.Initialisation
Create()
Pour commencer à utiliser le SDK, vous devez l’initialiser. Votre application interagit avec le SDK via la classeKameleoonClient qui se trouve dans Kameleoon.IKameleoonClient. Vous pouvez créer cet objet en utilisant la méthode statique Kameleoon.KameleoonClientFactory Create().
Arguments
Valeur de retour
Exceptions levées
WaitInit()
WaitInit() attend l’initialisation du client Kameleoon. Cette méthode vous permet de vérifier que le client a été initialisé avec succès avant de procéder à d’autres opérations.
Valeur de retour
Exceptions levées
Feature flags et variations
IsFeatureActive()
- 📨 Envoie des données de suivi à Kameleoon (selon le paramètre
track)
Cette méthode était précédemment appelée
ActivateFeature, qui a été supprimée dans la version 4.0.0 du SDK.IsFeatureActive.
Cette méthode nécessite un visitorCode et un featureKey (ou featureID) pour vérifier si un utilisateur peut accéder à une fonctionnalité spécifique.
Si l’utilisateur n’a jamais été lié à cette fonctionnalité, le SDK décidera aléatoirement de l’activer, renvoyant true (l’utilisateur peut accéder à la fonctionnalité) ou false (l’utilisateur ne le peut pas). Si l’utilisateur avec le visitorCode donné est déjà lié à cette fonctionnalité, le système renverra la valeur précédente du featureFlag.
Assurez-vous d’inclure une gestion appropriée des erreurs dans votre code, comme indiqué dans l’exemple, pour capturer toute erreur potentielle.
Si vous spécifiez un visitorCode, la méthode IsFeatureActive() l’utilise comme identifiant unique du visiteur, ce qui est utile pour l’expérimentation cross-device. Lorsque vous spécifiez un visitorCode et définissez le paramètre isUniqueIdentifier sur true, le SDK lie les données vidées au visiteur associé à l’identifiant spécifié.
Le paramètre
isUniqueIdentifier est obsolète. Veuillez utiliser UniqueIdentifier à la place.Le isUniqueIdentifier peut être utile dans des situations particulières ; par exemple, si vous ne pouvez pas accéder au visitorCode anonyme attribué à un visiteur, mais que vous pouvez utiliser un ID interne lié à ce visiteur via la fusion de sessions.Kameleoon utilise le suivi pour compter les sessions et les visiteurs lorsque vous appelez certaines méthodes, telles que
IsFeatureActive(), GetVariation() ou GetVariations().Utilisez la valeur par défaut true pour le paramètre track lorsque vous exposez des visiteurs à une variation et que vous devez 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 paramètre 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 en utilisant 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.Arguments
Valeur de retour
Exceptions levées
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 visitorCode et featureKey comme arguments obligatoires. 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 que la gestion appropriée des erreurs 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 delivery 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.
Arguments
Valeur de retour
Exceptions levées
GetVariations()
- 📨 Envoie des données de suivi à Kameleoon (selon le paramètre
track)
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 des feature flags à condition que l’utilisateur ne soit pas bucketé avec la variationoff. - Le paramètre
trackcontrôle si la méthode suivra ou non les attributions de variation. Par défaut, il est défini surtrue. S’il est défini surfalse, le suivi sera désactivé.
Variation correspondante 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 appropriée des erreurs 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 delivery 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.
Arguments
Valeur de retour
Exceptions levées
GetFeatureList()
Cette méthode était précédemment nommée
ObtainFeatureList(), qui a été supprimée dans la version 4.0.0 du SDK.Valeur de retour
SetForcedVariation()
La méthode vous permet d’attribuer par programme uneVariation spécifique à un utilisateur, en contournant le processus d’évaluation standard. Cela est particulièrement précieux 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 tels que le débogage ou les tests personnalisés.
Lorsqu’une variation forcée est définie, elle remplace la logique d’évaluation en temps réel de Kameleoon. Les processus comme 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 simulées ont toujours la priorité dans l’ordre d’exécution. Si un calcul de variation simulée est déclenché, il sera entièrement traité et complété en premier.
Arguments
Exceptions levées
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 du langage peuvent être gérées en incluant Exception.EvaluateAudiences()
- 📨 Envoie des données de suivi à Kameleoon
EvaluateAudiences() doit être appelée après que toutes les données visiteur pertinentes ont été définies ou mises à jour, et juste avant d’obtenir une variation de feature 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 précise d’audience 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.
Arguments
Exceptions levées
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 du langage peuvent être gérées en incluant Exception.GetDataFile()
Valeur de retour
Données visiteur
GetVisitorCode()
Cette méthode était précédemment appelée
ObtainVisitorCode, qui a été supprimée dans la version 4.0.0 du SDK.GetVisitorCode(). Cette méthode est cruciale dans les environnements où les systèmes front-end et back-end doivent identifier les utilisateurs de manière cohérente. Voici comment cela fonctionne :
- Vérifiez la présence d’un cookie kameleoonVisitorCode ou d’un paramètre de requête dans la requête HTTP actuelle. Si vous en trouvez un, utilisez-le comme identifiant du visiteur et passez à l’étape suivante.
- Si vous ne trouvez pas de cookie ou de paramètre, créez aléatoirement un nouvel identifiant ou utilisez l’argument defaultVisitorCode s’il est fourni. Cela vous permet d’utiliser vos identifiants comme visitor codes, ce qui facilite la connexion des visiteurs Kameleoon à vos propres utilisateurs sans nécessiter de recherches supplémentaires.
- Définissez le cookie côté serveur kameleoonVisitorCode à l’aide de la valeur de l’identifiant. La méthode renvoie cette valeur d’identifiant.
La méthode
GetVisitorCode() vous permet de définir des variations simulées pour un visiteur. Lorsque les cookies (d’une requête ou d’un document) contiennent la clé kameleoonSimulationFFData, le processus d’évaluation standard est contourné. À la place, la méthode renvoie directement une Variation basée sur les données fournies.Vous pouvez appliquer les simulations de deux manières :- Automatiquement (recommandé) : si vous utilisez Kameleoon Web Experimentation 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 manuellement le cookie
kameleoonSimulationFFData.
- Variations simulées : affectent le résultat global du feature flag.
- Variations forcées : sont spécifiques à une expérience individuelle.
kameleoonSimulationFFData suit ce format :kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: simule la variation avecvarIdde l’expérienceexpIdpour lefeatureKeydonné.kameleoonSimulationFFData={"featureKey":{"expId":0}}: simule la variation par défaut (définie dans la section Then, for everyone else in Production, serve) pour lefeatureKeydonné.
encodeURIComponent.Arguments
Valeur de retour
Exceptions levées
AddData()
La méthodeAddData() ajoute des données de ciblage au stockage afin que d’autres méthodes puissent utiliser ces données pour décider de cibler ou non le visiteur actuel.
La méthode AddData() ne renvoie aucune valeur et n’interagit pas seule avec les serveurs back-end de Kameleoon. Au lieu de cela, toutes les données déclarées sont enregistrées pour une transmission future à l’aide de la méthode Flush(). Cette approche réduit le nombre d’appels serveur effectués, car les données sont généralement regroupées en un seul appel serveur déclenché par Flush().
La méthode TrackConversion() envoie également toutes les données précédemment associées, tout comme Flush(). Il en va de même pour les méthodes GetVariation() et GetVariations() si une règle d’expérimentation est déclenchée.
Arguments
Exceptions
Flush()
- 📨 Envoie des données de suivi à Kameleoon
Flush() collecte les données Kameleoon liées au visiteur. Elle envoie ensuite une requête de suivi avec toutes les données précédemment ajoutées via la méthode AddData, qui n’ont pas encore été envoyées via l’une de ces méthodes. Flush() est non bloquant car l’appel serveur est effectué de manière asynchrone.
Flush() vous permet de contrôler quand les données associées à un visitorCode donné sont envoyées à nos serveurs. Par exemple, si vous appelez AddData() une douzaine de fois, il serait inefficace d’envoyer des données au serveur après chaque appel à AddData(), donc tout ce que vous avez à faire est d’appeler Flush() une fois à la fin.
Si vous spécifiez un visitorCode, la méthode Flush() l’utilise comme identifiant unique du visiteur, ce qui est utile pour l’expérimentation cross-device. Lorsque vous spécifiez un visitorCode et définissez le paramètre isUniqueIdentifier sur true, le SDK lie les données vidées au visiteur associé à l’identifiant spécifié.
Le paramètre
isUniqueIdentifier est obsolète. Veuillez utiliser UniqueIdentifier à la place.Le isUniqueIdentifier peut être utile dans des situations particulières ; par exemple, si vous ne pouvez pas accéder au visitorCode anonyme attribué à un visiteur, mais que vous pouvez utiliser un ID interne lié à ce visiteur via la fusion de sessions.Arguments
GetRemoteData()
Cette méthode était précédemment nommée
RetrieveDataFromRemoteSource, qui a été supprimée dans la version 4.0.0 du SDK.GetRemoteData() est une méthode qui vous permet de récupérer des données pour un siteCode spécifique (défini dans KameleoonClientFactory.create()) depuis un serveur Kameleoon distant à l’aide d’une clé que vous fournissez. Notre Data API stocke ces données sur nos serveurs, qui sont conçus pour gérer efficacement de grandes quantités de données. Gardez à l’esprit que comme cette méthode implique un appel serveur, elle fonctionne de manière asynchrone.
Arguments
Valeur de retour
Exceptions levées
GetRemoteVisitorData()
GetRemoteVisitorData() est une méthode qui récupère les données de visite Kameleoon pour un utilisateur spécifique à l’aide de son VisitorCode. Elle fonctionne en arrière-plan et stocke ces données pour que d’autres méthodes puissent prendre des décisions de ciblage.
Ces données sont importantes pour plusieurs raisons :
- Elles vous aident à utiliser les informations collectées à partir de différents appareils.
- Elles vous permettent d’accéder à l’historique d’un utilisateur, comme les pages précédemment visitées lors de visites antérieures.
- Elles vous permettent d’utiliser des données disponibles uniquement côté client, comme les variables datalayer et les objectifs qui ne suivent les conversions que sur le front-end.
Le paramètre
isUniqueIdentifier est obsolète. Veuillez utiliser UniqueIdentifier à la place.Le isUniqueIdentifier peut être utile dans des situations particulières ; par exemple, si vous ne pouvez pas accéder au visitorCode anonyme attribué à un visiteur, mais que vous pouvez utiliser un ID interne lié à ce visiteur via la fusion de sessions.Arguments
Valeur de retour
Exceptions levées
Utiliser les paramètres dans GetRemoteVisitorData()
La méthodeGetRemoteVisitorData() offre une flexibilité en vous permettant de définir divers paramètres lors de la récupération de données sur les visiteurs. Que vous cibliez en fonction des objectifs, des expériences ou des 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é illustrée dans cet exemple n’est pas limitée aux données d’objectif. Vous pouvez utiliser des paramètres dans la méthode GetRemoteVisitorData() pour récupérer des données sur une variété de comportements visiteur.
Voici la liste des options
Kameleoon.Types.RemoteVisitorDataFilter disponibles :GetVisitorWarehouseAudience()
Cette méthode récupère toutes les données d’audience associées au visiteur dans votre data warehouse en utilisant lesvisitorCode et warehouseKey spécifiés. Le warehouseKey est généralement votre ID utilisateur interne. Le paramètre customDataIndex correspond à la custom data Kameleoon que Kameleoon utilise pour cibler vos visiteurs. Vous pouvez consulter la documentation sur le ciblage warehouse pour plus de détails. La méthode renvoie un objet CustomData, confirmant que les données ont été ajoutées au visiteur et sont disponibles à des fins de ciblage.
Arguments
Valeur de retour
Exceptions levées
SetLegalConsent()
Vous devez utiliser cette méthode pour spécifier si le visiteur a donné son consentement légal pour utiliser des données personnelles. Définir le paramètrelegalConsent sur false limite les types de données que vous pouvez inclure dans les requêtes de suivi. Cette méthode vous aide à respecter les exigences légales et réglementaires tout en gérant de manière responsable les données visiteur. Vous pouvez trouver plus d’informations sur les données personnelles dans la politique de gestion du consentement.
Arguments
Exceptions levées
Comportement de révocation du consentement
Lorsque vous appelezsetLegalConsent() avec consent=false, le SDK ne supprime pas le cookie kameleoonVisitorCode. Au lieu de cela, il cesse d’étendre 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 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.
Objectifs et analyses tierces
TrackConversion()
- 📨 Envoie des données de suivi à Kameleoon
visitorCode et goalId. De plus, cette méthode accepte également les arguments optionnels revenue, negative et metadata. Le visitorCode est généralement identique à celui qui a été 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 serveur est effectué de manière asynchrone.
Le paramètre
isUniqueIdentifier est obsolète. Veuillez utiliser UniqueIdentifier à la place.Le isUniqueIdentifier peut également être utile dans d’autres scénarios particuliers, par exemple lorsque vous ne pouvez pas accéder au visitorCode anonyme qui a été initialement attribué au visiteur, mais que vous avez accès à un ID interne qui est connecté au visiteur anonyme via les capacités de fusion de sessions.Arguments
Les valeurs metadata 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é avec 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 metadata 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’).Exceptions
GetEngineTrackingCode()
Kameleoon s’intègre à plusieurs solutions d’analyse, 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 des commandes de queue 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 d’analyse active.
Reportez-vous à l’expérimentation hybride pour plus d’informations sur l’implémentation de cette méthode.
- Pour utiliser cette fonctionnalité, implémentez à la fois le SDK C# et le Engine.js de Kameleoon. Comme Engine.js n’est utilisé que pour le suivi dans ce flux, vous pouvez installer le tag asynchrone avant la balise
</body>de fermeture. - Si vous souhaitez uniquement suivre les expériences dans Kameleoon et n’avez pas besoin d’envoyer des événements d’exposition à des outils d’analyse tiers, utilisez le SDK JavaScript / TypeScript. Cette option fonctionne bien pour les plateformes serverless edge compute. Le SDK JavaScript / TypeScript suit automatiquement les variations lorsque vous appelez
getVisitorCode, tant que vous ajoutez les attributions d’expérience correspondantes àwindow.kameleoonQueue. - 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
Valeur de retour
Événements
UpdateConfigurationHandler()
La méthodeUpdateConfigurationHandler() vous permet de gérer l’événement lorsque la configuration a mis à jour les données. Elle prend un paramètre d’entrée, handler. Le handler qui sera appelé lorsque la configuration est mise à jour à l’aide d’un événement de configuration en temps réel.
Arguments
Types de données
Les données disponibles dans le SDK ne sont pas disponibles pour le ciblage et le reporting dans l’application Kameleoon tant qu’elles ne sont pas ajoutées ; par exemple, en utilisant la méthodeaddData().
Consultez use visit history to target users pour plus d’informations.
Si vous êtes en mode hybride, vous pouvez appeler
GetRemoteVisitorData() pour remplir automatiquement toutes les données précédemment collectées par Kameleoon.Kameleoon.Data.IData.
Browser
L’ensemble de donnéesBrowser stocké ici peut être utilisé pour filtrer les rapports d’expérience et de personnalisation par toute valeur qui lui est associée.
PageView
L’index (ID) du référent est disponible dans notre Back-Office sur la page de configuration des canaux d’acquisition. Attention : cet index commence à 0, donc le premier canal d’acquisition que vous créez pour un site donné aurait l’ID 0, et non 1.
Conversion
L’ensemble de donnéesConversion stocké ici peut être utilisé pour filtrer les rapports d’expérience et de personnalisation par tout objectif qui lui est associé.
CustomData
CustomData permet d’associer facilement tout type de données à chaque visiteur. Il peut ensuite être utilisé comme condition de ciblage dans les segments ou comme filtre/segmentation dans les rapports d’expérience.
Pour en savoir plus sur les custom data, veuillez consulter cet article.
-
Chaque visiteur n’est autorisé qu’à une seule
CustomDatapour chaqueindexunique. Ajouter une autreCustomDataavec le mêmeindexremplacera celle existante. - L’index de la custom data peut être trouvé dans le Custom Data dashboard 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 la configuration de l’instance SDK n’est pas à jour ou que le nom n’est pas enregistré entraînera l’ignorance des données.
Device
UserAgent
Les expériences côté serveur sont plus susceptibles d’être affectées par le trafic des bots que les expériences côté client. Kameleoon utilise la liste IAB/ABC International Spiders and Bots pour traiter ce problème et reconnaître les bots et spiders connus. Kameleoon utilise également le champUserAgent pour filtrer les bots et autres trafics indésirables qui pourraient fausser vos métriques de conversion. Pour plus de détails, consultez notre 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 analyses.
UniqueIdentifier
Si vous n’ajoutez pasUniqueIdentifier pour un visiteur, visitorCode est utilisé comme identifiant unique du visiteur, ce qui est utile pour l’expérimentation cross-device. Lorsque vous ajoutez UniqueIdentifier pour un visiteur, le SDK lie les données vidées au visiteur associé à l’identifiant spécifié.
Le isUniqueIdentifier peut être utile dans des situations particulières ; par exemple, si vous ne pouvez pas accéder au visitorCode anonyme attribué à un visiteur, mais que vous pouvez utiliser un ID interne lié à ce visiteur via la fusion de sessions.
OperatingSystem
OperatingSystem contient des informations sur le système d’exploitation de l’appareil du visiteur.
Chaque visiteur ne peut avoir qu’un seul
OperatingSystem. Ajouter un deuxième OperatingSystem remplace le premier.Cookie
Cookie contient des informations sur le cookie stocké sur l’appareil du visiteur.
Chaque visiteur ne peut avoir qu’un seul
Cookie. Ajouter un deuxième Cookie remplace le premier.Geolocation
Geolocation contient les détails de géolocalisation du visiteur.
ApplicationVersion
ApplicationVersion représente le numéro de version sémantique de votre application.
Types renvoyés
DataFile
LeDataFile contient les détails de configuration du SDK.
Il peut être étendu avec des informations supplémentaires si les clients en ont besoin. Si vous avez besoin de plus de détails, veuillez contacter votre Customer Success Manager.
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).
- L’objet
Variationfournit des détails sur la variation attribuée et son expérience associée, tandis que l’objetVariablecontient des détails spécifiques sur chaque variable d’une variation. - Assurez-vous que votre code gère le cas où
IdouExperimentIdpeuvent êtreVariation.UndefinedId, indiquant une variation par défaut. - Le dictionnaire
Variablespeut être vide si aucune variable n’est associée à la variation.
Variable
Variable contient des informations sur une variable associée à la variation attribuée.
Méthodes obsolètes
GetFeatureVariationKey()
- 📨 Envoie des données de suivi à Kameleoon
GetFeatureVariationKey().
Utilisez
GetVariation() à la place.visitorCode, la méthode GetFeatureVariationKey() l’utilise comme identifiant unique du visiteur, ce qui est utile pour l’expérimentation cross-device. Lorsque vous spécifiez un visitorCode et définissez le paramètre isUniqueIdentifier sur true, le SDK lie les données vidées au visiteur associé à l’identifiant spécifié.
Le paramètre
isUniqueIdentifier est obsolète. Veuillez utiliser UniqueIdentifier à la place.Le isUniqueIdentifier peut être utile dans des situations particulières ; par exemple, si vous ne pouvez pas accéder au visitorCode anonyme attribué à un visiteur, mais que vous pouvez utiliser un ID interne lié à ce visiteur via la fusion de sessions.Arguments
Valeur de retour
Exceptions levées
GetActiveFeatureListForVisitor()
- Utilisez
GetActiveFeaturesà la place. - Cette méthode était précédemment appelée
ObtainFeatureListForVisitorCode(), qui a été supprimée dans la version4.0.0du SDK.
visitorCode. Renvoie uniquement les feature flags actifs pour le visiteur spécifié.
Arguments
Valeur de retour
GetFeatureVariable()
- 📨 Envoie des données de suivi à Kameleoon
Utilisez
GetVariation() à la place.GetFeatureVariable() de notre SDK.
Cette méthode nécessite un visitorCode et un featureKey (ou featureID) pour vérifier si un utilisateur peut accéder à une fonctionnalité spécifique.
Si l’utilisateur n’a jamais été lié à cette fonctionnalité, le SDK décidera aléatoirement de l’activer, renvoyant true (il peut accéder à la fonctionnalité) ou false (il ne le peut pas). Si l’utilisateur avec le visitorCode donné est déjà lié à cette fonctionnalité, le système renverra la valeur précédente du featureFlag.
Assurez-vous d’inclure une gestion appropriée des erreurs dans votre code, comme indiqué dans l’exemple, pour capturer toute erreur potentielle.
Si vous spécifiez un visitorCode, la méthode GetFeatureVariable() l’utilise comme identifiant unique du visiteur, ce qui est utile pour l’expérimentation cross-device. Lorsque vous spécifiez un visitorCode et définissez le paramètre isUniqueIdentifier sur true, le SDK lie les données vidées au visiteur associé à l’identifiant spécifié.
Le paramètre
isUniqueIdentifier est obsolète. Veuillez utiliser UniqueIdentifier à la place.Le isUniqueIdentifier peut être utile dans des situations particulières ; par exemple, si vous ne pouvez pas accéder au visitorCode anonyme attribué à un visiteur, mais que vous pouvez utiliser un ID interne lié à ce visiteur via la fusion de sessions.Arguments
Valeur de retour
Exceptions levées
GetActiveFeatures()
Utilisez
GetVariations() à la place.GetActiveFeatures récupère des informations sur les feature flags actifs disponibles pour le visitor code spécifié.
Les propriétés
Kameleoon.Types.Variation.Id et Kameleoon.Types.Variation.ExperimentId des variations renvoyées sont optionnelles. Si elles ne sont pas spécifiées, la valeur par défaut est Kameleoon.Types.Variation.UndefinedId.Arguments
Valeur de retour
Exceptions levées
GetFeatureVariationVariables()
- Utilisez
GetVariation()à la place. - Cette méthode était précédemment appelée
GetFeatureAllVariables(), qui a été supprimée dans la version4.0.0du SDK.
featureKey et variationKey. Elle renvoie les données du type Dictionary<string, object>, comme défini dans l’interface web. Elle lèvera une exception (KameleoonException.FeatureNotFound) si la fonctionnalité demandée n’a pas été trouvée dans la configuration interne du SDK.