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

# Modèle utilisateur et guide de migration

> Apprenez à migrer du modèle centré sur l'appareil de OneSignal vers les nouvelles API et SDK centrés sur l'utilisateur pour un engagement multicanal plus personnalisé.

OneSignal a migré d'un modèle centré sur l'appareil (Player ID) vers un modèle centré sur l'utilisateur basé sur le concept d'utilisateur unifié. Ce guide explique le nouveau modèle, comment il diffère de l'ancienne approche et comment migrer votre application de manière sûre et réussie.

<Note>
  Ce guide est destiné aux clients qui utilisent OneSignal depuis longtemps sur les versions 2, 3 ou 4 de nos SDK mobiles ou la v15 de notre SDK Web.

  Si vous êtes un nouveau client ou avez déjà migré vers la version 5 de nos SDK mobiles ou la v16 de notre SDK Web, vous pouvez ignorer ce guide et consulter :

  * [Utilisateurs](./users)
  * [Abonnements](./subscriptions)
  * [Référence du SDK mobile](./mobile-sdk-reference)
  * [Référence du SDK Web](./web-sdk-reference)
</Note>

<Frame caption="Messagerie multicanal avec le modèle utilisateur">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/aafd98a-small-header-user-model.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=6d6b720a52fb316510a09653bae94385" alt="Illustration multicanal du modèle utilisateur" width="1280" height="720" data-path="images/docs/aafd98a-small-header-user-model.png" />
</Frame>

## Qu'est-ce que le modèle utilisateur ?

Le modèle utilisateur vous permet de cibler des utilisateurs réels sur tous les canaux de messagerie auxquels ils sont abonnés (push mobile, push Web, e-mail, SMS et in-app) plutôt que de cibler des appareils individuels.

Chaque utilisateur :

* Possède un ou plusieurs alias d'identité (par ex. external\_id, alias personnalisé)
* Peut avoir plusieurs abonnements, un pour chaque canal ou appareil
* Inclut des métadonnées comme les tags, la langue et l'historique d'activité

Ce modèle simplifie le ciblage d'audience, prend en charge la messagerie multicanal personnalisée et débloque des fonctionnalités avancées comme les Journeys, les analyses au niveau utilisateur et la résolution d'identité en temps réel.

<Frame caption="Modèle Player vs. Modèle utilisateur">
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/201ccdd-User_Model_Office_Visuals.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=d7910b524fb166050871f47ea344141f" alt="Diagramme montrant la différence entre les modèles Player et utilisateur" width="4064" height="5214" data-path="images/docs/201ccdd-User_Model_Office_Visuals.png" />
</Frame>

***

## Concepts clés

<Tabs>
  <Tab title="Utilisateurs">
    Un **utilisateur** représente une personne réelle. Vous pouvez identifier un utilisateur à l'aide d'alias générés par le système ou personnalisés.

    * `onesignal_id` : Généré automatiquement par OneSignal
    * `external_id` : Défini via le SDK `login()` ou l'API (alias réservé)
    * Alias personnalisés : par ex. `user_id`, `email`, `facebook`, etc.

    En savoir plus : [Utilisateurs](./users)
  </Tab>

  <Tab title="Abonnements">
    Un **abonnement** représente un canal auquel l'utilisateur est abonné. Cela inclut des métadonnées comme les informations de l'appareil, les jetons, l'historique des sessions et le statut d'opt-in.

    * Mobile et In-app
    * Push Web
    * E-mail
    * SMS

    En savoir plus : [Abonnements](./subscriptions)
  </Tab>

  <Tab title="Alias">
    Les alias mappent des identifiants externes (par ex., ID utilisateur de votre application, ID Mixpanel) à un utilisateur OneSignal. Vous pouvez attribuer plusieurs alias pour unifier des identités fragmentées sur plusieurs plateformes.

    * Alias spéciaux :
      * `onesignal_id` : Géré automatiquement, lecture seule
      * `external_id` : Modifiable, compatible avec l'ancien système

    En savoir plus : [Alias et ID externe](./users)
  </Tab>
</Tabs>

***

## Avantages de la migration

* **Identité unifiée** : Un utilisateur sur tous les appareils et canaux
* **Messagerie avancée** : Fonctionnalités puissantes comme les Journeys, le suivi de connexion in-app et les campagnes de cycle de vie
* **Segmentation claire** : Groupez les utilisateurs par tags, statut d'abonnement, engagement par canal, et plus encore
* **API simplifiée** : Moins de points de terminaison, modèle de données plus cohérent

***

## Étapes de migration

<Warning>
  Le modèle utilisateur n'est pas rétrocompatible. La migration est **à sens unique** du modèle Player vers le modèle utilisateur.

  Avant de migrer :

  * Testez minutieusement dans un environnement de préproduction
  * Migrez uniquement après la mise à jour de tous les SDK et services backend
</Warning>

<Steps>
  <Step title="Unifier les utilisateurs avec external_id">
    Utilisez les alias d'identité pour lier les enregistrements de joueurs existants en utilisateurs unifiés.

    **Options** :

    * SDK `login(externalId)`
    * API : [Créer un utilisateur](/reference/create-user), [Mettre à jour un utilisateur](/reference/update-user)
    * CSV : [Importer](./import)

    OneSignal fusionnera automatiquement les abonnements sous le même ID externe.
  </Step>

  <Step title="Mettre à jour vos SDK OneSignal">
    Tous les SDK mobiles OneSignal v5+ et le SDK Web v16+ prennent en charge le modèle utilisateur.

    Déployez les mises à jour du SDK en utilisant des stratégies de déploiement progressif pour minimiser les risques :

    * [Déploiement progressif Apple](https://developer.apple.com/help/app-store-connect/update-your-app/release-a-version-update-in-phases)
    * [Déploiement échelonné Google Play](https://support.google.com/googleplay/android-developer/answer/6346149)

    Voir le [tableau de support des SDK ci-dessous](#sdk-support).
  </Step>

  <Step title="Mettre à jour votre backend pour utiliser les nouvelles API utilisateur">
    Remplacez les appels API du modèle Player obsolètes par les équivalents du modèle utilisateur.

    Utilisez notre [référence API](/reference/rest-api-overview) et les tableaux ci-dessous pour mapper les anciens points de terminaison vers les nouveaux.
  </Step>
</Steps>

## Support des SDK et guides de migration

<Tabs>
  <Tab title="SDK mobiles">
    | Plateforme   | SDK                                                                 | Guide de migration                                                                                         |
    | ------------ | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
    | Android      | [v5+](https://github.com/OneSignal/OneSignal-Android-SDK/releases)  | [Guide](https://github.com/OneSignal/OneSignal-Android-SDK/blob/user-model/main/MIGRATION_GUIDE.md)        |
    | iOS          | [v5+](https://github.com/OneSignal/OneSignal-iOS-SDK/releases)      | [Guide](https://github.com/OneSignal/OneSignal-iOS-SDK/blob/major_release_5.0.0/MIGRATION_GUIDE.md)        |
    | Unity        | [v5+](https://github.com/OneSignal/OneSignal-Unity-SDK/releases)    | [Guide](https://github.com/OneSignal/OneSignal-Unity-SDK/blob/user-model/main/MIGRATION_GUIDE_v3_to_v5.md) |
    | Flutter      | [v5+](https://github.com/OneSignal/OneSignal-Flutter-SDK/releases)  | [Guide](https://github.com/OneSignal/OneSignal-Flutter-SDK/blob/user_model/main/MIGRATION_GUIDE.md)        |
    | React Native | [v5+](https://github.com/OneSignal/react-native-onesignal/releases) | [Guide](https://github.com/OneSignal/react-native-onesignal/blob/major_release_5.0.0/MIGRATION_GUIDE.md)   |
    | .NET MAUI    | [v5+](https://github.com/OneSignal/OneSignal-DotNet-SDK/releases)   | [Guide](https://github.com/OneSignal/OneSignal-DotNet-SDK/blob/user-model/main/MIGRATION_GUIDE.md)         |

    <Note>
      Pour un mappage des anciennes méthodes du modèle Player vers les nouvelles méthodes du modèle utilisateur, voir [Mappage du SDK mobile](./device-user-model-mobile-sdk-mapping).
    </Note>
  </Tab>

  <Tab title="SDK Web">
    | Plateforme | SDK                                                                 | Guide de migration                                                                         |
    | ---------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
    | Web        | [v16+](https://github.com/OneSignal/OneSignal-Website-SDK/releases) | [Guide](https://github.com/OneSignal/OneSignal-Website-SDK/blob/160000/MIGRATION_GUIDE.md) |
    | React      | [v3+](https://www.npmjs.com/package/react-onesignal)                | [Guide](https://github.com/OneSignal/react-onesignal/blob/main/MigrationGuide.md)          |
    | Vue 2 & 3  | [v2+/v3+](https://www.npmjs.com/package/@onesignal/onesignal-vue3)  | [Guide](https://github.com/OneSignal/onesignal-vue/blob/HEAD/MigrationGuide.md)            |
    | Angular    | [v2+](https://www.npmjs.com/package/onesignal-ngx)                  | [Guide](https://github.com/OneSignal/onesignal-ngx/blob/HEAD/MigrationGuide.md)            |

    <Note>
      Pour un mappage des anciennes méthodes du modèle Player vers les nouvelles méthodes du modèle utilisateur, voir [Mappage du SDK Web](./device-user-model-web-sdk-mapping).
    </Note>
  </Tab>

  <Tab title="SDK backend">
    | Langage | SDK                                                                                  |
    | ------- | ------------------------------------------------------------------------------------ |
    | Node    | [@onesignal/node-onesignal](https://www.npmjs.com/package/@onesignal/node-onesignal) |
    | Python  | [onesignal-python-api](https://pypi.org/project/onesignal-python-api/)               |
    | Go      | [onesignal-go-api](https://pkg.go.dev/github.com/OneSignal/onesignal-go-api/v2)      |
    | .NET    | [OneSignalApi](https://www.nuget.org/packages/OneSignalApi)                          |
    | Rust    | [onesignal-rust-api](https://crates.io/crates/onesignal-rust-api)                    |
    | Ruby    | [onesignal](https://rubygems.org/gems/onesignal)                                     |
    | PHP     | [onesignal-php-api](https://packagist.org/packages/onesignal/onesignal-php-api)      |
  </Tab>
</Tabs>

***

## Référence API

<Tabs>
  <Tab title="Modèle Player (Obsolète)">
    | Ancienne API                                   | Remplacement                                                                                   |
    | ---------------------------------------------- | ---------------------------------------------------------------------------------------------- |
    | [Add Device](/reference/add-a-device)          | [Create User](/reference/create-user) ou [Create Subscription](/reference/create-subscription) |
    | [Edit Device](/reference/edit-device)          | [Update User](/reference/update-user) ou [Update Subscription](/reference/update-subscription) |
    | [Delete Player](/reference/delete-user-record) | [Delete User](/reference/delete-user) ou [Delete Subscription](/reference/delete-subscription) |
  </Tab>

  <Tab title="Modèle utilisateur (Nouveau)">
    | Action             | API                                     |
    | ------------------ | --------------------------------------- |
    | Créer              | [Create User](/reference/create-user)   |
    | Consulter          | [View User](/reference/view-user)       |
    | Mettre à jour      | [Update User](/reference/update-user)   |
    | Supprimer          | [Delete User](/reference/delete-user)   |
    | Ajouter un alias   | [Create Alias](/reference/create-alias) |
    | Supprimer un alias | [Delete Alias](/reference/delete-alias) |

    ### API d'abonnement

    | Action        | API                                                       |
    | ------------- | --------------------------------------------------------- |
    | Créer         | [Create Subscription](/reference/create-subscription)     |
    | Mettre à jour | [Update Subscription](/reference/update-subscription)     |
    | Supprimer     | [Delete Subscription](/reference/delete-subscription)     |
    | Transférer    | [Transfer Subscription](/reference/transfer-subscription) |
  </Tab>
</Tabs>

***

## Prochaines étapes

* 📘 Consultez notre documentation sur les [Utilisateurs](./users) et les [Abonnements](./subscriptions)
* 🛠️ Mettez à jour les SDK et testez en préproduction avant de passer en production
* 💬 Besoin d'aide ? Contactez `support@onesignal.com`

<Check>
  Vous êtes maintenant prêt à créer des expériences de messagerie multicanal personnalisées alimentées par le nouveau modèle utilisateur !
</Check>

***
