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

# ユーザーモデルと移行ガイド

> OneSignalのデバイス中心モデルから、よりパーソナライズされたマルチチャネルエンゲージメントのための新しいユーザー中心APIとSDKに移行する方法を学びます。

OneSignalは、デバイス中心（Player ID）モデルから、統一されたユーザーの概念を中心に構築されたユーザー中心モデルに移行しました。このガイドでは、新しいモデル、古いアプローチとの違い、アプリを安全かつ正常に移行する方法について説明します。

<Note>
  このガイドは、モバイルSDKのバージョン2、3、または4、またはWeb SDKのv15を長期間使用しているお客様向けです。

  新規のお客様、またはすでにモバイルSDKのバージョン5またはWeb SDKのv16に移行済みの場合は、このガイドをスキップして以下に進んでください：

  * [ユーザー](./users)
  * [サブスクリプション](./subscriptions)
  * [モバイルSDKリファレンス](./mobile-sdk-reference)
  * [Web SDKリファレンス](./web-sdk-reference)
</Note>

<Frame caption="ユーザーモデルによるマルチチャネルメッセージング">
  <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="User Model multi-channel illustration" width="1280" height="720" data-path="images/docs/aafd98a-small-header-user-model.png" />
</Frame>

## ユーザーモデルとは？

ユーザーモデルを使用すると、個々のデバイスをターゲットにするのではなく、サブスクライブしているすべてのメッセージングチャネル（モバイルプッシュ、Webプッシュ、メール、SMS、アプリ内）で実際のユーザーをターゲットにできます。

各ユーザー：

* 1つ以上のIDエイリアス（例：external\_id、カスタムエイリアス）を持ちます
* 各チャネルまたはデバイスごとに複数のサブスクリプションを持つことができます
* タグ、言語、アクティビティ履歴などのメタデータが含まれます

このモデルは、オーディエンスターゲティングを簡素化し、パーソナライズされたマルチチャネルメッセージングをサポートし、Journeys、ユーザーレベル分析、リアルタイムID解決などの高度な機能のロックを解除します。

<Frame caption="PlayerモデルとUserモデルの比較">
  <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="Diagram showing difference between Player and User Models" width="4064" height="5214" data-path="images/docs/201ccdd-User_Model_Office_Visuals.png" />
</Frame>

***

## 主要な概念

<Tabs>
  <Tab title="ユーザー">
    **ユーザー**は実在の人物を表します。システム生成またはカスタムエイリアスを使用してユーザーを識別できます。

    * `onesignal_id`：OneSignalによって自動生成
    * `external_id`：SDK `login()`またはAPIを介して設定（予約済みエイリアス）
    * カスタムエイリアス：例：`user_id`、`email`、`facebook`など

    詳細：[ユーザー](./users)
  </Tab>

  <Tab title="サブスクリプション">
    **サブスクリプション**は、ユーザーがサブスクライブしているチャネルを表します。これには、デバイス情報、トークン、セッション履歴、オプトインステータスなどのメタデータが含まれます。

    * モバイルとアプリ内
    * Webプッシュ
    * メール
    * SMS

    詳細：[サブスクリプション](./subscriptions)
  </Tab>

  <Tab title="エイリアス">
    エイリアスは、外部識別子（例：アプリのユーザーID、Mixpanel ID）をOneSignalユーザーにマップします。複数のエイリアスを割り当てて、プラットフォーム間で断片化されたIDを統合できます。

    * 特別なエイリアス：
      * `onesignal_id`：自動管理、読み取り専用
      * `external_id`：書き込み可能、レガシー互換

    詳細：[エイリアスと外部ID](./users)
  </Tab>
</Tabs>

***

## 移行のメリット

* **統一されたID**：すべてのデバイスとチャネルで1人のユーザー
* **高度なメッセージング**：Journeys、アプリ内ログイン追跡、ライフサイクルキャンペーンなどの強力な機能
* **クリーンなセグメンテーション**：タグ、サブスクリプションステータス、チャネルエンゲージメントなどでユーザーをグループ化
* **簡素化されたAPI**：エンドポイントが少なく、より一貫したデータモデル

***

## 移行手順

<Warning>
  ユーザーモデルには後方互換性がありません。移行は、PlayerモデルからUserモデルへの**一方向**です。

  移行前に：

  * ステージング環境で徹底的にテストします
  * すべてのSDKとバックエンドサービスが更新された後にのみ移行します
</Warning>

<Steps>
  <Step title="external_idでユーザーを統合">
    IDエイリアスを使用して、既存のplayerレコードを統一されたユーザーにリンクします。

    **オプション**：

    * SDK `login(externalId)`
    * API：[Create User](/reference/create-user)、[Update User](/reference/update-user)
    * CSV：[インポート](./import)

    OneSignalは、同じExternal ID下のサブスクリプションを自動的にマージします。
  </Step>

  <Step title="OneSignal SDKを更新">
    すべてのOneSignalモバイルSDK v5+およびWeb SDK v16+はユーザーモデルをサポートしています。

    リスクを最小限に抑えるために、段階的デプロイメント戦略を使用してSDK更新をロールアウトします：

    * [Apple段階的ロールアウト](https://developer.apple.com/help/app-store-connect/update-your-app/release-a-version-update-in-phases)
    * [Google Playステージドロールアウト](https://support.google.com/googleplay/android-developer/answer/6346149)

    [以下のSDKサポート表](#sdk-support)を参照してください。
  </Step>

  <Step title="バックエンドを更新して新しいUser APIを使用">
    非推奨のPlayer Model API呼び出しを、新しいUser Model相当のものに置き換えます。

    [APIリファレンス](/reference/rest-api-overview)と以下の表を使用して、古いエンドポイントを新しいものにマップします。
  </Step>
</Steps>

## SDKサポートと移行ガイド

<Tabs>
  <Tab title="モバイルSDK">
    | プラットフォーム     | SDK                                                                 | 移行ガイド                                                                                                    |
    | ------------ | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
    | Android      | [v5+](https://github.com/OneSignal/OneSignal-Android-SDK/releases)  | [ガイド](https://github.com/OneSignal/OneSignal-Android-SDK/blob/user-model/main/MIGRATION_GUIDE.md)        |
    | iOS          | [v5+](https://github.com/OneSignal/OneSignal-iOS-SDK/releases)      | [ガイド](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)    | [ガイド](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)  | [ガイド](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) | [ガイド](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)   | [ガイド](https://github.com/OneSignal/OneSignal-DotNet-SDK/blob/user-model/main/MIGRATION_GUIDE.md)         |

    <Note>
      古いplayerモデルメソッドから新しいユーザーモデルメソッドへのマップについては、[モバイルSDKマッピング](./device-user-model-mobile-sdk-mapping)を参照してください。
    </Note>
  </Tab>

  <Tab title="Web SDK">
    | プラットフォーム  | SDK                                                                 | 移行ガイド                                                                                    |
    | --------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
    | Web       | [v16+](https://github.com/OneSignal/OneSignal-Website-SDK/releases) | [ガイド](https://github.com/OneSignal/OneSignal-Website-SDK/blob/160000/MIGRATION_GUIDE.md) |
    | React     | [v3+](https://www.npmjs.com/package/react-onesignal)                | [ガイド](https://github.com/OneSignal/react-onesignal/blob/main/MigrationGuide.md)          |
    | Vue 2 & 3 | [v2+/v3+](https://www.npmjs.com/package/@onesignal/onesignal-vue3)  | [ガイド](https://github.com/OneSignal/onesignal-vue/blob/HEAD/MigrationGuide.md)            |
    | Angular   | [v2+](https://www.npmjs.com/package/onesignal-ngx)                  | [ガイド](https://github.com/OneSignal/onesignal-ngx/blob/HEAD/MigrationGuide.md)            |

    <Note>
      古いplayerモデルメソッドから新しいユーザーモデルメソッドへのマップについては、[Web SDKマッピング](./device-user-model-web-sdk-mapping)を参照してください。
    </Note>
  </Tab>

  <Tab title="バックエンドSDK">
    | 言語     | 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>

***

## APIリファレンス

<Tabs>
  <Tab title="Playerモデル（非推奨）">
    | 古いAPI                                          | 置き換え                                                                                          |
    | ---------------------------------------------- | --------------------------------------------------------------------------------------------- |
    | [Add Device](/reference/add-a-device)          | [Create User](/reference/create-user)または[Create Subscription](/reference/create-subscription) |
    | [Edit Device](/reference/edit-device)          | [Update User](/reference/update-user)または[Update Subscription](/reference/update-subscription) |
    | [Delete Player](/reference/delete-user-record) | [Delete User](/reference/delete-user)または[Delete Subscription](/reference/delete-subscription) |
  </Tab>

  <Tab title="Userモデル（新規）">
    | アクション    | API                                     |
    | -------- | --------------------------------------- |
    | 作成       | [Create User](/reference/create-user)   |
    | 表示       | [View User](/reference/view-user)       |
    | 更新       | [Update User](/reference/update-user)   |
    | 削除       | [Delete User](/reference/delete-user)   |
    | エイリアスを追加 | [Create Alias](/reference/create-alias) |
    | エイリアスを削除 | [Delete Alias](/reference/delete-alias) |

    ### サブスクリプションAPI

    | アクション | API                                                       |
    | ----- | --------------------------------------------------------- |
    | 作成    | [Create Subscription](/reference/create-subscription)     |
    | 更新    | [Update Subscription](/reference/update-subscription)     |
    | 削除    | [Delete Subscription](/reference/delete-subscription)     |
    | 転送    | [Transfer Subscription](/reference/transfer-subscription) |
  </Tab>
</Tabs>

***

## 次のステップ

* 📘 [ユーザー](./users)と[サブスクリプション](./subscriptions)のドキュメントを参照してください
* 🛠️ SDKを更新し、本番環境に移行する前にステージング環境でテストします
* 💬 サポートが必要ですか？`support@onesignal.com`にお問い合わせください

<Check>
  これで、新しいユーザーモデルを活用したパーソナライズされたマルチチャネルメッセージングエクスペリエンスを構築する準備が整いました！
</Check>

***
