> ## 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.

# Experiment and personalization objects

> Référence des objets Experiment, Personalization, activation, Variation et Template.

Ces objets décrivent les expériences et les personnalisations, ainsi que l'activation de chacune d'entre elles pendant la visite en cours.

## Experiment

Un objet Experiment représente un test A/B Kameleoon. Les propriétés principales incluent le segment et les variations associées. Les variations contiennent le code JavaScript et CSS qui implémente les modifications.

**Properties**

| Name | Type | Description |
| - | - | - |
| id | Number | ID de l'expérience. |
| name | String | Nom de l'expérience. |
| dateLaunched | Number | Heure du premier lancement de l'expérience (format UTC - ms depuis le 1er janvier 1970). |
| dateModified | Number | Heure de la dernière modification de l'expérience (format UTC - ms depuis le 1er janvier 1970). |
| targetSegment | Object | [Objet Segment](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#segment) associé à l'expérience. |
| variations | Array | Liste des objets [Variation](#variation) pour cette expérience. |
| trafficDeviation | Object | Dictionnaire des écarts de trafic actuels de l'expérience. Les clés sont les ID des variations (l'ID **0** correspond à la référence). Les valeurs sont des pourcentages (0 à 100). La somme peut ne pas atteindre 100 si une partie du trafic n'est pas allouée. |
| untrackedTrafficReallocationTime | Number | Heure de la dernière réallocation effectuée pour le trafic non suivi (format UTC, en ms depuis le 1er janvier 1970). Si le moteur n'a jamais effectué de réallocation, la valeur est **null**. |
| goals | Array | Liste des [objets Goal](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#goal) suivis pour l'expérience. |
| mainGoal | Object | [Objet Goal](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#goal) représentant l'objectif principal de l'expérience. |
| triggered | Boolean | Vaut **true** si l'expérience a été déclenchée sur la page, sinon **false**. |
| active | Boolean | Booléen égal à **true** si l'expérience est actuellement active sur la page, sinon **false**. |
| triggeredInVisit | Boolean | Vaut **true** si l'expérience a été déclenchée pendant la visite en cours, sinon **false**. Un déclenchement pendant une visite signifie que la visite a rempli, à un moment donné, les conditions du segment de l'expérience. |
| activatedInVisit | Boolean | Lorsque la valeur est **true**, le moteur a activé l'expérience pendant la visite en cours. Un déclenchement ne garantit pas l'activation : l'exclusion de trafic ou le plafonnement peuvent l'empêcher. |
| nonExpositionReason | String | Si le moteur a déclenché l'expérience sans l'activer, ce champ indique la raison. Valeurs possibles : `EXPERIMENT_EXCLUSION` (le visiteur appartient à la population exclue de l'expérience, c'est-à-dire qu'il n'est pas comptabilisé dans les résultats) et `VISITOR_CAPPING` (le visiteur a atteint une limite de plafonnement qui empêche l'activation). Cette propriété est disponible si le moteur a déclenché l'expérience sur la page en cours et que `active` vaut **false**. |
| associatedVariation | Object | [Objet Variation](#variation) associé à l'expérience pour le visiteur concerné. Si l'expérience n'est pas encore activée, cette valeur est généralement **null**, sauf si le moteur a pré-alloué une variation. |
| redirectProcessed | Boolean | Lorsque la valeur est **true**, une redirection d'URL a eu lieu pour cette expérience sur la page précédente. Vous définissez cette propriété via [processRedirect()](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/modules/core.md#processredirect) ou une configuration manuelle. Dans les intégrations basées sur JavaScript, une redirection peut interrompre l'exécution du code ; vérifiez cette propriété pour renvoyer si nécessaire les requêtes réseau sur la page d'arrivée. |

## Personalization

Un objet Personalization représente une action de personnalisation Kameleoon pour un segment spécifique. Les propriétés principales incluent le segment et la variation unique associée. L'objet Variation contient le code JavaScript et CSS qui implémente l'action de personnalisation.

**Properties**

| Name | Type | Description |
| - | - | - |
| id | Number | ID de la personnalisation. |
| name | String | Nom de la personnalisation. |
| dateLaunched | Number | Heure du premier lancement de la personnalisation (format UTC - ms depuis le 1er janvier 1970). |
| dateModified | Number | Heure de la dernière modification de la personnalisation (format UTC - ms depuis le 1er janvier 1970). |
| targetSegment | Object | [Objet Segment](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#segment) associé à la personnalisation. |
| goals | Array | Liste des [objets Goal](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#goal) suivis pour la personnalisation. |
| mainGoal | Object | [Objet Goal](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#goal) représentant l'objectif principal de la personnalisation. |
| triggered | Boolean | Lorsque la valeur est **true**, la personnalisation s’est déclenchée sur la page. |
| active | Boolean | Lorsque **true**, la personnalisation est active (affichée) sur la page. |
| triggeredInVisit | Boolean | Lorsque **true**, la personnalisation a été déclenchée au cours de la visite actuelle. Cela indique que la visite a satisfait aux conditions de segment de la personnalisation. |
| activatedInVisit | Boolean | Lorsque la valeur est **true**, le moteur a affiché l'action de la personnalisation pendant la visite en cours. Un déclenchement ne garantit pas l'affichage de l'action : le plafonnement ou l'appartenance au groupe de contrôle peuvent l'empêcher. |
| nonExpositionReason | String | Raison de la non-exposition si déclenchée mais non affichée. Valeurs possibles : `GLOBAL_EXCLUSION`, `PERSONALIZATION_EXCLUSION`, `PRIORITY`, `SCHEDULE`, `PERSONALIZATION_CAPPING`, `VISITOR_CAPPING`, `SCENARIO` et `SIMULATION`. Cette propriété est disponible si la personnalisation a été déclenchée sur la page actuelle et `active` est **false**. |
| associatedVariation | Object | [Objet Variation](#variation) associé. Cette propriété référence toujours un objet valide pour les personnalisations. |

## ExperimentActivation

Un objet `ExperimentActivation` représente une expérience activée pendant une visite spécifique. Les visites pouvant être historiques, l'expérience associée peut avoir été arrêtée entre-temps. Dans ce cas, le moteur n'injecte pas les métadonnées de l'expérience (nom, date de lancement, segment) dans le fichier d'application, ce qui les rend indisponibles via l'API. Les ID restent toutefois disponibles.

**Properties**

| Name | Type | Description |
| - | - | - |
| experimentID | Number | ID de l'expérience. |
| associatedVariationID | Number | ID de la variation associée. Si la variation associée est la référence (contrôle), l'ID est égal à 0. |
| associatedVariation | Object | Objet [Variation](#variation) associé. Cette propriété est **null** si l'expérience ou la variation n'est plus active (arrêtée ou en pause). |
| times | Array | Liste des heures d'activation pour cette expérience sur cette visite (format UTC - ms depuis le 1er janvier 1970). |

## PersonalizationActivation

Un objet `PersonalizationActivation` représente une personnalisation activée au cours d'une visite spécifique. Comme pour les expériences, les métadonnées ne sont pas disponibles si la personnalisation s'est arrêtée, bien que les ID restent accessibles.

**Properties**

| Name | Type | Description |
| - | - | - |
| personalizationID | Number | ID de la personnalisation. |
| associatedVariationID | Number | ID du associated variation. |
| personalization | Object | Objet [Personalization](#personalization) associé. Cette propriété est **null** si la personnalisation n'est plus active (arrêtée ou en pause). |
| associatedVariation | Object | Objet [Variation](#variation) associé. Cette propriété est **null** si la personnalisation ou la variation n'est plus active (arrêtée ou en pause). |
| times | Array | Liste des heures d'activation pour cette personnalisation sur cette visite (format UTC - ms depuis le 1er janvier 1970). |

## Variation

Un objet `Variation` représente un composant d'une `Experiment`. Un test A/B contient plusieurs variations, tel qu'un test A/B avec une variation plus référence ou un test A/B/C avec deux plus référence. Les personnalisations s'associent avec un seul objet [Variation](#variation).

> [!NOTE]
>
> Pendant l'exécution du code de variation, le mot-clé `this` référence l'objet `Variation` correspondant. Utilisez cette référence pour naviguer dans la hiérarchie des objets (par exemple, via la propriété `associatedCampaign`).

**Properties**

| Name | Type | Description |
| - | - | - |
| id | Number | ID unique de la variation. Si la variation représente la référence (contrôle), l'ID est égal à **0**. |
| name | String | Nom de la variation. Si la variation représente la référence (contrôle), le nom est égal à "Reference". |
| associatedCampaign | Object | L'objet [Experiment](#experiment) ou [Personalization](#personalization) lié à cette variation. |
| instantiatedTemplate | Object | [Objet Instantiated template](#template) ayant produit cette variation, le cas échéant. Si la variation ne provient pas d'un modèle, cette propriété vaut **null**. |
| reallocationTime | Number | Heure de la dernière réallocation de trafic effectuée pour la variation (format UTC, en ms depuis le 1er janvier 1970). Si le moteur n'a jamais réalloué la variation, la valeur est **null**. |

## Template

Un objet `Template` représente un modèle Widget instancié. Utilisez les modèles pour générer des variations à partir d'une base de code commune via l'interface de l'application Kameleoon. Un objet `Template` contient des champs prédéfinis et leurs valeurs pour la variation associée.

**Properties**

| Name | Type | Description |
| - | - | - |
| name | String | Nom du base template. |
| customFields | Object | Mappage correspondant aux données du modèle. Les clés sont les noms des champs définis dans le modèle de base. Les valeurs sont les valeurs instanciées que vous avez entrées pour la variation associée. Par exemple, si vous avez créé un modèle avec un seul champ de texte "currentDiscount", `customFields` peut être égal à `{"currentDiscount": "-10% sur toutes les commandes aujourd'hui!"}`. |
