addData(). Dans certains scénarios, appelez getRemoteVisitorData() pour récupérer les données historiques du visiteur. Cette combinaison crée des expériences hautement ciblées et personnalisées.
Gérer les données dans les SDK Kameleoon
Des données précises garantissent un ciblage et une expérimentation cohérents. Les sections suivantes expliquent comment les SDK côté client et côté serveur gèrent les conditions de ciblage et indiquent quand utilisergetRemoteVisitorData() pour récupérer des données depuis le serveur.
Terminologie clé
- Condition de ciblage : L’attribut spécifique de l’utilisateur ou de la session utilisé pour le ciblage, tel que la conversion, le navigateur ou les données personnalisées.
- Côté client : Gestion des données pour les SDK standards fonctionnant dans un navigateur web ou une application mobile.
- Côté client (Cross-device) : Gestion des données pour les implémentations côté client qui maintiennent un profil visiteur cohérent sur plusieurs appareils.
- Côté serveur : Gestion des données lorsque le SDK s’exécute sur un serveur backend. Contrairement aux SDK côté client, les SDK côté serveur suppriment généralement les informations du visiteur après la fin d’une session.
- web only : Une condition de ciblage basée sur des données que seul un navigateur génère, comme l’URL de la page ou le titre de la page. Les SDK web collectent ces données automatiquement. Les SDK Android, iOS et Flutter ne prennent pas en charge ces conditions car aucun navigateur ne génère les données. Le SDK React Native offre une prise en charge expérimentale de ces conditions. Les SDK côté serveur prennent en charge ces conditions : ils reçoivent les données via
addData()ou les récupèrent depuis une session web précédente avecgetRemoteVisitorData().
Exigences de collecte de données
Le SDK nécessite des données visiteur spécifiques pour évaluer les conditions de ciblage. Le tableau ci-dessous identifie les critères que le SDK gère automatiquement et ceux qui nécessitent un appel de méthode explicite.« web only » indique l’origine des données, et non les SDK qui peuvent les utiliser. Les conditions web only proviennent de données du navigateur : la plupart des SDK mobiles ne les prennent donc pas en charge, mais les SDK côté serveur si, via
addData() ou getRemoteVisitorData(). Le SDK React Native fait exception parmi les SDK mobiles : il offre une prise en charge expérimentale de ces conditions.- * La collecte automatique de données ne fonctionne pas dans les applications d’une seule page (SPA). Dans une SPA, vous devez appeler la méthode
addData()manuellement. - ** Non pris en charge dans les SDK mobiles (Android, iOS ou Flutter). Le SDK React Native offre une prise en charge expérimentale via
addData().
Utiliser getRemoteVisitorData() pour les données historiques
Le tableau suivant décrit quand un appel distant àgetRemoteVisitorData() est requis pour récupérer des données historiques pour les décisions de ciblage.
Définitions de gestion des données
SDK côté client
- Non (Automatique) : Le SDK collecte ces données automatiquement. Aucune requête distante ni appel explicite à
addData()n’est requis. - Non : Le SDK ne collecte pas ces données automatiquement. Vous devez utiliser
addData(),trackConversion()ou des méthodes d’évaluation commegetVariation()pour ajouter ces données. Aucune requête distante n’est requise. - Oui : Vous devez appeler
getRemoteVisitorData(). Cette exigence s’applique aux données générées sur le serveur (comme « Likelihood to convert ») ou lors de l’unification des sessions sur plusieurs appareils pour récupérer les actions d’un appareil précédent.
SDK côté serveur
- Non (Automatique) : S’applique uniquement à « SDK Type ». Le SDK collecte cela automatiquement.
- Non : Utilisez
addData()outrackConversion()pour fournir ces données. Aucune requête distante n’est requise. - Non/Oui : Vous pouvez fournir les données directement sur le serveur ou les obtenir via une requête distante. Ce scénario se produit si un SDK côté client a déjà collecté des informations pendant la visite en cours.
- Oui : Vous devez appeler
getRemoteVisitorData(). Comme les SDK côté serveur ont un stockage de données limité, ils nécessitent un appel distant pour identifier les actions historiques, telles que les visites précédentes ou l’exclusivité pour une expérience.
Avantages de la récupération distante de données
AppelergetRemoteVisitorData() offre les avantages suivants :
- Informations à jour : Les décisions utilisent des données en temps réel issues de la Data API.
- Cohérence cross-device : Accède aux données collectées depuis d’autres appareils ou sessions.
- Accès historique : Récupère le comportement passé de l’utilisateur, comme les visites d’URL précédentes, même si l’état local du SDK a été effacé.
Utilisez le paramètre
VisitorDataFiltersType pour spécifier le nombre de visites passées à récupérer ou pour appliquer des filtres de critères spécifiques.Contraintes de ciblage en edge
Les feature flags et les expériences évalués en edge n’ont accès qu’aux données visiteur que votre intégration rend disponibles pour l’edge worker. Une requête en edge se comporte comme une évaluation SDK côté serveur pour une toute nouvelle session visiteur : l’edge worker n’a aucune garantie de mémoire d’une requête précédente de ce visiteur, donc la plupart des conditions de ciblage n’ont aucune donnée à évaluer, sauf si vous la fournissez explicitement. La manière de transmettre les données visiteur à l’edge worker afin qu’il puisse évaluer les conditions de ciblage est décrite ci-dessous. Renvoyer les décisions de flag et de variation qui en résultent vers votre serveur d’origine est une préoccupation distincte, non traitée par le mécanismeaddData() et cookie décrit ici. Les frameworks edge exposent des mécanismes différents pour renvoyer ces décisions ; consultez la documentation de votre propre framework.
D’où proviennent les données visiteur en edge
Selon votre framework edge, certaines données de navigateur et d’appareil, comme le user-agent et la géolocalisation, sont disponibles directement depuis la requête entrante grâce aux API de contexte de requête propres à la plateforme. Consultez la documentation de votre framework pour savoir ce qu’il expose. Toute autre condition de ciblage, y compris les données personnalisées et l’historique du visiteur, n’a aucun moyen d’atteindre le worker, sauf si votre intégration la fournit explicitement. Quelle que soit la source des données, votre intégration est responsable de les lire et d’appeleraddData() avec elles avant d’évaluer un feature flag ou une expérience. Kameleoon ne collecte aucune de ces données pour votre compte en edge, y compris les données qu’un framework expose sur la requête elle-même.
getRemoteVisitorData() en edge
getRemoteVisitorData() fonctionne en edge de la même manière que dans toute évaluation côté serveur, mais il n’est pas pratique pour la plupart des cas d’usage en edge :
- Latence : un appel à
getRemoteVisitorData()prend généralement entre 100 et 200 ms pour récupérer les données historiques du visiteur depuis la Data API. L’évaluation des flags et des variations se termine normalement en quelques millisecondes ; ajouter une récupération de données distante à chaque requête pousse donc la latence bien au-delà de ce que ciblent la plupart des cas d’usage en edge. - Absence de mémoire partagée durable : une plateforme edge peut détruire et recréer une instance de worker à tout moment, donc la mise en cache d’un résultat de
getRemoteVisitorData()entre plusieurs requêtes n’est pas fiable, sauf si votre framework propose une mémoire durable et partagée entre les requêtes pour le stocker.
addData(), en suivant l’approche décrite ci-dessous.
Transmettre les données visiteur à l’edge worker
Comme le SDK edge ne peut ni récupérer ni conserver les données visiteur par lui-même, votre intégration est responsable de rendre ces données disponibles au moment de la requête :- Collectez les attributs du visiteur en amont, par exemple lors d’un chargement de page précédent ou d’un appel SDK côté client.
- Transmettez les attributs dans la requête edge, généralement sous forme de cookies, car un edge worker peut lire les cookies de la requête entrante sans effectuer d’appel externe.
- Dans l’edge worker, lisez les attributs et appelez
addData()avec eux avant d’évaluer un feature flag ou une expérience.
Les contraintes varient selon le framework edge et le plan
Les capacités des frameworks edge évoluent avec le temps et peuvent dépendre de votre plan spécifique chez un fournisseur, pas seulement du fournisseur que vous utilisez. La prise en charge des requêtes externes, la mémoire partagée entre les requêtes et la facturation du calcul varient toutes selon les frameworks, et peuvent changer selon les niveaux de plan ou lorsqu’un fournisseur met à jour son offre. Consultez la documentation actuelle de votre framework et les détails du plan de votre compte avant de vous appuyer sur une capacité spécifique telle qu’un appel externe ou une mise en cache entre les requêtes. Consultez Starter kits pour serverless edge compute pour connaître les frameworks actuellement pris en charge par Kameleoon.Mode Hybrid Experimentation
L’expérimentation hybride combine le SDK avec le snippet JavaScript Kameleoon pour permettre un ciblage avancé. Pour plus de détails, consultez le guide Hybrid Experimentation. Avantages :- Simplifie le processus d’implémentation.
- Accède aux données côté client collectées par le moteur, comme les variables datalayer et les objectifs front-end, directement au niveau du SDK.
- Implémentez à la fois le SDK et la balise JavaScript Kameleoon.
getRemoteVisitorData() dans ce mode donne accès à tous les points de données collectés automatiquement par le moteur Kameleoon sur la page web.
FAQ
Lorsque j'utilise addData(), les données sont-elles immédiatement disponibles pour le ciblage ?
Lorsque j'utilise addData(), les données sont-elles immédiatement disponibles pour le ciblage ?
Oui, les données sont immédiatement disponibles pour le ciblage. Elles le restent pendant la session du visiteur pour les SDK côté serveur, et pendant la durée de vie définie pour les SDK côté client (mobile et web).
Comment utiliser les données collectées précédemment pour le ciblage ?
Comment utiliser les données collectées précédemment pour le ciblage ?
Pourquoi mon ciblage ne fonctionne-t-il pas lorsque j'exécute des feature flags en edge ?
Pourquoi mon ciblage ne fonctionne-t-il pas lorsque j'exécute des feature flags en edge ?
Un edge worker ne conserve aucune mémoire garantie des requêtes précédentes d’un visiteur. Il se comporte donc comme un SDK côté serveur qui évalue une nouvelle session visiteur à chaque fois. La plupart des conditions de ciblage n’ont aucune donnée à évaluer, sauf si votre intégration fournit ces données explicitement, généralement en les lisant depuis un cookie et en appelant
addData() avant d’évaluer le feature flag.getRemoteVisitorData() fonctionne en edge, mais sa latence (généralement de 100 à 200 ms) et l’absence de mémoire durable entre les requêtes sur la plupart des plateformes edge le rendent peu pratique pour la plupart des cas d’usage en edge.Consultez Contraintes de ciblage en edge pour l’explication complète et un exemple de code, ainsi que Starter kits pour serverless edge compute pour les frameworks pris en charge par Kameleoon.
getRemoteVisitorDataavec les paramètres appropriés pour récupérer les données envoyées à la Data API. Une fois les données chargées, le SDK les inclut dans le ciblage du visiteur.