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

> Referencia de los objetos Experiment, Personalization, activation, Variation y Template.

Estos objetos describen los experimentos y las personalizaciones, y si cada uno de ellos se activó en la visita actual.

## Experiment

Un objeto Experiment representa un A/B test de Kameleoon. Las propiedades principales incluyen el segmento y las variaciones asociadas. Las variaciones contienen el código JavaScript y CSS que implementa los cambios.

**Propiedades**

| Nombre | Tipo | Descripción |
| - | - | - |
| id | Number | ID del experimento. |
| name | String | Nombre del experimento. |
| dateLaunched | Number | Hora del primer lanzamiento del experimento (formato UTC, ms desde el 1 de enero de 1970). |
| dateModified | Number | Hora de la última modificación del experimento (formato UTC, ms desde el 1 de enero de 1970). |
| targetSegment | Object | [Objeto Segment](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#segment) asociado al experimento. |
| variations | Array | Lista de [objetos Variation](#variation) para este experimento. |
| trafficDeviation | Object | Mapa de la desviación de tráfico actual del experimento. Las claves son los ID de las variaciones (el ID **0** es la referencia). Los valores son porcentajes (0-100). La suma puede no ser igual a 100 si parte del tráfico no está asignado. |
| untrackedTrafficReallocationTime | Number | Momento de la última reasignación realizada para el tráfico no rastreado (formato UTC, ms desde el 1 de enero de 1970). Si el motor nunca realizó una reasignación, el valor es **null**. |
| goals | Array | Lista de [objetos Goal](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#goal) rastreados para el experimento. |
| mainGoal | Object | [Objeto Goal](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#goal) que representa el objetivo principal del experimento. |
| triggered | Boolean | Booleano igual a **true** si el experimento se activó en la página; si no, es **false**. |
| active | Boolean | Booleano igual a **true** si el experimento está actualmente activo en la página; en caso contrario, **false**. |
| triggeredInVisit | Boolean | Booleano igual a **true** si el experimento se activó en la visita actual; si no, es **false**. Activarse en una visita significa que la visita cumplió en algún momento las condiciones del segmento del experimento. |
| activatedInVisit | Boolean | Cuando es **true**, el motor activó el experimento durante la visita actual. Que un experimento se active no garantiza su activación; factores como la exclusión de tráfico o el límite de exposición pueden impedirla. |
| nonExpositionReason | String | Si el motor activó el experimento pero no lo aplicó, este campo indica el motivo. Valores posibles: `EXPERIMENT_EXCLUSION` (el visitante pertenece a la población excluida del experimento, es decir, no se cuenta en los resultados) y `VISITOR_CAPPING` (el visitante alcanzó un límite de exposición que impide la activación). Esta propiedad está disponible si el motor activó el experimento en la página actual y `active` es **false**. |
| associatedVariation | Object | [Objeto Variation](#variation) asociado al experimento para el visitante concreto. Si el experimento aún no está activado, normalmente es **null**, salvo que el motor haya preasignado una variación. |
| redirectProcessed | Boolean | Cuando es **true**, se produjo una redirección de URL para este experimento en la página anterior. Usted establece esta propiedad mediante [processRedirect()](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/modules/core.md#processredirect) o mediante configuración manual. En las integraciones basadas en JavaScript, las redirecciones pueden cancelar la ejecución del código posterior; compruebe esta propiedad para volver a enviar las peticiones de red en la página de destino si es necesario. |

## Personalization

Un objeto Personalization representa una acción de personalización de Kameleoon para un segmento específico. Las propiedades principales incluyen el segmento y la única variación asociada. El objeto Variation contiene el código JavaScript y CSS que implementa la acción de personalización.

**Propiedades**

| Nombre | Tipo | Descripción |
| - | - | - |
| id | Number | ID de la personalización. |
| name | String | Nombre de la personalización. |
| dateLaunched | Number | Hora del primer lanzamiento de la personalización (formato UTC, ms desde el 1 de enero de 1970). |
| dateModified | Number | Hora de la última modificación de la personalización (formato UTC, ms desde el 1 de enero de 1970). |
| targetSegment | Object | [Objeto Segment](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#segment) asociado a la personalización. |
| goals | Array | Lista de [objetos Goal](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#goal) rastreados para la personalización. |
| mainGoal | Object | [Objeto Goal](https://docs.kameleoon.com/es/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#goal) que representa el objetivo principal de la personalización. |
| triggered | Boolean | Cuando es **true**, la personalización se disparó en la página. |
| active | Boolean | Cuando es **true**, la personalización está activa (mostrada) en la página. |
| triggeredInVisit | Boolean | Cuando es **true**, la personalización se disparó durante la visita actual. Esto indica que la visita cumplió las condiciones del segmento de la personalización. |
| activatedInVisit | Boolean | Cuando es **true**, el motor mostró la acción de la personalización durante la visita actual. Que una personalización se active no garantiza que el motor muestre la acción; por ejemplo, las opciones de límite de exposición o la pertenencia al grupo de control pueden impedir su visualización. |
| nonExpositionReason | String | Razón de la no exposición si la personalización se disparó pero no se mostró. Valores posibles: `GLOBAL_EXCLUSION`, `PERSONALIZATION_EXCLUSION`, `PRIORITY`, `SCHEDULE`, `PERSONALIZATION_CAPPING`, `VISITOR_CAPPING`, `SCENARIO` y `SIMULATION`. Esta propiedad está disponible si la personalización se disparó en la página actual y `active` es **false**. |
| associatedVariation | Object | [Objeto Variation](#variation) asociado. Esta propiedad siempre hace referencia a un objeto válido para las personalizaciones. |

## ExperimentActivation

Un objeto `ExperimentActivation` representa un experimento activado durante una visita concreta. Como las visitas pueden ser históricas, es posible que el experimento asociado ya se haya detenido. En ese caso, el motor no inserta los metadatos del experimento (nombre, fecha de lanzamiento, segmento) en el archivo de aplicación, por lo que no están disponibles a través de la API. Sin embargo, los ID siguen disponibles.

**Propiedades**

| Nombre | Tipo | Descripción |
| - | - | - |
| experimentID | Number | ID del experimento. |
| associatedVariationID | Number | ID de la variación asociada. Si la variación asociada es la referencia (control), el ID es igual a 0. |
| associatedVariation | Object | [Objeto Variation](#variation) asociado. Esta propiedad es **null** si el experimento o la variación ya no están activos (detenidos o pausados). |
| times | Array | Lista de tiempos de activación de este experimento en esta visita (formato UTC, ms desde el 1 de enero de 1970). |

## PersonalizationActivation

Un objeto `PersonalizationActivation` representa una personalización activada durante una visita específica. Al igual que con los experimentos, los metadatos no están disponibles si la personalización se ha detenido, aunque los IDs siguen siendo accesibles.

**Propiedades**

| Nombre | Tipo | Descripción |
| - | - | - |
| personalizationID | Number | ID de la personalización. |
| associatedVariationID | Number | ID de la variación asociada. |
| personalization | Object | [Objeto Personalization](#personalization) asociado. Esta propiedad es **null** si la personalización ya no está activa (detenida o pausada). |
| associatedVariation | Object | [Objeto Variation](#variation) asociado. Esta propiedad es **null** si la personalización o la variación ya no están activas (detenidas o pausadas). |
| times | Array | Lista de tiempos de activación de esta personalización en esta visita (formato UTC, ms desde el 1 de enero de 1970). |

## Variation

Un objeto `Variation` representa un componente de un `Experiment`. Un A/B test contiene varias variaciones, como un A/B test con una variación más la referencia o un A/B/C test con dos más la referencia. Las personalizaciones se asocian con un único [objeto Variation](#variation).

> [!NOTE]
>
> Durante la ejecución del código de la variación, la palabra clave `this` hace referencia al objeto `Variation` correspondiente. Use esta referencia para navegar por la jerarquía de objetos (por ejemplo, a través de la propiedad `associatedCampaign`).

**Propiedades**

| Nombre | Tipo | Descripción |
| - | - | - |
| id | Number | Id único de la variación. Si la variación representa la referencia (control), el ID es igual a **0**. |
| name | String | Nombre de la variación. Si la variación representa la referencia (control), el nombre es igual a "Reference". |
| associatedCampaign | Object | El objeto [Experiment](#experiment) o [Personalization](#personalization) vinculado a esta variación. |
| instantiatedTemplate | Object | [Objeto Instantiated template](#template) que produjo esta variación, si procede. Si la variación no procede de una plantilla, esta propiedad es **null**. |
| reallocationTime | Number | Momento de la última reasignación de tráfico realizada para la variación (formato UTC, ms desde el 1 de enero de 1970). Si el motor nunca reasignó la variación, el valor es **null**. |

## Template

Un objeto `Template` representa una plantilla de Widget instanciada. Use plantillas para generar variaciones desde una base de código común mediante la interfaz de la app de Kameleoon. Un objeto `Template` contiene campos predefinidos y sus valores para la variación asociada.

**Propiedades**

| Nombre | Tipo | Descripción |
| - | - | - |
| name | String | Nombre de la plantilla base. |
| customFields | Object | Mapa correspondiente a los datos de la plantilla. Las claves son los nombres de los campos definidos en la plantilla base. Los valores son los valores instanciados que introdujo para la variación asociada. Por ejemplo, si creó una plantilla con un único campo de texto "currentDiscount", `customFields` podría ser igual a `{"currentDiscount": "-10% on all orders today!"}`. |
