> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Outils pour les expériences

> Outils MCP pour créer, configurer, lancer et lire les Web Experiments.

Les outils d'expérience couvrent le cycle de vie d'un Web Experiment. Votre assistant peut créer une expérience, écrire le code de chaque variation, définir la répartition du trafic et les objectifs, démarrer l'expérience, puis en contrôler la santé et les résultats.

## Outils

| Outil | Description | Exemple de prompt |
| - | - | - |
| `experiment_list` | Trouve des expériences par nom ou ID, ou ne liste que celles qui ont un statut donné, comme les expériences running. Renvoie des résumés paginés (ID, nom, statut et tags). | "List running experiments on site `d1alzzxd7k`." |
| `experiment_get` | Récupère la configuration complète d'une expérience : variations, répartition du trafic, objectifs et ciblage. | "Show the configuration for experiment `149640`." |
| `experiment_code_get` | Récupère le JavaScript, le CSS et le JSON personnalisé bruts d'une variation, ainsi que le JavaScript et le CSS communs partagés de l'expérience. | "Pull the code for variation 1 of experiment `149640`." |
| `experiment_results_get` | Récupère les résultats statistiques de chaque objectif attaché : taux de conversion par variation, significativité, intervalles de confiance et gagnant. Vous pouvez aussi les découper avec `breakdown`, les filtrer avec `filters`, `dateFrom` et `dateTo`, et choisir `statisticalMethod`, `conversionType` et `referenceVariationId`. | "Summarize results for experiment `149640`." |
| `experiment_create` | Crée une expérience draft (type, URL de base, objectifs, code commun facultatif). Elle comporte une première variation et une règle de ciblage. | "Create a CLASSIC experiment `Homepage hero` on site `d1alzzxd7k`." |
| `experiment_variation_create` | Ajoute à une expérience existante une variation avec son propre JavaScript, CSS, JSON personnalisé ou paramètres de redirection. Les expériences draft répartissent le trafic à parts égales. Une expérience running reçoit la nouvelle variation à 0 %. | "On experiment `149640`, add a variation that makes the `#buy-now` button green." |
| `experiment_variation_update` | Modifie le code, le nom ou la redirection d'une variation. Seuls les champs que vous transmettez changent, et répéter un appel avec les mêmes valeurs ne change rien. | "In variation 1 of experiment `149640`, make the `#buy-now` button red." |
| `experiment_update` | Modifie les paramètres d'une expérience existante : nom, description, URL de base, tags, objectifs et objectif principal, JavaScript et CSS partagés, script global, collecte de données, exécution du code partagé sur la page d'origine, correction des tests multiples et méthode d'allocation du trafic. Utilisez-le pour attacher l'objectif dont une expérience a besoin avant de démarrer. Seuls les champs que vous transmettez changent. Une confirmation est nécessaire si l'expérience n'est pas en draft. | "On experiment `149640`, set goal `271552` as the main goal." |
| `experiment_traffic_allocation_set` | Définit la répartition du trafic de la page d'origine et de chaque variation. Les expériences draft changent immédiatement. Les expériences scheduled et paused demandent une confirmation, et la nouvelle répartition prend effet quand elles démarrent ou reprennent. Utilisez l'application Kameleoon pour modifier la répartition des expériences running, deviated et stopped. | "On experiment `149640`, split traffic 50/50 between the original and variation 1." |
| `experiment_duplicate` | Clone une expérience dans un nouveau draft, avec ses variations, son code, ses déviations et son ciblage. | "Duplicate experiment `149640`." |
| `experiment_health_check_get` | Exécute les contrôles de l'onglet Health d'une expérience : suivi des visites et des conversions par objectif, sample ratio mismatch et exposition simultanée. Renvoie un statut global, avec une constatation et une étape suivante pour chaque contrôle. | "Is experiment `149640` healthy? Are its results reliable?" |
| `experiment_lifecycle_update` | Pilote le cycle de vie : démarrer, mettre en pause, reprendre, arrêter ou supprimer (arrêter et supprimer nécessitent une confirmation). Démarrer une expérience exige un objectif, des variations et une répartition du trafic. Vous pouvez mettre en pause les expériences running ou scheduled, et arrêter les expériences running, scheduled ou paused. Vous ne pouvez supprimer que les expériences draft ou stopped. | "Start experiment `149640`." |
| `transpose_winning_experiment` | Outil à point d'entrée unique : il récupère le code de la variation gagnante (ou choisie manuellement), applique la logique de décision du gagnant et renvoie les instructions que l'agent appelant doit suivre pour réimplémenter la variation et la protéger derrière un nouveau feature flag. Un seul appel remplace l'ancien flux de travail manuel en plusieurs étapes. | "Implement the winning variant of experiment `373001` as a feature flag." |

> [!NOTE]
>
> `experiment_create` accepte `MVT` et `SDK_HYBRID` comme valeurs valides du paramètre `type`, mais cet outil ne peut créer ni l'un ni l'autre. `MVT` échoue toujours, car l'API exige `mvtVariations` (sections et variations) à la création, et aucun outil MCP n'expose ce champ. `SDK_HYBRID` échoue toujours avec l'erreur « Incorrect Experiments type », quel que soit le payload. `AI`, `CLASSIC`, `DEVELOPER` et `PROMPT` se créent sans problème. Pour créer une expérience MVT, appelez directement l'Automation API et suivez les étapes décrites dans [Créer un test multivariate](https://docs.kameleoon.com/fr/developer-docs/apis/automation-api-rest/tutorials/experiments/creation/create-a-multivariate-experiment.md).

> [!NOTE]
>
> Les outils de variation ne prennent pas en charge les expériences stopped, MVT ou feature flag. Pour les variations de feature flag, utilisez `feature_flag_variation_create`. Vous ne pouvez pas modifier la répartition du trafic d'une expérience running, ni d'une expérience qui utilise une méthode d'allocation bandit, via le serveur MCP.

## Vérifier la santé de l'expérience

Demandez à votre assistant d'exécuter les contrôles de l'onglet Health avant de vous fier aux résultats d'une expérience.

* **L'expérience est-elle saine ?** `experiment_health_check_get` exécute les contrôles de l'onglet Health : suivi des visites et des conversions, sample ratio mismatch et exposition simultanée.

## Paramètres

Utilisez les noms exacts des paramètres renvoyés par `tools/list`.

| Outil | Paramètres obligatoires | Paramètres facultatifs |
| - | - | - |
| `experiment_list` | Aucun | `siteCode`, `filterQuery`, `status` (une ou plusieurs valeurs parmi `active`, `deviated`, `draft`, `paused`, `scheduled`, `stopped`, `used_as_personalization` ; les expériences running correspondent à `active` et `deviated`), `page`, `perPage`, `sortField`, `sortOrder` |
| `experiment_get` | `experimentId` | Aucun |
| `experiment_code_get` | `experimentId`, `variationId` | Aucun |
| `experiment_results_get` | `experimentId` | `goalIds`, `audienceBasis` (`VISITORS` par défaut, ou `VISITS`), `includeRawReport`, `breakdown` (`DAY`, `WEEK`, `MONTH`, `HOUR`, `DEVICE_TYPE`, `BROWSER`, `OS` ou `NEW_VISITOR`), `filters` (une liste de chaînes, ou une seule chaîne séparée par `;`, au format `DIMENSION=V1,V2` ou `DIMENSION!=V1,V2`), `dateFrom` et `dateTo` (`YYYY-MM-DD`), `statisticalMethod` (`FREQUENTIST` par défaut, `SEQUENTIAL`, `BAYESIAN` ou `CUPED`), `conversionType` (`CONVERTED` par défaut, ou `ALL`), `referenceVariationId` (un ID de variation, ou `0` pour l'original) |
| `experiment_create` | `payload` (`siteCode`, `name`, `type`, `baseURL`) | `payload` : `mainGoalId`, `goals`, `tags`, `description`, `commonJavaScriptCode`, `commonCssCode`, `trafficAllocationMethod`, `collectingDataEnabled`, `multipleTestingCorrection`, `executeCodeForReference` |
| `experiment_variation_create` | `experimentId`, `name` | `jsCode`, `cssCode`, `customJson` (une chaîne JSON), `isJsCodeAfterDomReady`, `shadowDom`, `redirection` (`type` obligatoire ; `url` pour `GLOBAL_REDIRECTION` ; `parameters` pour `PARAMETER_REDIRECTION` ; `includeQueryParameters`, `false` par défaut), `confirm` (obligatoire si l'expérience n'est pas en draft) |
| `experiment_variation_update` | `variationId` | `experimentId` (l'outil refuse l'appel si la valeur ne correspond pas à l'expérience de la variation), `name`, `jsCode`, `cssCode` (une chaîne vide efface le champ), `customJson` (une chaîne JSON), `isJsCodeAfterDomReady`, `shadowDom`, `redirection` (remplace les paramètres de redirection existants ; `type` obligatoire), `confirm` (obligatoire si l'expérience n'est pas en draft) |
| `experiment_update` | `experimentId` | `name`, `description` (une valeur vide conserve la description actuelle), `baseURL` (une URL absolue `http` ou `https`), `tags` et `goals` (chacun remplace toute la liste), `mainGoalId`, `commonJavaScriptCode`, `commonCssCode`, `globalScript` (une chaîne vide efface le champ), `collectingDataEnabled`, `executeCodeForReference`, `multipleTestingCorrection`, `trafficAllocationMethod` (pas pendant que l'expérience sert du trafic, ni après son arrêt), `confirm` (obligatoire si l'expérience n'est pas en draft) |
| `experiment_traffic_allocation_set` | `experimentId`, `originPercentage` (de 0 à 100), `variationAllocations` (une entrée pour chaque variation, avec `variationId` et `percentage` ; le total avec `originPercentage` ne peut pas dépasser 100) | `respool` (`false` par défaut), `confirm` (obligatoire pour les expériences scheduled et paused) |
| `experiment_duplicate` | `experimentId` | Aucun |
| `experiment_health_check_get` | `experimentId` (pour une expérience de feature flag, l'ID d'expérience de la règle) | Aucun |
| `experiment_lifecycle_update` | `experimentId`, `status` | `confirm` (obligatoire pour `stopped` et `deleted`), `reason` |
| `transpose_winning_experiment` | `experimentId` | `mode` (`strict_winner_only` par défaut, ou `manual_variation_conversion`), `fallbackVariationId` (obligatoire lorsque `mode` vaut `manual_variation_conversion`), `targetFeatureKey` (par défaut `pbx-winning-experiment-<experimentId>`) |

**Valeurs acceptées :** `experiment_lifecycle_update.status` vaut `started`, `resumed`, `paused`, `stopped` ou `deleted`. Le `type` d'une expérience vaut `AI`, `CLASSIC`, `DEVELOPER`, `MVT`, `PROMPT` ou `SDK_HYBRID`. `trafficAllocationMethod` vaut `MANUAL` (par défaut), `MULTI_ARMED_BANDIT` ou `CONTEXTUAL_BANDIT`. `audienceBasis` vaut `VISITORS` (par défaut) ou `VISITS`.

### Paramètres des résultats

Lisez les résultats d'une expérience avec `experiment_results_get`.

Pour `experiment_results_get`, `feature_flag_experiment_results_get` et `transpose_winning_experiment`, le tableau `goalResults` couvre chaque objectif attaché à l'expérience, objectifs principaux et secondaires compris. Kameleoon ne calcule un verdict de gagnant que pour l'objectif principal. Les objectifs secondaires renvoient les mêmes chiffres statistiques que des métriques de garde-fou, sans verdict.

`experiment_results_get` et `feature_flag_experiment_results_get` acceptent ces paramètres facultatifs :

* `breakdown` : découpe les résultats. `DAY`, `WEEK` et `MONTH` affichent une tendance dans le temps. `HOUR` affiche une tendance sur une fenêtre `dateFrom` à `dateTo` d'au plus 2 jours. `DEVICE_TYPE`, `BROWSER`, `OS` et `NEW_VISITOR` renvoient une tranche par valeur. Les tranches par période ne contiennent que l'audience, les conversions et le taux de conversion. L'amélioration et la fiabilité restent dans le résumé de l'ensemble de la période.
* `filters` : une liste de chaînes, ou une seule chaîne avec `;` entre les filtres. Kameleoon combine les filtres par un AND logique. Chaque filtre a le format `DIMENSION=V1,V2` ou `DIMENSION!=V1,V2`. Les dimensions et valeurs sont `DEVICE_TYPE` (`DESKTOP`, `TABLET`, `PHONE`), `BROWSER` (`CHROME`, `EDGE`, `FIREFOX`, `SAFARI`, `OPERA`, `OTHERS`), `OS` (`WINDOWS`, `MAC_OS`, `I_OS`, `LINUX`, `ANDROID`, `WINDOWS_PHONE`, `OTHERS`) et `NEW_VISITOR` (`NEW`, `RETURNING`). Une découpe par `DEVICE_TYPE` peut afficher une tranche `OTHERS`, mais vous ne pouvez pas filtrer sur `DEVICE_TYPE=OTHERS`.
* `dateFrom` et `dateTo` : une période précise, au format de dates `YYYY-MM-DD` du fuseau horaire du compte. `dateTo` est incluse. Ne les définissez que si vous avez besoin d'une période précise. Une fenêtre plus courte donne des chiffres plus bruités, donc ne concluez pas à un gagnant à partir d'une fenêtre courte.
* `statisticalMethod` : `FREQUENTIST` (par défaut), `SEQUENTIAL`, `BAYESIAN` ou `CUPED`. Avec `BAYESIAN`, `reliabilityRate` devient la probabilité de battre la référence. `CUPED` ne s'applique qu'aux chiffres de toute la période, et les tranches de découpe restent fréquentistes. L'outil refuse une méthode que votre forfait n'inclut pas.
* `conversionType` : `CONVERTED` (par défaut) compte chaque visiteur converti une seule fois. `ALL` compte chaque conversion, si bien que le taux peut dépasser 100 %. L'amélioration et la fiabilité suivent ce réglage : avec `ALL`, elles comparent les conversions par visiteur.
* `referenceVariationId` : la variation à laquelle les autres sont comparées. Transmettez un ID de variation, ou `0` pour l'original. Pour les feature flags, transmettez un ID ou une clé de variation, ou `0` ou `off` pour la variation off. Par défaut, c'est la référence enregistrée sur l'expérience, ou l'original si l'expérience n'en a pas.

La réponse indique les paramètres appliqués dans `appliedOptions` et ajoute des notes lorsqu'un chiffre a besoin de contexte. Elle omet les chiffres que le moteur n'a pas calculés, par exemple faute de données suffisantes ou parce que la référence n'a aucune conversion, et ajoute une note pour chacun.

Les résultats se comparent à la référence enregistrée sur l'expérience, comme le fait l'écran des résultats. Les expériences que Kameleoon construit à partir d'un prompt, et les expériences de feature flag dont la variation off reçoit 0 % du trafic, ne renvoient ni amélioration ni fiabilité.

## Tutoriels

* [Créer des variations avec du code personnalisé](https://docs.kameleoon.com/fr/mcp/create-variations-with-code.md) : créez une expérience avec plusieurs variations, chacune avec son propre code.
* [Préparer une expérience draft](https://docs.kameleoon.com/fr/mcp/prepare-draft-experiment.md) : définissez l'objectif, la répartition du trafic et le ciblage avant de démarrer.
* [Mettre en production une variation gagnante](https://docs.kameleoon.com/fr/mcp/ship-winning-variation.md) : transformez une variation gagnante en feature flag conditionné.
