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

> Referencia de los métodos Kameleoon.API.Experiments que leen, asignan y activan experimentos en vivo.

Este módulo proporciona métodos para acceder a los experimentos en directo.

> [!NOTE]
>
> Este módulo solo está disponible con la solución Kameleoon Web Experimentation.

## assignVariation

El método `assignVariation()` fuerza la asociación de una variación específica a un experimento, lo que anula el algoritmo de asignación estándar. Si lo llama antes de que el experimento se dispare, el motor preasigna la variación para su activación posterior. Si el experimento ya se ha disparado, establezca el argumento **override** en **true** para reemplazar la asociación existente.

```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);
```

**Argumentos**

| Nombre | Tipo | Descripción |
| - | - | - |
| experimentID | Number | ID del experimento. Este campo es obligatorio. |
| variationID | Number | ID de la variación. Este campo es obligatorio. |
| override | Boolean | Cuando es **true**, el motor reemplaza cualquier asociación de variación existente por el valor proporcionado. Si se omite, el método utiliza **false** por defecto. |

## block

El método `block()` evita que un experimento se dispare o se active, incluidas las llamadas manuales a `trigger()`. El bloqueo se aplica a la página actual por defecto hasta la próxima llamada a `Kameleoon.API.Core.load()`. Establezca el argumento **visit** en **true** para bloquear el experimento durante toda la visita.

```javascript theme={null}
// El experimento se bloqueará para la página actual
Kameleoon.API.Experiments.block(12345);

// El experimento se bloqueará para toda la visita
Kameleoon.API.Experiments.block(54321, true);
```

**Argumentos**

| Nombre | Tipo | Descripción |
| - | - | - |
| experimentID | Number | ID del experimento. Este campo es obligatorio. |
| visit | Boolean | Cuando es **true**, el motor bloquea el experimento durante toda la visita. Si se omite, el bloqueo solo se aplica a la página actual (por defecto: **false**). |

## getAll

El método `getAll()` devuelve todos los experimentos en directo (en ejecución; no en borrador/pausados/detenidos).

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

**Valor de retorno**

| Nombre | Tipo | Descripción |
| - | - | - |
| experiments | Array | Lista de [objetos Experiment](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getActive

El método `getActive()` devuelve los experimentos activos para la visita y página actuales. Un experimento está activo si su código de variación se ha ejecutado en el contexto de la sesión actual. Para recuperar experimentos que activó en otras URL durante la visita, use `getActivatedInVisit()`.

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

**Valor de retorno**

| Nombre | Tipo | Descripción |
| - | - | - |
| experiments | Array | Lista de [objetos Experiment](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getById

El método `getById()` devuelve el experimento con el ID especificado.

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

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

**Argumentos**

| Nombre | Tipo | Descripción |
| - | - | - |
| id | Number | ID del experimento. Este campo es obligatorio. |

**Valor de retorno**

| Nombre | Tipo | Descripción |
| - | - | - |
| experiment | Object | [Objeto Experiment](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getByName

El método `getByName()` devuelve el experimento con el nombre especificado.

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

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

**Argumentos**

| Nombre | Tipo | Descripción |
| - | - | - |
| name | String | Nombre del experimento. Este campo es obligatorio. |

**Valor de retorno**

| Nombre | Tipo | Descripción |
| - | - | - |
| experiment | Object | [Objetos Experiment](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getTriggeredInVisit

El método `getTriggeredInVisit()` devuelve todos los experimentos disparados durante la visita actual.

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

**Valor de retorno**

| Nombre | Tipo | Descripción |
| - | - | - |
| experiments | Array | Lista de [objetos Experiment](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## getActivatedInVisit

El método `getActivatedInVisit()` devuelve todos los experimentos activados durante la visita actual.

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

**Valor de retorno**

| Nombre | Tipo | Descripción |
| - | - | - |
| experiments | Array | Lista de [objetos Experiment](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/experiment-and-personalization.md#experiment). |

## trigger

El método `trigger()` fuerza el disparo de un experimento, omitiendo las condiciones de segmentación. Esta acción inicia el experimento pero puede no activarlo.

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

**Argumentos**

| Nombre | Tipo | Descripción |
| - | - | - |
| experimentID | Number | ID del experimento. Este campo es obligatorio. |
| trackingOnly | Boolean | Establezca en **true** para experimentos híbridos (implementación en backend con tracking en frontend) para realizar solo acciones de tracking sin ejecutar los assets de la variación (JS, CSS, redirecciones). Si se omite, el método utiliza **false** por defecto. |
