> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Utilisateurs

> Comprenez comment fonctionnent les utilisateurs dans OneSignal, y compris l'identification des utilisateurs, l'ID OneSignal, l'External ID et comment les abonnements et les propriétés utilisateur sont gérés sur tous les canaux.

## Aperçu

Dans OneSignal, un **utilisateur** représente un individu avec un ou plusieurs [Abonnements](./subscriptions) sur vos canaux de messagerie (push mobile, push Web, e-mail et SMS).

* Chaque utilisateur peut avoir jusqu'à **20 abonnements**.
* Chaque utilisateur se voit automatiquement attribuer un **OneSignal ID** (UUID v4).
* Les utilisateurs commencent comme **anonymes** jusqu'à ce que vous leur attribuiez un **External ID**. L'attribution d'un External ID relie les abonnements ensemble et peut remplacer l'ID OneSignal existant si l'utilisateur existe déjà dans votre application.
* **Les utilisateurs et les abonnements ont des propriétés différentes.** Par exemple, les **tags** sont stockés au niveau utilisateur, tandis que le **statut d'abonnement** (opt-in/out) appartient à l'abonnement.
* Lorsque le contexte utilisateur change — par exemple, lors de la connexion (anonyme → identifié) ou du changement de compte (UtilisateurA → UtilisateurB) — l'**abonnement est réattribué** de l'ancien utilisateur au nouveau.
  * L'abonnement héritera désormais des propriétés du nouvel utilisateur.
  * Les propriétés liées à l'utilisateur précédent (comme les tags, la langue ou l'External ID) ne s'appliqueront plus.

**Exemple :**

* UtilisateurA a le tag `premium=true`
* UtilisateurB a le tag `premium=false`
* Si un abonnement passe de UtilisateurA à UtilisateurB, il ne sera plus associé à `premium=true` et reflétera plutôt les propriétés de UtilisateurB.

<Frame>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/yZM6zn7nLDw?si=oT7ncbhX0sNtmKML" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

### Utilisateurs anonymes vs identifiés

* **Utilisateur anonyme :** N'a pas d'External ID → chaque abonnement est séparé avec son propre ID OneSignal (traité comme des utilisateurs séparés).
* **Utilisateur identifié :** A un External ID → OneSignal fusionne tous les abonnements sous un seul ID OneSignal.

**Exemple : Utilisateur anonyme**

* Abonnement push Web → `OneSignal_ID_1`
* Abonnement mobile → `OneSignal_ID_2`
* Abonnement e-mail → `OneSignal_ID_3`
* Abonnement SMS → `OneSignal_ID_4`
* **Résultat :** Quatre utilisateurs (chaque abonnement est un utilisateur séparé avec des propriétés uniques)

**Exemple : Utilisateur identifié**

* Abonnement push Web avec External ID `External_ID_A` → `OneSignal_ID_1`
* Abonnement mobile avec le même `External_ID_A` → fusionné dans `OneSignal_ID_1`
* Abonnement e-mail avec le même `External_ID_A` → fusionné dans `OneSignal_ID_1`
* Abonnement SMS avec le même `External_ID_A` → fusionné dans `OneSignal_ID_1`
* **Résultat :** Un utilisateur avec quatre abonnements (tous liés au même utilisateur)

<Note>
  Attribuez toujours un External ID. Cela garantit que les abonnements sur tous les canaux et appareils s'unifient sous un seul profil utilisateur et évite la duplication.

  * Utilisez des identifiants stables et non génériques (par ex. votre ID utilisateur interne ou adresse e-mail).
  * Appelez `OneSignal.login` tôt dans le cycle de vie de votre application.
</Note>

***

## Propriétés utilisateur

| Propriété            | Description                                                                                                                                                                                                                          |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **External ID**      | Un identifiant unique que vous attribuez pour unifier l'utilisateur avec votre système.                                                                                                                                              |
| **OneSignal ID**     | Un UUID v4 généré automatiquement par OneSignal pour chaque utilisateur. Il peut changer lors de l'attribution d'un External ID.                                                                                                     |
| **Alias**            | Paires clé-valeur comme `mixpanel_id : 1234`. Voir [Alias](./aliases).                                                                                                                                                               |
| **Canal**            | Les [Abonnements](./subscriptions) que l'utilisateur possède, tels que Push, E-mail ou SMS.                                                                                                                                          |
| **Pays**             | Code pays au [format ISO 3166-1 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).                                                                                                                                          |
| **E-mail**           | E-mail du plus récent abonnement e-mail.                                                                                                                                                                                             |
| **Première session** | Quand l'utilisateur a été initialement créé dans OneSignal.                                                                                                                                                                          |
| **Adresse IP**       | De l'abonnement le plus récemment mis à jour.                                                                                                                                                                                        |
| **Langue**           | Langue de l'utilisateur au [format ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes). Peut être mis à jour via l'API ou `setLanguage`.                                                                        |
| **Dernière session** | L'horodatage le plus récent de l'interaction avec l'application.                                                                                                                                                                     |
| **Emplacement**      | Coordonnées GPS des abonnements mobiles (si le suivi de localisation est activé). Voir [Notifications déclenchées par la localisation](./location-triggered-event).                                                                  |
| **Téléphone**        | Numéro de téléphone du plus récent abonnement SMS.                                                                                                                                                                                   |
| **Tags**             | Métadonnées personnalisées (par ex. préférences, comportement). Voir [Tags de données](./add-user-data-tags).                                                                                                                        |
| **Test User name**   | Un label attribué lors du marquage d'un utilisateur comme utilisateur test. À définir via le tableau de bord ou la propriété `test_user_name` dans l'API. Voir [Abonnements test](./find-set-test-subscriptions#test-subscriptions). |
| **Fuseau horaire**   | `timezone_id` au [format IANA TZ](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), défini par le SDK. Peut être mis à jour via l'API.                                                                                  |

## OneSignal ID

L'**OneSignal ID** est un UUID v4 interne généré pour représenter de manière unique un utilisateur. Il est automatiquement créé dans des scénarios tels que :

* Première ouverture de l'application mobile (ou après réinstallation)
* Nouvel abonnement push Web
* Création d'utilisateurs/abonnements via [Create user](/reference/create-user) ou [Import CSV](./import)
* Effacement du cache du navigateur et retour sur le site
* Déconnexion avec `OneSignal.logout`

Une fois qu'un **External ID** est utilisé via `OneSignal.login`, tout ID OneSignal existant lié à l'abonnement actuel est remplacé par celui associé à cet External ID. Les abonnements sur différentes plateformes (Push, E-mail, SMS) seront fusionnés sous le même ID OneSignal s'ils partagent le même External ID.

### Réattribution et comportement

Si un utilisateur réinstalle l'application ou efface le cache, un nouvel ID OneSignal et un nouvel abonnement sont créés. Cependant, l'appel de `OneSignal.login` liera le nouvel abonnement au profil utilisateur d'origine.

Les abonnements ajoutés via `OneSignal.User.addEmail` ou `addSms` hériteront de l'ID OneSignal actuel.

Références SDK :

* [Référence du SDK mobile](./mobile-sdk-reference)
* [Référence du SDK Web](./web-sdk-reference)

## External ID

L'**External ID** est une chaîne unique que vous attribuez aux utilisateurs pour les suivre sur tous les appareils et abonnements.

<Frame caption="Utilisez l'External ID pour suivre l'utilisateur sur tous ses abonnements.">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a30870df69f4545ec68fc9ff9902784b35ede0dd0ce7b3a5b03b8acb6bb1c748-eid.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=bcb07ae72a25e91288a5034a3e0ecb17" width="560" height="452" data-path="images/docs/a30870df69f4545ec68fc9ff9902784b35ede0dd0ce7b3a5b03b8acb6bb1c748-eid.png" />
</Frame>

Vous pouvez définir ou supprimer l'External ID via :

* `OneSignal.login` - **Recommandé** voir [SDK mobile](./mobile-sdk-reference#login-external-id) et [SDK Web](./web-sdk-reference#login-external-id)
* [API Create user](/reference/create-user)
* [API Transfer subscription](/reference/transfer-subscription)
* `OneSignal.logout` (pour supprimer)

### ID restreints

N'utilisez pas de valeurs placeholder ou de valeurs temporaires pour les External ID.

Les valeurs suivantes ne peuvent pas être utilisées pour les External ID :

* `NA`
* `NULL`
* `-1`
* `0`
* `1`
* `all`
* `00000000-0000-0000-0000-000000000000`

***

## Plusieurs utilisateurs sur le même appareil

Lorsque plusieurs utilisateurs partagent un appareil, chaque nouvelle connexion doit déclencher un appel à `OneSignal.login` avec un External ID différent. Cela réattribue l'ID OneSignal et l'abonnement au nouvel utilisateur.

Pour gérer la déconnexion, vous pouvez faire ce qui suit pour supprimer le contexte utilisateur :

* Appelez `OneSignal.logout()` → efface l'External ID, supprime les propriétés utilisateur précédentes (tags, alias, etc.) et attribue un ID OneSignal anonyme.
* Désactivez éventuellement les notifications en utilisant `optOut`, et réactivez-les avec `optIn` lors de la reconnexion.

***

## Utilisateurs actifs mensuels (MAU)

Les MAU sont utilisés pour la **facturation** et sont définis comme un [Abonnement](./subscriptions) mobile ayant une dernière session dans la période de facturation de 30 jours. Cela inclut :

* Les utilisateurs qui ouvrent votre application pour la première fois, créant un abonnement mobile via notre SDK
* Les utilisateurs qui réinstallent l'application et l'ouvrent à nouveau, créant un autre abonnement mobile via notre SDK
* Les utilisateurs importés via notre API

### Exemple de facturation MAU

Si un utilisateur a ces abonnements :

* Mobile iOS (actif au cours des 30 derniers jours)
* Mobile Android (actif au cours des 30 derniers jours)
* Push Web
* E-mail
* SMS

Seuls les abonnements mobiles iOS et Android comptent, ce qui donne **2 MAU**.

Le statut d'abonnement n'a pas d'importance pour la facturation MAU.

### Réduire les MAU (par ex., cas d'utilisation de paywall)

Vous pouvez retarder l'initialisation du SDK et la création d'abonnement en utilisant les [méthodes de confidentialité](./mobile-sdk-reference#privacy) du SDK mobile.

1. Appelez `setConsentRequired()` avant d'initialiser le SDK – cela empêche la création automatique d'un abonnement
2. Appelez `setConsentGiven()` lorsque vous êtes prêt à créer un abonnement pour l'utilisateur

***
