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

# Configuración del SDK y tutorial de feature flags

> Configure el SDK de Kameleoon y configure feature flags usando esta lista de comprobación paso a paso que cubre la integración del SDK, la configuración en la aplicación Kameleoon y el modo híbrido opcional.

<Warning>
  Consulte siempre la [documentación del SDK](../../feature-experimentation/get-started/overview) para asegurarse de utilizar los nombres correctos de los métodos. Los métodos siguientes corresponden al **Node.js SDK**. Algunas funcionalidades o métodos pueden no estar disponibles en todos los SDKs.
</Warning>

***

## Resumen de la lista de comprobación del SDK

Esta guía proporciona una lista de comprobación paso a paso para [configurar y usar el SDK de Kameleoon](#configuración-única-en-el-sdk), [configurar Feature Flags](#configuración-única-en-la-aplicación-kameleoon) y, opcionalmente, [habilitar el modo híbrido](#2-modo-híbrido-opcional) (SDK + `engine.js`).

***

## 1. Fundamentos

### Configuración única (en el SDK)

#### Paso 1 – Instalar, configurar e inicializar el SDK

* Instale el SDK y configúrelo prestando atención a:
  * `updateInterval`: define con qué frecuencia el SDK obtiene la última configuración de Kameleoon.
  * `trackingInterval`: define con qué frecuencia el SDK envía los datos rastreados a Kameleoon.
* Cree un nuevo `KameleoonClient` y llame a `initialize()` para cargar la configuración.
* **Solo para PHP SDK:** instale un [cron job](../../sdks/web-sdks/php-sdk#using-the-php-sdk-without-a-cron-job) para recopilar los datos.

***

#### Paso 2 – Establecer el visitor code

* Utilice `getVisitorCode()` o un método personalizado para establecer la cookie `kameleoonVisitorCode`.

***

#### Paso 3 (opcional) – Habilitar [experimentación cross-device](../../cross-device-experimentation) y [clave de bucketing personalizada](../../sdks/web-sdks/nodejs-sdk#uso-de-una-clave-de-bucketing-personalizada)

* **Experimentación cross-device:** comparta el mismo `kameleoonVisitorCode` entre dispositivos.
* **Clave de bucketing personalizada:** muestre la misma variación a un grupo definido de visitantes (por ejemplo, usuarios de la misma organización).

***

#### Paso 4 – Gestionar el consentimiento

* Si un experimento requiere consentimiento, llame a `setLegalConsent()`. *(No es necesario si el tipo de feature flag utiliza Delivery Rules.)*

***

#### Paso 5 – Enviar datos predefinidos

* Utilice `addData()` para segmentar por:

  * Dispositivo
  * Navegador
  * URL de página
  * Otros criterios predefinidos

* Llame a `flush()` para enviar los datos a Kameleoon. *(Nota: `flush` también se llama de forma implícita en `isFeatureActive`, `getVariation` y `trackConversion`.)*

***

#### Paso 6 – Excluir y etiquetar bots

* Excluya los bots de los resultados usando `addData()` con el tipo `userAgent`.
* Para etiquetar los bots internos, pase `curl/8.0` a `userAgent` en `addData()`.

***

### Configuración única (en la [aplicación Kameleoon](https://app.kameleoon.com))

#### Paso 7 – Crear un feature flag

* Cree un nuevo feature flag en la aplicación Kameleoon.
* Añada al menos una **regla** (Delivery o Experiment) al **Rollout Planner**.

***

#### Paso 8 – Definir el segmento

* **Opción 1:** segmente a todos los visitantes en la aplicación Kameleoon e implemente la lógica personalizada en el SDK.
* **Opción 2 (recomendada):** utilice un segmento de Kameleoon en la aplicación Kameleoon.
  * Asegúrese de usar `addData()` en el SDK para enviar los datos utilizados para el targeting (URL de página, dispositivo, navegador, etc.).

***

#### Paso 9 – Asociar objetivos al flag

* Asocie al menos un objetivo para hacer seguimiento de las conversiones.

***

#### Paso 10 – Activar el flag

* Active el flag (**on**) en la aplicación Kameleoon para empezar a servir variaciones.

***

### Configuración por cada flag (en el SDK)

#### Paso 11 – Comprobar la activación de la funcionalidad

* Llame a `isFeatureActive()` para comprobar si un visitante es objetivo:

  * Devuelve `false` si la variación está "off"
  * Devuelve `true` si está activa

* Llame a `getVariation()` para obtener la clave de la variación.

***

#### Paso 12 – Rastrear conversiones y establecer custom data

* Llame a `trackConversion()` con los parámetros pertinentes para rastrear objetivos.
* Opcionalmente, utilice `addData()` para targeting y segmentación personalizados.

***

#### Paso 13 (opcional) – Utilizar [datos previamente recopilados](../targeting-and-segmentation/native-segmentation#when-is-getremotevisitordata-required) o [datos externos](../targeting-and-segmentation/use-external-data-to-target-users)

* **Datos previamente recopilados:** llame a `getRemoteVisitorData()` para reutilizar condiciones recopiladas o precargadas.
* **Datos externos:** utilice la **Data API** para recopilar datos externos y recuperarlos en el SDK mediante `getRemoteData()`.

***

## 2. Modo híbrido (opcional)

Siga estos pasos solo si utiliza el [**modo híbrido**](./hybrid-experimentation) (SDK del lado del cliente + `engine.js`).

### Configuración única (en el SDK)

#### Paso 1 – Instalar engine.js

* Añada el script `engine.js` al front-end.

***

#### Paso 2 – Gestionar el consentimiento en el frontend

Si se requiere consentimiento, gestiónelo usando:

* La **Activation API**
* La `kameleoonQueue` a través de Tag Manager
* Un fragmento de código directo:

```js theme={null}
window.kameleoonQueue.push(['Kameleoon.API.Core.enableLegalConsent', 'BOTH']); 
// or
window.kameleoonQueue.push(['Kameleoon.API.Core.disableLegalConsent', 'BOTH']);
```

***

#### Paso 3 – Sincronizar el visitor code

Si el consentimiento es **obligatorio**, sincronice la cookie del visitor code entre el SDK y el front-end:

```js theme={null}
window.kameleoonQueue.push({
  level: "IMMEDIATE",
  command: () => Kameleoon.API.Visitor.setVisitorCode("<USER_ID>")
});
```

***

### Opcional: Enviar datos a herramientas externas (modo híbrido)

#### Configuración única (en la [aplicación Kameleoon](https://app.kameleoon.com))

##### Paso 1 – Activar la integración con terceros

* En la sección **Integrations** de la aplicación Kameleoon, habilite la herramienta de analítica que desea utilizar (por ejemplo, GA4).

***

#### Configuración por cada flag (en la aplicación Kameleoon)

##### Paso 2 – Activar la integración

* En el **Feature Flag Dashboard**, active la herramienta para el tipo de regla elegido (Experiment o Delivery).
* Asegúrese de que la integración esté habilitada en el entorno correcto (Production, Development o Staging).

***

#### Configuración por cada flag (en el SDK)

##### Paso 3 – Recuperar el código de tracking

* Llame a `getEngineTrackingCode()` en el código del SDK en un plazo de **5 segundos** desde la activación de la funcionalidad (`isFeatureActive` o `getVariation`).

***

##### Paso 4 – Inyectar el código de tracking en la página

Inserte el código devuelto en el HTML:

```js theme={null}
window.kameleoonQueue = window.kameleoonQueue || [];
window.kameleoonQueue.push(['Experiments.assignVariation', 244200, 962266]);
window.kameleoonQueue.push(['Experiments.trigger', 244200, true]);
```

***

##### Paso 5 – Verificar la transmisión de eventos

* En la página segmentada, inspeccione los elementos de la página para confirmar la inyección de código.
* Para GA4, verifique que el evento se inserta en el `dataLayer`.
* En la pestaña **Network**, confirme que el evento se envía a la herramienta de analítica correcta (GA4 debería mostrar un evento "collect").
