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

# Procesar conversiones de objetivos offline en experimentos

> Envíe eventos de conversión offline como compras en tienda física a Kameleoon usando el endpoint Visit de la Data API y verifique su ingestión.

Como ya se ha [explicado anteriormente](./storing-and-retrieving-external-data-to-target-users), la DATA API de Kameleoon permite a los usuarios obtener y escribir datos en los servidores de Kameleoon. Tres endpoints clave facilitan esto: **Visit**, **Product Recommendation** y **Map**.

En algunas situaciones, los eventos de conversión de objetivos que ocurrieron offline, como las transacciones en tienda o por teléfono, deben enviarse a Kameleoon. El endpoint Visit, descrito en este tutorial, publica datos offline para visitantes individuales.

A diferencia del endpoint MAP, que ofrece mayor flexibilidad en la estructura de los datos enviados, el endpoint **Visit** solo permite enviar puntos de datos predefinidos. Estos incluyen conversiones, eventos y eventos de visualización de página, junto con otros [tipos](/user-manual/experiment-analytics/analyze-results/results-page/results-page-settings#Audience) de datos. Esta información ayuda a filtrar y analizar los resultados del experimento de forma eficaz.

Este artículo trata sobre las siguientes operaciones:

* Envío de conversiones de objetivos offline usando el endpoint [POST/visit/events](/api-reference/visit/send-visitor-events).
* Verificación de la transmisión de datos de objetivos offline usando el endpoint [GET/visit/visitor](/api-reference/visit/get-visitor-data).

Para transmitir los datos de conversión offline al servidor de Kameleoon, envíe una solicitud POST correctamente formateada con el **siteCode** y el **visitorCode**:

```shell theme={null}
https://eu-data.kameleoon.io/visit/events?siteCode=example_sitecode&visitorCode=example_visitor_code
```

<Note>
  El dominio de los scripts de Kameleoon puede variar según el proyecto. En función de la fecha de creación, los proyectos están alojados en `kameleoon.eu` o `kameleoon.io`. Utilice el dominio mostrado en la configuración del proyecto en la aplicación Kameleoon. Para Norteamérica, utilice `na-data.kameleoon.io` o `na-data.kameleoon.eu`.
</Note>

* **`siteCode`**: Un ID único asociado al proyecto de experimentación. Las instrucciones para recuperar este código están disponibles en [este enlace](/user-manual/faq#how-do-i-find-my-sitecode).
* **`visitorCode`**: Una cadena única asignada a cada usuario que navega por la aplicación. Asigna los usuarios a los experimentos y variaciones, a la vez que hace seguimiento de sus datos para los informes. Para Kameleoon Web Experimentation, el código de visitante se genera aleatoriamente y se asigna a cada usuario. Para Kameleoon Feature Experimentation, el Web SDK genera el código de visitante, o se puede utilizar un ID personalizado, especialmente para sitios web que requieren inicio de sesión.

<Note>
  Los proyectos que utilizan la reconciliación cross-device de Kameleoon pueden usar el parámetro `mappingIdentifier` en lugar de **`visitorCode`**. Lea [más aquí](../../../cross-device-experimentation).
</Note>

<Note>
  Este endpoint admite conversiones masivas para varios `visitorCode`. Para hacerlo, incluya cada evento en el cuerpo de la solicitud.
</Note>

Los parámetros obligatorios en el cuerpo de la solicitud al enviar datos de objetivo incluyen:

* **`nonce`:** Una cadena aleatoria de 16 caracteres hexadecimales, única para cada evento.
* **`eventType`:** Una cadena que especifica el tipo de evento. Utilice `CONVERSION` para este ejemplo.
* **`goalID`:** El ID único del objetivo. [Este artículo](/user-manual/assets/goals/manage-goals) explica cómo acceder y gestionar los objetivos.
* **`revenue`:** Un parámetro opcional de tipo float que indica los ingresos generados durante la conversión.

Esta información se traduce en la siguiente solicitud cURL:

```shell theme={null}
curl -X POST 'https://eu-data.kameleoon.io/visit/events?siteCode=f17c21u1ag&visitorCode=245fc&json=true' \
-H 'Content-Type: application/json' \
-H 'User-Agent: CustomUserAgent/1.0' \
-d '[{"nonce":"a2bb4d22083348ef","eventType":"CONVERSION","goalId":36151,"revenue":23.50}]'
```

Dado que una solicitud exitosa no proporciona ninguna respuesta de objeto, la siguiente sección muestra cómo verificar el éxito usando el endpoint [GET/visit/visitor](/api-reference/visit/get-visitor-data).

## Verificar los datos de conversión de objetivo offline

Utilice el [endpoint GET](/api-reference/visit/get-visitor-data) para verificar el resultado de la solicitud POST.

La URL de la solicitud debe incluir:

* **`siteCode`:** Consulte la [sección anterior](#sending-offline-goal-conversion) para obtener instrucciones sobre cómo recuperar este código.
* **`visitorCode`:** El mismo código de visitante utilizado en la [sección anterior](#sending-offline-goal-conversion).
* **`maxNumberPreviousVisits`:** Un entero que representa el número máximo de visitas anteriores a devolver.
* **`currentVisit`:** Establecido en `true` para centrarse en la visita actual; el valor por defecto es `false`. ***(Nota: solo está disponible para Kameleoon Feature Experimentation.)***
* **`conversion`:** Establecido en `true` para recuperar los eventos de conversión del usuario especificado y de los objetivos configurados en la cuenta de Kameleoon.

<Note>
  Si Feature Experimentation no está activo, espere a que Kameleoon procese la visita, normalmente tras 30 minutos de inactividad. Los datos de conversión aparecerán entonces en la última visita anterior procesada.
</Note>

Esto se traduce en la siguiente solicitud cURL:

```shell theme={null}
curl -X GET 'https://eu-data.kameleoon.io/visit/visitor?siteCode=f17c21u1ag&visitorCode=245fc&maxNumberPreviousVisits=5&currentVisit=true&conversion=true' \
-H 'Content-Type: application/json' \
-H 'User-Agent: CustomUserAgent/1.0' \
```

Una solicitud GET exitosa devuelve una respuesta que contiene los datos enviados en la solicitud anterior, confirmando que la solicitud POST se realizó correctamente:

```shell theme={null}
{
  "previousVisits": [
    {
      "siteCode": "f17c21u1ag",
      "visitorCode": "245fc",
      "timeStarted": 1740447713028,
      "conversionEvents": [
        {
          "itp": false,
          "time": 1740447713028,
          "data": {
            "goalId": 361517,
            "revenue": 23.50,
            "negative": false,
            "metadata": {}
          }
        }
      ]
    }
  ]
}
```

## Información adicional

En la mayoría de los casos, las conversiones para un objetivo y un visitante específicos se utilizan en los informes de experimentos. Kameleoon vincula las conversiones a los experimentos basándose en varias reglas:

* **Conversiones durante visitas activas:** Si una conversión ocurre mientras el visitante está activo y es objetivo de un experimento, Kameleoon vincula la conversión al experimento para esa visita.
* **Conversiones tras finalizar las visitas:** Si un visitante fue incluido previamente en un experimento pero más tarde realiza una compra a través de un canal diferente (por ejemplo, por teléfono o en tienda), Kameleoon atribuye esa conversión al experimento si ocurre dentro de la ventana de atribución definida (por defecto: siete días). En este escenario, Kameleoon crea una nueva visita asociada con la conversión.

Analizar los datos a nivel de visitante proporciona una visión completa de las conversiones, incluidas las que ocurren durante visitas no segmentadas, siempre que un experimento haya tenido previamente al visitante como objetivo. Consulte [este enlace](/user-manual/experiment-analytics/analyze-results/data-and-metrics/how-kameleoon-counts-conversions) para obtener más información sobre cómo cuenta Kameleoon las conversiones.
