Prérequis
access_token
experimentId
experimentId est l’identifiant numérique de l’expérience dont vous souhaitez obtenir les résultats. Vous le trouverez dans l’URL de l’application Kameleoon lorsque vous consultez l’expérience (par exemple, https://app.kameleoon.com/.../experiments/188308/...). Pour les expériences de feature flag, l’ID est affiché dans le Rollout Planner.
Objectif
Le tutoriel utilise l’exemple d’expérience suivant :
Le tutoriel s’applique également aux expériences Feature Flag ; cependant, utilisez les endpoints 
https://api.kameleoon.com/feature-flags/* au lieu de https://api.kameleoon.com/experiments/* :L’experimentId se trouve dans le Rollout Planner :
Fonctionnement de la récupération des résultats
La récupération des résultats se fait en deux étapes :- Demander les résultats — envoyez une requête POST à
/experiments/{experimentId}/results. La réponse retourne un hashdataCode, et non les résultats eux-mêmes. - Interroger les résultats — envoyez une requête GET à
/results?dataCode=<dataCode>pour récupérer les données réelles.
1. Récupérer le data code
Les principaux paramètres du corps de requête ci-dessous contrôlent le contenu du rapport. Pour la référence complète des paramètres, consultez l’endpoint Request experiment’s results.| Champ | Type | Description |
|---|---|---|
goalsIds | integer[] | Objectifs à inclure. Passez [goalId] pour un objectif spécifique, [] pour tous les exclure, ou null pour tous les inclure. |
referenceVariationId | string | La variation à laquelle les autres seront comparées. Utilisez "0" pour la variation d’origine. |
visitorData | boolean | true compte les visiteurs uniques ; false (valeur par défaut) compte toutes les visites. |
sequentialTesting | boolean | true active le sequential testing pour les intervalles de confiance. |
conversionType | string | Comptages utilisés pour les calculs de fiabilité. ALL_CONVERSION compte chaque événement de conversion par visiteur ; CONVERTED_VISITS compte chaque visite au plus une fois, quel que soit le nombre d’événements de conversion survenus pendant celle-ci. |
Cas 1 : Récupérer les résultats directement
Envoyez une requête POST à l’endpoint Request experiment’s results en utilisant votre access token. Exemple :dataCode à l’étape 2 pour récupérer les résultats réels.
Cas 2 : Partager les résultats sans autorisation
Utilisez cette approche pour permettre à des utilisateurs de consulter les résultats sans access token — par exemple, pour partager une vue en direct des résultats avec une partie prenante.1. Récupérer un SharedToken
Récupérez unSharedToken depuis l’endpoint Share experiment results. Cet endpoint accepte le même corps de requête que l’endpoint des résultats.
2. Récupérer le dataCode avec le SharedToken
Envoyez une requête POST à l’endpoint Request experiment’s results en utilisant leSharedToken obtenu dans la réponse précédente à la place d’un access token.
2. Récupérer les résultats de l’expérience
Après avoir reçu ledataCode depuis l’un des cas ci-dessus, appelez l’endpoint result.
Si la réponse retourne
"status": "PENDING", le rapport est encore en cours de génération. Relancez la requête après un court délai jusqu’à ce que le statut soit "READY".3. Interpréter les résultats pour déterminer la variation gagnante
Les variations gagnantes doivent démontrer une grande fiabilité (supérieure à 95 %) et un taux d’amélioration positif par rapport à la variation de référence. La réponse JSON montre que Redesign 1 et Redesign 2 ont tous deux un taux de fiabilité de 100 %. Cependant, Redesign 1 a un taux d’amélioration de +211,48 % comparé au taux de -43,33 % de Redesign 2. Par conséquent, Redesign 1 est le gagnant. Redesign 14. Filtrer les résultats d’expérience
Obtenez des résultats spécifiques en utilisant les paramètresbreakdown et filters. Le paramètre breakdown organise les données selon une seule dimension (comme le navigateur, le système d’exploitation ou le jour de la semaine). Le paramètre filters restreint les données à un sous-ensemble de visiteurs avant l’application du breakdown.
Le paramètre
breakdown accepte un seul objet par requête, pas un tableau. Pour comparer plusieurs dimensions, envoyez une requête par breakdown.Formats de breakdown
La plupart des types de breakdown ne prennent qu’un champtype, par exemple :
INTERVAL — segmente les résultats par intervalle de temps. Associez "type": "INTERVAL" à un champ interval :
interval accepte HOUR, DAY, WEEK, MONTH ou YEAR.
CUSTOM_DATUM — segmente les résultats par index de custom data. Associez "type": "CUSTOM_DATUM" à un champ index :
CROSS_CAMPAIGN — segmente les résultats selon l’exposition à une autre expérience ou personnalisation. Fournissez au moins l’un des champs experiments ou personalizations :
Types de filters
Chaque objet filter requiert une chaînetype et un booléen include. Définissez include sur true pour restreindre les résultats aux visiteurs correspondants, ou false pour les exclure. Les champs supplémentaires dépendent du type :
type | Champs supplémentaires | Valeurs acceptées |
|---|---|---|
BROWSER | values (string[]) | CHROME, EDGE, FIREFOX, SAFARI, OPERA, OTHERS |
DEVICE_TYPE | values (string[]) | DESKTOP, TABLET, PHONE, OTHERS |
OS | values (string[]) | WINDOWS, MAC_OS, I_OS, LINUX, ANDROID, WINDOWS_PHONE, OTHERS |
NEW_VISITOR | visitorsType (string) | NEW_VISITORS, RETURNING_VISITORS |
ORIGIN_TYPE | values (string[]) | SEO, SEM, AFFILIATION, EMAIL, DIRECT |
SDK | values (string[]) | JAVA, ANDROID, GO, DOTNET, PYTHON, RUBY, IOS, PHP, JAVASCRIPT, NODEJS, REACT, RUST, ELIXIR |
DAY_OF_WEEK | values (string[]) | SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY |
WEATHER_CODE | values (string[]) | CLEAR_SKY, CLOUDS, RAIN, THUNDERSTORM, SNOW, HAIL, WIND, ATMOSPHERIC_DISTURBANCES |
LANGUAGE | values (string[]) | Codes de langue ISO 639-1 (par exemple, EN, FR, DE) |
CUSTOM_DATUM | customDataId (integer), value (string) | Toute valeur de custom data |
TARGETING_SEGMENT | values (integer[]) | IDs de segments |
GOAL_REACHED | goalId (integer), index (integer), value (string) |
Exemple : breakdown par navigateur filtré sur les nouveaux visiteurs
La requête suivante applique un breakdown par navigateur restreint aux nouveaux visiteurs en envoyant une requête POST à l’endpoint Request experiment’s results :dataCode, récupérez les résultats :
CHROME, FIREFOX, OTHERS, etc.) apparaissant comme clé dans breakdownData. La réponse suivante est tronquée pour plus de clarté :