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

# Stocker et récupérer des données externes pour cibler des utilisateurs

> Stockez des données utilisateur externes provenant d'un CRM ou d'un CDP dans Kameleoon à l'aide de l'endpoint Map de la Data API, puis utilisez-les comme condition de ciblage dans les segments d'expérience.

Les solutions Kameleoon Web et Feature Experimentation vous permettent de cibler les utilisateurs en fonction de données externes stockées sur d'autres systèmes (tels que les CRM et CDP), à l'aide de l'[endpoint Map de la Data API](/api-reference/map/update-data-for-several-keys) et des [custom data](../../../custom-data).

Ce tutoriel traite des points suivants :

* Stockage des données utilisateur externes via l'[endpoint POST Map](/api-reference/map/update-data-for-several-keys).
* Lecture des données utilisateur via l'[endpoint GET Map](/api-reference/map/get-data-for-a-key). (Remarque : [cette étape](#récupérer-des-données-via-retrievedatafromremotesource-activation-api) utilise une méthode de l'Activation API pour **Web Experimentation** qui encapsule la **Data API**. Pour **Feature Experimentation**, une méthode similaire est disponible dans tous les SDK Kameleoon, simplifiant le processus en évitant la logique manuelle d'appel à l'API).
* Exploitation des données stockées dans un segment de ciblage en utilisant les custom data avec les expériences.

## Publier des données via l'endpoint MAP de la DATA API

La Data API étant une **API REST**, une requête **POST** vers l'endpoint [MAP](/api-reference/map/update-data-for-several-keys) stocke des informations supplémentaires liées à une clé spécifique, représentant généralement un code visiteur ou un ID utilisateur interne fourni lorsqu'un utilisateur visite le site web.

<Note>
  Vous pouvez obtenir un token d'authentification pour accéder à l'endpoint MAP en suivant le même flux que pour l'[Automation API](../../automation-api-rest/get-started/get-started#authentification) avec des JSON Web Tokens (facultatif). Pour en savoir plus sur l'authentification et la limitation de débit, consultez [cet article](../overview#authentication-and-rate-limiting).
</Note>

La requête cURL doit inclure les paramètres suivants :

* **`siteCode`** : une chaîne de lettres et de chiffres identifiant le projet d'expérience. Consultez [cet article](/user-manual/faq#how-do-i-find-my-sitecode) pour savoir comment le récupérer.
* **Objet JSON** : le corps de la requête contient un objet composé d'une liste de clés et de données utilisateur pertinentes.
* **`User-Agent`** : les requêtes identifiées comme des bots ou des spiders sont rejetées conformément aux [règles de filtrage des user-agents IAB/ABC](https://www.iab.com/guidelines/iab-abc-international-spiders-bots-list/). Kameleoon utilise une méthode en une seule passe, ce qui signifie qu'aucune action n'est requise pour les requêtes provenant des bibliothèques standards des navigateurs web (comme XHR). **Cependant, définissez une valeur `User-Agent` personnalisée pour remplacer la valeur par défaut de la bibliothèque dans d'autres cas.**

```shell theme={null}
curl -X POST -L 'https://eu-data.kameleoon.io/map/maps?siteCode=f17c21u1ag' \
-H 'Content-Type: application/json' \
-H 'User-Agent: MyCustomUserAgent/1.0' \
-d '{
	"myUserID1": {
        "audiencesNames": {
            "premium": true
        }
    },
    "myUserID2": {
        "audiencesNames": {
            "premium": false
        }
    },
    ...
}'
```

<Note>
  Une requête traitée ne renvoie aucun contenu. Pour vérifier le succès, envoyez une requête à [cet endpoint](/api-reference/map/get-data-for-a-key) en utilisant l'URL suivante : `https://eu-data.kameleoon.io/map/map?siteCode=f17c21u1ag&key=myUserID1`
</Note>

## Récupérer des données via `retrieveDataFromRemoteSource` (Activation API)

Avec des données stockées sur les serveurs Kameleoon, utilisez les custom data pour accéder aux informations des personnes visitant le site. Les custom data servent de **condition de ciblage** dans les segments d'expérience.

Tout d'abord, créez et configurez les custom data dans Kameleoon.

Dans le menu de gauche du dashboard Kameleoon, cliquez sur **Custom data** sous **Configure** :

<Frame>
  ![Configuration](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/Configure.png)
</Frame>

Vous serez redirigé vers le dashboard des custom data. Cliquez sur **New custom data** dans le coin supérieur droit.

<Frame>
  ![New\_custom\_data](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/New.png)
</Frame>

Vous serez dirigé vers la fenêtre **Edit the custom data**.

<Frame>
  ![Custom\_data\_window](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/custom-data-window.png)
</Frame>

Exemple : créez un custom data nommé « Premium users » pour les utilisateurs ayant un statut « premium » à `true`. Cette information a été enregistrée à l'[étape précédente](#post-data-using-the-data-apis-map-endpoint).

```shell theme={null}
"audiencesNames": {
  "premium": true
}
```

Pour identifier les utilisateurs avec un statut premium à `true`, ajustez la méthode de récupération sur **Custom JavaScript** et insérez le code suivant pour la méthode `retrieveDataFromRemoteSource` sous **Paste a sample code** :

```javascript theme={null}
Kameleoon.API.Data.retrieveDataFromRemoteSource(user_id, function (data) {

if (data && data.audiencesNames && data.audiencesNames.premium !== undefined) {
Kameleoon.API.Data.setCustomData("Premium users", data.audiencesNames.premium);
}});
return {"value": null};
```

Cette méthode récupère la valeur stockée pour un utilisateur spécifique. Dans l'exemple de code, la variable `user_id` contient l'ID unique de l'utilisateur.

<Note>
  Les projets utilisant Kameleoon Feature Experimentation peuvent utiliser la méthode SDK `getRemoteData()` dans le code du feature flag pour récupérer les données.
</Note>

Une fois que vous avez renseigné toutes les informations dans la fenêtre de création du custom data, cliquez sur **Next**.

<Frame>
  ![Custom\_data\_configured](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/cd.png)
</Frame>

<Frame>
  ![Custom\_data\_configured\_extended](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/cd2.png)
</Frame>

La fenêtre suivante vous présentera des options de configuration supplémentaires qui sont facultatives. Cliquez sur **Create** :

<Frame>
  ![Custom\_data\_created](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/create.png)
</Frame>

Vous serez redirigé vers votre dashboard des custom data où vous trouverez le custom data **Premium** users.

<Frame>
  ![Custom\_data\_dashboard](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/dashboard.png)
</Frame>

Une fois le custom data « Premium users » établi, il peut être utilisé pour le ciblage dans des expériences.

Pour ce faire, cliquez sur **Segments** sous **Configure** sur le côté gauche du dashboard.

<Frame>
  ![Configure\_segment](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/config-segment.png)
</Frame>

Par exemple, si vous souhaitez travailler avec un **New segment**, cliquez sur **Edit**.

<Frame>
  ![New\_segment](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/new-seg.png)
</Frame>

Ensuite, sur le côté gauche de la fenêtre de configuration **Segment**, sous **Conditions** > **Technical**, sélectionnez le custom data **Premium users** que vous avez créé précédemment.

<Frame>
  ![Conditions](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/conditions.png)
</Frame>

Ensuite, sous **Definitions**, configurez le custom data pour inclure les visites avec le **custom data Premium users** défini sur **true**.

<Frame>
  ![definition](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/definition.png)
</Frame>

Cliquez ensuite sur **Next** > **Edit segment**.

<Frame>
  ![EDIT SEGMENT](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/save.png)
</Frame>

Vous avez maintenant configuré avec succès le segment pour inclure les visites avec le custom data **Premium users**.

Pour utiliser New segment dans une expérience, retournez à votre dashboard d'expériences.

Cliquez sur **Edit** à côté de l'expérience à laquelle vous souhaitez associer **New segment**.

<Frame>
  ![Edit-experiment](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/edit-experiment.png)
</Frame>

Une fois redirigé vers la fenêtre ci-dessous, sélectionnez **Targeting** dans le coin supérieur gauche.

<Frame>
  ![Targeting](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/Targeting.png)
</Frame>

Sous **Targeting**, choisissez **Target a segment**, puis sélectionnez **New segment**.

Vous verrez ceci sur votre écran :

<Frame>
  ![Segment\_targetted](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/Segment-targeting.png)
</Frame>

Ensuite, dans le coin supérieur droit, cliquez sur **Launch**.

<Frame>
  ![Launch](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/Launch.png)
</Frame>

Un récapitulatif du brouillon de l'expérience s'affichera.

<Frame>
  ![Draft](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/Draft.png)
</Frame>

Si vous êtes satisfait de la configuration existante, cliquez sur **Launch**.

<Frame>
  ![Launched](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/Launched.png)
</Frame>

Retournez à votre dashboard et cliquez sur l'expérience à laquelle vous avez associé le segment. Vous verrez que **New segment** a été ajouté avec succès à l'expérience :

<Frame>
  ![Final](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/dataapitutorial/Final.png)
</Frame>
