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

# Traiter les conversions d'objectifs hors ligne dans les expériences

> Envoyez à Kameleoon des événements de conversion hors ligne tels que des achats en magasin à l'aide de l'endpoint Visit de la Data API et vérifiez leur ingestion.

Comme [exploré précédemment](./storing-and-retrieving-external-data-to-target-users), la DATA API de Kameleoon permet aux utilisateurs de récupérer et d'écrire des données sur les serveurs Kameleoon. Trois endpoints clés facilitent cela : **Visit**, **Product Recommendation** et **Map**.

Dans certaines situations, des événements de conversion d'objectif survenus hors ligne, tels que des transactions en magasin ou par téléphone, doivent être envoyés à Kameleoon. L'endpoint Visit, décrit dans ce tutoriel, publie des données hors ligne pour des visiteurs individuels.

Contrairement à l'endpoint MAP, qui offre une plus grande flexibilité dans la structure des données soumises, l'endpoint **Visit** ne permet que la soumission de points de données prédéfinis. Ceux-ci incluent les conversions, les événements et les événements de page vue, ainsi que plusieurs [autres types](/user-manual/experiment-analytics/analyze-results/results-page/results-page-settings#Audience) de données. Ces informations aident à filtrer et analyser efficacement les résultats d'une expérience.

Cet article traite des opérations suivantes :

* Envoi de conversions d'objectifs hors ligne via l'endpoint [POST/visit/events](/api-reference/visit/send-visitor-events).
* Vérification de la transmission des données d'objectifs hors ligne via l'endpoint [GET/visit/visitor](/api-reference/visit/get-visitor-data).

Pour transmettre des données de conversion hors ligne au serveur Kameleoon, envoyez une requête POST correctement formatée avec le **siteCode** et le **visitorCode** :

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

<Note>
  Le domaine des scripts Kameleoon peut varier selon le projet. En fonction de la date de création, les projets sont hébergés sur `kameleoon.eu` ou `kameleoon.io`. Utilisez le domaine affiché dans les paramètres du projet dans l'application Kameleoon. Pour l'Amérique du Nord, utilisez `na-data.kameleoon.io` ou `na-data.kameleoon.eu`.
</Note>

* **`siteCode`** : un ID unique associé au projet d'expérience. Les instructions pour récupérer ce code sont disponibles à [ce lien](/user-manual/faq#how-do-i-find-my-sitecode).
* **`visitorCode`** : une chaîne unique attribuée à chaque utilisateur naviguant sur l'application. Elle assigne les utilisateurs aux expériences et variations tout en suivant leurs données pour le reporting. Pour Kameleoon Web Experimentation, le code visiteur est généré aléatoirement et attribué à chaque utilisateur. Pour Kameleoon Feature Experimentation, le Web SDK génère le code visiteur, ou un ID personnalisé peut être utilisé, en particulier pour les sites web nécessitant une connexion.

<Note>
  Les projets utilisant la réconciliation cross-device de Kameleoon peuvent utiliser le paramètre `mappingIdentifier` à la place du **`visitorCode`**. Lisez [plus ici](../../../cross-device-experimentation).
</Note>

<Note>
  Cet endpoint prend en charge les conversions en masse pour plusieurs `visitorCode`. Pour ce faire, incluez chaque événement dans le corps de la requête.
</Note>

Les paramètres requis pour le corps de la requête lors de l'envoi de données d'objectif incluent :

* **`nonce`** : une chaîne aléatoire de 16 caractères hexadécimaux unique à chaque événement.
* **`eventType`** : une chaîne spécifiant le type d'événement. Utilisez `CONVERSION` pour cet exemple.
* **`goalID`** : l'ID unique de l'objectif. [Cet article](/user-manual/assets/goals/manage-goals) explique comment accéder aux objectifs et les gérer.
* **`revenue`** : un paramètre flottant optionnel indiquant le revenu généré lors de la conversion.

Ces informations se traduisent par la requête cURL suivante :

```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}]'
```

Comme une requête réussie ne fournit pas de réponse objet, la section suivante montre comment vérifier le succès à l'aide de l'endpoint [GET/visit/visitor](/api-reference/visit/get-visitor-data).

## Vérification des données de conversion d'objectif hors ligne

Utilisez l'[endpoint GET](/api-reference/visit/get-visitor-data) pour vérifier le résultat de la requête POST.

L'URL de la requête doit inclure :

* **`siteCode`** : voir la [section précédente](#sending-offline-goal-conversion) pour les instructions sur la récupération de ce code.
* **`visitorCode`** : le même code visiteur utilisé dans la [section précédente](#sending-offline-goal-conversion).
* **`maxNumberPreviousVisits`** : un entier représentant le nombre maximum de visites précédentes à renvoyer.
* **`currentVisit`** : définissez sur `true` pour vous concentrer sur la visite en cours ; la valeur par défaut est `false`. ***(Remarque : ceci n'est disponible que pour Kameleoon Feature Experimentation.)***
* **`conversion`** : définissez sur `true` pour récupérer les événements de conversion pour l'utilisateur spécifié et les objectifs configurés dans le compte Kameleoon.

<Note>
  Si Feature Experimentation n'est pas actif, attendez que Kameleoon traite la visite, généralement après 30 minutes d'inactivité. Les données de conversion apparaissent alors dans la dernière visite précédente calculée.
</Note>

Cela se traduit par la requête cURL suivante :

```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' \
```

Une requête GET réussie renvoie une réponse contenant les données envoyées dans la requête précédente, confirmant que la requête POST a réussi :

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

## Informations supplémentaires

Dans la plupart des cas, les conversions pour un objectif et un visiteur spécifiés sont utilisées dans les rapports d'expérience. Kameleoon associe les conversions aux expériences en fonction de plusieurs règles :

* **Conversions pendant des visites actives** : si une conversion se produit alors que le visiteur est actif et ciblé par une expérience, Kameleoon associe la conversion à l'expérience pour cette visite.
* **Conversions après la fin des visites** : si un visiteur a été précédemment inclus dans une expérience mais effectue ensuite un achat via un autre canal (par exemple, par téléphone ou en magasin), Kameleoon attribue cette conversion à l'expérience si elle se produit dans la fenêtre d'attribution définie (par défaut : sept jours). Kameleoon crée une nouvelle visite associée à la conversion dans ce scénario.

L'analyse des données au niveau du visiteur offre une vue complète des conversions, y compris celles survenant lors de visites non ciblées, à condition qu'une expérience ait précédemment ciblé le visiteur. Voir [ce lien](/user-manual/experiment-analytics/analyze-results/data-and-metrics/how-kameleoon-counts-conversions) pour plus d'informations sur la façon dont Kameleoon compte les conversions.
