> ## 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を使用して、通知トピック、頻度、チャネル、データプライバシー設定を管理するカスタムユーザープリファレンスセンターをアプリまたはウェブサイトに実装する方法を学びます。

## プリファレンスセンターとは？

プリファレンスセンターは、アプリまたはウェブサイト上のページで、ユーザーが受信するメッセージの方法と種類を制御できるようにするものです。プリファレンスセンターを作成する理由と詳細については、[ユーザープリファレンスセンターのガイド](https://onesignal.com/blog/a-guide-to-user-preference-centers)をご覧ください。

このガイドでは、OneSignalのAPIを使用してアプリまたはウェブサイトにユーザープリファレンスセンターを含めるために必要な技術的なセットアップについて説明します。このガイドでは、次の方法について説明します：

* [データタグ](./add-user-data-tags)を使用してトピック、カテゴリ、頻度制御を割り当てる
* 新しいコミュニケーションチャネル（プッシュ通知、メール、SMS）を収集する
* ユーザーがオプトアウトしたい場合にコミュニケーションチャネルを無効にする
* データコンプライアンスを処理する
* ユーザーデータを削除する

## 要件

* OneSignalのMobile SDKsバージョン5+および/またはWeb SDK 16+
* [External IDまたはAlias](./users)の設定
* OneSignalは、プリファレンスセンターのレイアウトを作成するためのAPIは提供していません。ユーザーとサブスクリプションをGET、PATCH、DELETEするAPIのみを提供しています
  * ウェブサイトがあり、シンプルなプリファレンスセンターが必要な場合は、[カテゴリプロンプト](./permission-requests)をお試しください

### 追加の推奨読み物

* [ユーザープリファレンスセンターのガイド](https://onesignal.com/blog/a-guide-to-user-preference-centers)
* [OneSignal SDKによって収集されるデータ](./data-collected-by-the-onesignal-sdk)
* [個人データの取り扱い](./handling-personal-data)

## セットアップ

ユーザーがプリファレンスセンターにアクセスしたら、[View user](/reference/view-user) APIを使用して、`external_id`または設定したカスタムエイリアスに基づいてユーザーのOneSignalデータを取得します。これにより、ユーザーの`properties`と`subscriptions`が提供されます。役立つデータには以下が含まれますが、これらに限定されません：

* `properties`：ユーザーデータ
  * `tags` - OneSignalに送信するカスタムデータ
  * `language` - ユーザーの言語コード
* `subscriptions`：メッセージングチャネルとサブスクリプションステータス
  * `id` - サブスクリプションID
  * `type` - `Email`、`SMS`、\*Push（`AndroidPush`、`iOSPush`、`ChromePush`、`SafariPush`など）
  * `enabled` - `true`はサブスクライブ済み、`false`はサブスクライブ解除を意味します
  * `token` - サブスクリプションタイプに応じたプッシュトークン、メールアドレス、または電話番号

<CodeGroup>
  ```json json theme={null}
  {
    "properties": {
      "tags": {
        "finance": "1",
        "tech": "1",
        "sports": "1",
        "breaking-news": "0",
        "entertainment": "0",
        "deals": "0",
        "newsletter-frequency": "weekly",
        "customer_status": "Enterprise",
        "event": "1693411710",
        "first_name": "Jon",
        "last_name": "F"
      },
      "language": "en"
    },
    "subscriptions": [
      {
        "id": "sub_id_1",
        "type": "Email",
        "token": "email@example.com",
        "enabled": true
      },
      {
        "id": "sub_id_2",
        "type": "SMS",
        "token": "1234567890",
        "enabled": true
      },
      {
        "id": "sub_id_3",
        "type": "ChromePush",
        "token": "some_token_here",
        "enabled": true
      }
    ]
  }
  ```
</CodeGroup>

提供されたデータを使用して、必要に応じてプリファレンスセンターにデータを入力します。

## カテゴリと頻度制御の割り当て

[データタグ](./add-user-data-tags)を参照してください。タグは、セグメント化とパーソナライゼーションに使用されるキーバリューペアです。範囲ベースのフィルタリングを有効にするには、文字列エンコードされた整数またはタイムスタンプを使用します。

ユーザーは興味をトグルできます（例：`sports: 1`）、または`newsletter-frequency: weekly`のような頻度タグを設定できます。このデータを[セグメント](./segmentation)または[Create notification](/reference/create-message) APIでフィルターと共に使用します。

タグを更新するには、[Update user](/reference/update-user) APIを呼び出します。

## 新しいコミュニケーションチャネルの収集

タイプと有効ステータスについて`subscriptions`を確認します。`token`はメール/SMSの場合のみ表示し、プッシュの場合は表示しません。

<Warning>
  連絡先情報がシステムに存在するがOneSignalにはまだ存在しない場合は、独自のDBをフォールバックとして使用して表示してください。
</Warning>

### メールとSMSの更新

`addEmail`、`addSms` SDKメソッド、または[Create subscription](/reference/create-subscription)と[Update subscription](/reference/update-subscription) APIを使用します。更新にはサブスクリプション`id`が必要です。

### プッシュの更新

プッシュが有効になっていない場合は、ユーザーにプロンプトを表示します。

* モバイルアプリの場合：[プッシュ権限のプロンプト](./prompt-for-push-permissions)
* ウェブの場合：[ネイティブブラウザプロンプト](./permission-requests)または[スライドプロンプト](./permission-requests)を使用

## コミュニケーションチャネルの無効化

[Update subscription](/reference/update-subscription)を使用して`enabled`を`false`に設定します。再度オプトインするには`true`にトグルします。

## データコンプライアンスの処理

デフォルトでSDK初期化を防止し、初期化にユーザーの同意を必要とします。[個人データの取り扱い](./handling-personal-data)を参照してください。

## ユーザーデータの削除

[Delete user](/reference/delete-user) APIを使用して、OneSignalからユーザーを完全に削除します。

***
