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

# Kameleoon.API.Experiments

> Référence des méthodes Kameleoon.API.Experiments qui lisent, attribuent et déclenchent les expériences en cours.

Ce module fournit des méthodes pour accéder aux expériences en direct.

> [!NOTE]
>
> Ce module n'est disponible qu'avec la solution Kameleoon Web Experimentation.

## assignVariation

La méthode `assignVariation()` force l'association d'une variation spécifique pour une expérience, qui remplace l'algorithme d'allocation standard. Si vous appelez ceci avant que l'expérience se déclenche, le moteur pré-alloue une variation pour une activation ultérieure. Si l'expérience a déjà déclenché, définissez l'argument **override** sur **true** pour remplacer l'association existante.

```javascript theme={null}
var experimentID = 2468;
var variationID;

if (Kameleoon.API.CurrentVisit.device.type == "Desktop") {
  variationID = 123456;
} else if (Kameleoon.API.CurrentVisit.device.type == "Tablet") {
  variationID = 654321;
} else {
  variationID = 987654;
}

Kameleoon.API.Experiments.assignVariation(experimentID, variationID);
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| experimentID | Number | ID de l'expérience. Ce champ est obligatoire. |
| variationID | Number | ID de la variation. Ce champ est obligatoire. |
| override | Boolean | Lorsque **true**, le moteur remplace toute association de variation existante par la valeur fournie. Si omis, la méthode utilise par défaut **false**. |

## block

La méthode `block()` empêche une expérience de se déclencher ou de s'activer, y compris les appels manuels via `trigger()`. Le bloc s'applique à la page actuelle par défaut jusqu'au prochain `Kameleoon.API.Core.load()`. Définissez l'argument **visit** sur **true** pour bloquer l'expérience pendant toute la visite.

```javascript theme={null}
// L'expérience sera bloquée pour la page actuelle
Kameleoon.API.Experiments.block(12345);

// L'expérience sera bloquée pour toute la visite
Kameleoon.API.Experiments.block(54321, true);
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| experimentID | Number | ID de l'expérience. Ce champ est obligatoire. |
| visit | Boolean | Lorsque **true**, le moteur bloque l'expérience pendant toute la visite. Si omis, le bloc s'applique uniquement à la page actuelle (par défaut: **false**). |

## getAll

La méthode `getAll()` retourne toutes les expériences actives (en cours, pas brouillon/pause/arrêtée).

```javascript theme={null}
Kameleoon.API.Experiments.getAll().forEach(function (experiment) {
  if (experiment.id == 123456 && experiment.active) {
    console.log(experiment.name);
  }
});
```

**Valeur de retour**

| Name | Type | Description |
| - | - | - |
| experiments | Array | Liste des [objets Experiment](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getActive

La méthode `getActive()` retourne les expériences actives pour la visite et la page. Une expérience est active si son code de variation s'est exécuté dans le contexte de session actuel. Pour récupérer les expériences que vous avez activées sur d'autres URL pendant la visite, utilisez `getActivatedInVisit()`.

```javascript theme={null}
if (Kameleoon.API.Experiments.getActive().length == 0) {
  Kameleoon.API.Events.trigger("No Experiments Events");
}
```

**Valeur de retour**

| Name | Type | Description |
| - | - | - |
| experiments | Array | Liste des [objets Experiment](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getById

La méthode `getById()` retourne l'expérience pour l'ID spécifié.

```javascript theme={null}
var experiment = Kameleoon.API.Experiments.getById(123456);

if (experiment && experiment.active) {
  console.log(experiment.name);
}
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| id | Number | ID de l'expérience. Ce champ est obligatoire. |

**Valeur de retour**

| Name | Type | Description |
| - | - | - |
| experiment | Object | [Objet Experiment](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getByName

La méthode `getByName()` retourne l'expérience pour le nom spécifié.

```javascript theme={null}
var experiment = Kameleoon.API.Experiments.getByName("MyExperimentName");

if (experiment && experiment.active) {
  console.log(experiment.id);
}
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| name | String | Nom de l'expérience. Ce champ est obligatoire. |

**Valeur de retour**

| Name | Type | Description |
| - | - | - |
| experiment | Object | [Objets Experiment](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getTriggeredInVisit

La méthode `getTriggeredInVisit()` retourne toutes les expériences déclenchées durant la visite actuelle.

```javascript theme={null}
Kameleoon.API.Experiments.getTriggeredInVisit().forEach(function (experiment) {
  if (experiment.id == 123456) {
    console.log(experiment.name);
  }
});
```

**Valeur de retour**

| Name | Type | Description |
| - | - | - |
| experiments | Array | Liste des [objets Experiment](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getActivatedInVisit

La méthode `getActivatedInVisit()` retourne toutes les expériences activées durant la visite actuelle.

```javascript theme={null}
Kameleoon.API.Experiments.getActivatedInVisit().forEach(function (experiment) {
  if (experiment.id == 123456) {
    console.log(experiment.name);
  }
});
```

**Valeur de retour**

| Name | Type | Description |
| - | - | - |
| experiments | Array | Liste des [objets Experiment](https://docs.kameleoon.com/fr/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## trigger

La méthode `trigger()` force une expérience à se déclencher, en contournant les conditions de segment de ciblage. Cette action lance l'expérience mais pourrait ne pas l'activer.

```javascript theme={null}
let experimentID = 123456;
Kameleoon.API.Experiments.trigger(experimentID, true);
```

**Arguments**

| Name | Type | Description |
| - | - | - |
| experimentID | Number | ID de l'expérience. Ce champ est obligatoire. |
| trackingOnly | Boolean | Définissez sur **true** pour les expériences hybrides (implémentation backend avec suivi frontend) pour effectuer uniquement les actions de suivi sans exécuter les ressources de variation (JS, CSS, redirections). Si omis, la méthode utilise par défaut **false**. |
