> ## 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で適切なパーソナライゼーション方法を選択しましょう。プロパティ、Custom Events、API custom_data、Data Feeds、CSVアップロードを比較し、Liquid構文を使用して動的メッセージを送信する方法を解説します。

<Frame>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/71gtwxKWlN8?si=mlgmP6eE3652r_cX" 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>

パーソナライゼーションを使用すると、ユーザーの名前、カート内の商品、アカウント残高、予約詳細、ワンタイムパスワードなどの動的データを含むメッセージを送信できます。

このガイドでは、以下の基準に基づいて適切なパーソナライゼーション方法を選択する方法を説明します：

* データがどこにあるか
* データを永続化する必要があるか
* メッセージがどのようにトリガーされるか

***

## パーソナライゼーションの仕組み

OneSignalのパーソナライゼーションは2つの要素で構成されます：

1. **Liquid構文** — メッセージ内で値がどのようにレンダリングされるかを定義します
2. **データソース** — 値がどこから取得されるかを決定します

送信時に、OneSignalは選択されたデータソースを使用してLiquid変数を解決します。

<Info>
  Liquidはフォーマットとロジック（変数、ループ、条件文）を制御します。データソースはどの値が利用可能かを決定します。
</Info>

**例：**

```liquid Liquid theme={null}
Hi {{ user.tags.first_name }},

Your verification code is {{ message.custom_data.otp }}.
```

* `user.tags.first_name` は保存されたプロパティです
* `message.custom_data.otp` はAPI の `custom_data` フィールドを介して渡されます

***

## メッセージタイプ別のサポートされるフィールド

<Tabs>
  <Tab title="Email">
    * 件名、返信先、プリヘッダー
    * メッセージ本文
    * HTMLブロックでの画像置換。例：`<img src="{{image_url}}"/>`
    * URL、メール送信などのボタンブロックアクションおよびその他のフィールド。
  </Tab>

  <Tab title="Push">
    * タイトル（`headings`）、サブタイトル、本文（`contents`）
    * 画像URL
    * 起動URL。例：`https://example.com/{{last_category_viewed}}`
    * 追加の`data`はLiquid構文をサポートしていません。
  </Tab>

  <Tab title="SMS">
    * メッセージ本文（`contents`）
  </Tab>

  <Tab title="In-App Messages">
    <Warning>
      現時点ではタグ置換のみがサポートされています。

      タグは、ユーザーがアプリを開いて新しいセッションを開始する前に設定する必要があります。使用可能なタグは[`getTags`メソッド](./mobile-sdk-reference#gettags)にあります。
    </Warning>

    **ブロックエディター：**

    * タグ置換は、テキスト、ボタン、画像ブロックで機能します。

    **HTMLエディター：**

    * タグ置換は次で機能します：
      * ヘッダー`<h*>`および`<p>`タグ。例：`<h2>Hello {{first_name}}!</h2>`
      * 要素属性：`["src", "href", "action", "data"]`。例：`<img src="{{image_url}}"/>`

    <Note>
      詳細と例については、[アプリ内メッセージJavaScript API](./in-app-message-api)を参照してください。
    </Note>
  </Tab>

  <Tab title="Live Activities">
    * `event_updates`、`contents`、`headings`プロパティ内。
  </Tab>
</Tabs>

***

## データソース

OneSignalはパーソナライゼーション用に5つのデータソースをサポートしています。以下の表を使用してユースケースに合ったソースを特定し、実装ガイダンスについては詳細セクションをお読みください。

| データソース                                    | 内容                                             | 使用タイミング                            | 永続化    | Journeysで利用可能 |
| ----------------------------------------- | ---------------------------------------------- | ---------------------------------- | ------ | ------------- |
| [**プロパティ**](#properties)                  | Tags、External ID、サブスクリプションデータ、アプリフィールド         | OneSignalに保存された再利用可能な値（名前、プラン、設定）  | あり     | あり            |
| [**Custom Events**](#custom-events)       | Journeyエントリーまたは Wait Until 時にキャプチャされたイベントプロパティ | Journeys内の行動ベースのパーソナライゼーション        | イベントごと | Journeyのみ     |
| [**API `custom_data`**](#api-custom_data) | Create Message APIで渡されるキーと値のペア                 | ワンタイムまたは機密性の高い値（OTP、セキュアリンク、カート商品） | なし     | なし            |
| [**Data Feeds**](#data-feeds)             | 送信時に行われるライブAPI呼び出し                             | 頻繁に変化する値（価格、在庫、アカウント残高）            | なし     | あり            |
| [**動的コンテンツCSV**](#dynamic-content-csv)    | ダッシュボードでアップロードされたCSV                           | 受信者ごとにコンテンツが異なる一括キャンペーン            | 送信ごと   | なし            |

<Warning>
  **避けるべきよくある間違い**

  * OTPや認証コードなどのワンタイムの値にプロパティ（Tags）を使用する — 代わりに`custom_data`を使用してください
  * `custom_data`がJourneysや将来のメッセージで利用できると期待する — 現在のAPIリクエストにのみ存在します
  * Custom EventsのプロパティがイベントトリガーのジャーニーエントリーやWait Untilステップ以外で利用できると想定する
  * めったに変更されない静的データにData Feedsを使用する — 代わりにプロパティを使用してください
</Warning>

### プロパティ

プロパティには、ユーザーTags、External ID、サブスクリプションデータ、アプリレベルのフィールドが含まれます。

これらの特徴：

* 永続的
* 再利用可能
* メッセージ、テンプレート、[Journey Webhooks](./journeys-webhook)、[Event Streams](./event-streams)全体で利用可能

**プロパティを使用するタイミング：**

* 値がOneSignalに存在する場合
* 値が永続的である場合
* キャンペーン全体で再利用する場合

<Card title="プロパティでパーソナライズ" icon="tag" href="./personalization-properties-and-tags">
  保存された永続的なプロパティデータを参照する方法を学びます。
</Card>

***

### Custom Events

[Custom Events](./custom-events)は、イベントプロパティを使用して[Journeys](./journeys-overview)内のメッセージをパーソナライズできます。

イベントが**Journeyを開始する**場合、または**Wait Until条件に一致する**場合、OneSignalはそのイベントを保存し、Liquidを使用してメッセージテンプレートでプロパティを参照できるようにします。

**Custom Eventsを使用するタイミング：**

* Journeysを使用したイベントトリガーメッセージ
* メッセージがイベント固有のデータを反映する必要がある場合

<Warning> Journeyエントリーまたは Wait Until ステップをトリガーするイベントのみがパーソナライゼーション用に保存されます。それ以外のタイミングで送信されたイベントは、Journeyメッセージでは利用できません。 </Warning>

<Card title="Custom Eventsパーソナライゼーション" icon="bolt" href="./personalization-custom-event">
  Journeysでイベントプロパティを使用するための完全ガイド。
</Card>

***

### API `custom_data`

[Create Message API](/reference/create-message)の`custom_data`フィールドを使用すると、バックエンドからメッセージ固有の値を送信できます。

このデータの特徴：

* 現在のリクエストにのみ存在する
* OneSignalには保存されない
* Journeysでは利用できない

**`custom_data`を使用するタイミング：**

* ワンタイムまたは機密性の高い値を送信する場合（OTP、セキュアリンク）
* 配列を渡す場合（カート商品、注文明細、リーダーボードスコア）
* トランザクションまたはAPIトリガーのメッセージを送信する場合

<Card title="API custom_dataでパーソナライズ" icon="code" href="./personalization-api-custom-data">
  一時的なパーソナライゼーションデータを渡す方法を学びます。
</Card>

***

### Data Feeds

[Data Feeds](./data-feeds)は送信時にAPIを呼び出し、レスポンスをメッセージに注入します。

**Data Feedsを使用するタイミング：**

* 配信時に最新の値が必要な場合
* データがバックエンドにある場合
* 送信ごとに値が変わる可能性がある場合

<Card title="Data Feeds" icon="cloud-arrow-up" href="./data-feeds">
  送信時にバックエンドのリアルタイムデータをメッセージに取り込みます。
</Card>

***

### 動的コンテンツCSV

OneSignalダッシュボードにCSVファイルをアップロードし、Liquidを使用してその値を参照します。

**CSVを使用するタイミング：**

* 一括キャンペーンの各セクションを受信者ごとにカスタマイズする場合
* 各受信者の翻訳やカスタムデータがCSVファイルにエクスポート可能な場合
* APIを使用したくない場合

<Card title="動的コンテンツCSV" icon="file-csv" href="./dynamic-content">
  CSVアップロードを使用してダッシュボードキャンペーンをパーソナライズします。
</Card>

***

## 詳細ガイド

ステップバイステップの実装詳細と高度な例については、以下のガイドをご利用ください。

<Columns cols={2}>
  <Card title="Liquid構文の使用" icon="droplet" href="./using-liquid-syntax">
    Liquidを使用してメッセージに動的データを挿入する方法を学びます。変数、条件文、ループ、フィルター、フォーマット、一般的なパーソナライゼーションパターンをカバーしています。
  </Card>

  <Card title="Data Feeds" icon="cloud-arrow-up" href="./data-feeds">
    送信時に独自のAPIからリアルタイムデータを取り込みます。メッセージコンテンツが残高、在庫状況、価格設定などのライブバックエンド値に依存する場合にData Feedsを使用します。
  </Card>

  <Card title="Custom Eventsパーソナライゼーション" icon="bolt" href="./personalization-custom-event">
    ユーザーがJourneyに入るとき、またはJourney内を進行するときにキャプチャされたイベントプロパティを使用してJourneyメッセージをパーソナライズします。行動ベースおよびイベント駆動のワークフローに最適です。
  </Card>

  <Card title="プロパティとTags" icon="tag" href="./personalization-properties-and-tags">
    保存されたユーザー、サブスクリプション、メッセージ、およびアプリのプロパティを使用して、メッセージ、Templates、Journey Webhooks、Event Streams全体でコンテンツをパーソナライズします。
  </Card>

  <Card title="API custom_data" icon="code" href="./personalization-api-custom-data">
    Create Message APIを使用してバックエンドからメッセージごとの一時データを渡します。OTP、カート、配列、一括トランザクションパーソナライゼーションに最適です。
  </Card>

  <Card title="動的コンテンツCSV" icon="file-csv" href="./dynamic-content">
    ダッシュボードでCSVファイルをアップロードして、大規模にキャンペーンをパーソナライズします。各行は受信者にマッピングされ、Liquidを使用して参照できます。
  </Card>
</Columns>

### チュートリアル

これらのガイドでは、パーソナライゼーションを実際に実装する方法を紹介します。

<Columns cols={2}>
  <Card title="認証、マジックリンク、およびOTP" icon="key" href="./example-verification-magic-link-otp">
    ワンタイムパスワード、マジックリンク、またはカスタムURLを使用して、APIドリブンのパーソナライゼーションでセキュアな認証メッセージを送信します。
  </Card>

  <Card title="カート放棄Journey" icon="cart-shopping" href="./abandoned-cart">
    カートアクティビティを検知し、非アクティブを待ち、パーソナライズされたリマインダーを送信し、購入後すぐにユーザーを退出させる自動化Journeyを構築します。
  </Card>

  <Card title="予約確認" icon="calendar" href="./booking-confirmations">
    Custom Events、Journeys、およびData Feedsを使用して、リアルタイムの予約ステータスに基づいた予約確認および回復メッセージを送信します。
  </Card>

  <Card title="トランザクションメッセージ" icon="receipt" href="./transactional-messages">
    APIと自動化を使用して、チャネル全体でレシート、アラート、確認、その他のトランザクションメッセージを送信する方法を学びます。
  </Card>

  <Card title="アプリ内パーソナライゼーションの例" icon="mobile" href="./personalization-properties-and-tags">
    Tagsやプロパティを使用して、異なるユーザーやセグメントに合わせてアプリ内メッセージをパーソナライズする実用的な例をご覧ください。
  </Card>
</Columns>
