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

# Cibler les utilisateurs avec des criteres de segmentation natifs

> Declenchez des feature flags en fonction de criteres specifiques et gerez les donnees visiteurs dans les environnements SDK.

Les conditions de ciblage Kameleoon declenchent les feature flags en fonction de criteres specifiques. Pour utiliser ces conditions efficacement, definissez leurs valeurs avec la methode `addData()`. Dans certains scenarios, appelez `getRemoteVisitorData()` pour recuperer les donnees historiques du visiteur. Cette combinaison cree des experiences hautement ciblees et personnalisees.

## Gerer les donnees dans les SDK Kameleoon

Des donnees precises garantissent un ciblage et une expérimentation coherents. Les sections suivantes expliquent comment les SDK cote client et cote serveur gerent les conditions de ciblage et indiquent quand utiliser `getRemoteVisitorData()` pour recuperer des donnees depuis le serveur.

### Terminologie cle

* **Condition de ciblage** : L'attribut specifique de l'utilisateur ou de la session utilise pour le ciblage, comme la conversion, le navigateur ou les donnees personnalisees.
* **Cote client** : Gestion des donnees pour les SDK standards fonctionnant dans un navigateur web ou une application mobile.
* **Cote client (Cross-device)** : Gestion des donnees pour les implementations cote client qui maintiennent un profil visiteur coherent sur plusieurs appareils.
* **Cote serveur** : Gestion des donnees lorsque le SDK s'execute sur un serveur backend. Contrairement aux SDK cote client, les SDK cote serveur suppriment generalement les informations du visiteur apres la fin d'une session.
* **Web-only** : Une condition de ciblage basee sur des donnees que seul un navigateur genere, comme l'URL de la page ou le titre de la page. Les SDK web collectent ces donnees automatiquement. Les SDK Android, iOS et Flutter ne prennent pas en charge ces conditions car aucun navigateur ne genere les donnees. Le SDK React Native offre une prise en charge experimentale de ces conditions. Les SDK cote serveur prennent en charge ces conditions : ils recoivent les donnees via `addData()` ou les recuperent depuis une session web precedente avec `getRemoteVisitorData()`.

### Definitions de gestion des donnees

#### SDK cote client

* **Non (Automatique)** : Le SDK collecte ces donnees automatiquement. Aucune requete distante ni appel explicite a `addData()` n'est requis.
* **Non** : Le SDK ne collecte pas ces donnees automatiquement. Vous devez utiliser `addData()`, `trackConversion()` ou des methodes d'evaluation comme `getVariation()` pour ajouter ces donnees. Aucune requete distante n'est requise.
* **Oui** : Vous devez appeler `getRemoteVisitorData()`. Cette exigence s'applique aux donnees generees sur le serveur (comme "Likelihood to convert") ou lors de l'unification des sessions sur plusieurs appareils pour recuperer les actions d'un appareil precedent.

#### SDK cote serveur

* **Non pris en charge** : Le SDK cote serveur ne prend pas en charge cette condition.
* **Non (Automatique)** : S'applique uniquement a "SDK Type". Le SDK collecte cela automatiquement.
* **Non** : Utilisez `addData()` ou `trackConversion()` pour fournir ces donnees. Aucune requete distante n'est requise.
* **Non/Oui** : Vous pouvez fournir les donnees directement sur le serveur ou les obtenir via une requete distante. Ce cas se produit si un SDK cote client a deja collecte des informations pendant la visite en cours.
* **Oui** : Vous devez appeler `getRemoteVisitorData()`. Comme les SDK cote serveur ont un [stockage de donnees limite](../technical-reference/technical-considerations#stockage-des-donnees), ils necessitent un appel distant pour identifier les actions historiques, telles que les visites precedentes ou l'exclusivite pour une expérience.

## Exigences de collecte de donnees

Le SDK necessite des donnees visiteur specifiques pour evaluer les conditions de ciblage. Le tableau ci-dessous identifie les criteres que le SDK gere automatiquement et ceux qui necessitent un appel de methode explicite.

<Note>
  « Web-only » indique l'origine des donnees, et non les SDK qui peuvent les utiliser. Les conditions web-only proviennent de donnees du navigateur : la plupart des SDK mobiles ne les prennent donc pas en charge, mais les SDK cote serveur si, via `addData()` ou `getRemoteVisitorData()`. Le [SDK React Native](../../sdks/mobile-sdks/react-native-sdk) fait exception parmi les SDK mobiles : il offre une prise en charge experimentale de ces conditions.
</Note>

| Condition de ciblage       | Actions (Web)                                                      | Actions (Mobile)                                                   | Actions (Cote serveur)                                             |
| :------------------------- | :----------------------------------------------------------------- | :----------------------------------------------------------------- | :----------------------------------------------------------------- |
| **Exclusive feature flag** | `isFeatureActive()` / `getVariation(s)` / `getRemoteVisitorData()` | `isFeatureActive()` / `getVariation(s)` / `getRemoteVisitorData()` | `isFeatureActive()` / `getVariation(s)` / `getRemoteVisitorData()` |
| **Target feature flag**    | `isFeatureActive()` / `getVariation(s)` / `getRemoteVisitorData()` | `isFeatureActive()` / `getVariation(s)` / `getRemoteVisitorData()` | `isFeatureActive()` / `getVariation(s)` / `getRemoteVisitorData()` |
| **Browser (web-only)**     | Ajoute automatiquement / `addData()`                               | Non pris en charge\*                                               | `addData()` / `getRemoteVisitorData()`                             |
| **Device**                 | Ajoute automatiquement / `addData()`                               | Ajoute automatiquement / `addData()`                               | `addData()` / `getRemoteVisitorData()`                             |
| **Conversion**             | `addData()` / `getRemoteVisitorData()`                             | `addData()` / `getRemoteVisitorData()`                             | `addData()` / `getRemoteVisitorData()`                             |
| **Custom data**            | `addData()` / `getRemoteVisitorData()`                             | `addData()` / `getRemoteVisitorData()`                             | `addData()` / `getRemoteVisitorData()`                             |
| **Page URL (web-only)**    | Ajoute automatiquement / `addData()`                               | Non pris en charge\*                                               | `addData()` / `getRemoteVisitorData()`                             |
| **Page title (web-only)**  | Ajoute automatiquement / `addData()`                               | Non pris en charge\*                                               | `addData()` / `getRemoteVisitorData()`                             |
| **Operating system**       | Ajoute automatiquement / `addData()`                               | Ajoute automatiquement                                             | `addData()` / `getRemoteVisitorData()`                             |
| **IP geolocation**         | `addData()`                                                        | `addData()`                                                        | `addData()` / `getRemoteVisitorData()`                             |
| **SDK type**               | Ajoute automatiquement                                             | Ajoute automatiquement                                             | Ajoute automatiquement                                             |
| **Visitor code**           | `isFeatureActive()` / `getVariation(s)` / `getRemoteVisitorData()` | `KameleoonClientFactory.create()`                                  | `isFeatureActive()` / `getVariation(s)` / `getRemoteVisitorData()` |
| **Segment**                | `addData()` / `getRemoteVisitorData()`                             | `addData()` / `getRemoteVisitorData()`                             | `addData()` / `getRemoteVisitorData()`                             |
| **Likelihood to convert**  | `getRemoteVisitorData()`                                           | `getRemoteVisitorData()`                                           | `getRemoteVisitorData()`                                           |

\* Non pris en charge dans les SDK Android, iOS et Flutter. Le SDK React Native offre une prise en charge experimentale via `addData()`.

## Utiliser getRemoteVisitorData() pour les donnees historiques

Le tableau suivant decrit quand un appel distant a `getRemoteVisitorData()` est requis pour recuperer des donnees historiques pour les decisions de ciblage.

| Condition de ciblage       | Cote client       | Cote client (Cross-device) | Cote serveur      |
| :------------------------- | :---------------- | :------------------------- | :---------------- |
| **Exclusive feature flag** | Non               | Oui                        | Oui               |
| **Custom data**            | Non               | Oui                        | Oui               |
| **Page URL (web-only)**    | Non (Automatique) | Non (Automatique)          | Non/Oui           |
| **Page title (web-only)**  | Non (Automatique) | Non (Automatique)          | Non/Oui           |
| **IP geolocation**         | Non               | Non                        | Non/Oui           |
| **SDK type**               | Non (Automatique) | Non (Automatique)          | Non (Automatique) |
| **Time since first visit** | Non (Automatique) | Oui                        | Oui               |
| **Total number of visits** | Non (Automatique) | Oui                        | Oui               |
| **Likelihood to convert**  | Oui               | Oui                        | Oui               |

### Avantages de la recuperation distante de donnees

Appeler `getRemoteVisitorData()` offre les avantages suivants :

* **Informations a jour** : Les decisions utilisent des donnees en temps reel issues de la Data API.
* **Coherence cross-device** : Accede aux donnees collectees depuis d'autres appareils ou sessions.
* **Acces historique** : Recupere le comportement passe de l'utilisateur, comme les visites d'URL precedentes, meme si l'etat local du SDK a ete efface.

<Note>
  Utilisez le parametre `VisitorDataFiltersType` pour specifier le nombre de visites passees a recuperer ou pour appliquer des filtres de criteres specifiques.
</Note>

## Mode Hybrid Experimentation

L'expérimentation hybride combine le SDK avec le snippet JavaScript Kameleoon pour permettre un ciblage avance. Pour plus de details, consultez le guide [Hybrid Experimentation](../get-started/hybrid-experimentation).

**Avantages :**

* Simplifie le processus d'implementation.
* Accede aux donnees cote client collectees par le moteur, comme les variables datalayer et les objectifs front-end, directement au niveau du SDK.

**Exigence :**

* Implementez a la fois le SDK et la balise JavaScript Kameleoon.

Appeler `getRemoteVisitorData()` dans ce mode donne acces a tous les points de donnees collectes automatiquement par le moteur Kameleoon sur la page web.
