- データがどこにあるか
- データを永続化する必要があるか
- メッセージがどのようにトリガーされるか
パーソナライゼーションの仕組み
OneSignalのパーソナライゼーションは2つの要素で構成されます:- Liquid構文 — メッセージ内で値がどのようにレンダリングされるかを定義します
- データソース — 値がどこから取得されるかを決定します
Liquidはフォーマットとロジック(変数、ループ、条件文)を制御します。データソースはどの値が利用可能かを決定します。
Liquid
user.tags.first_nameは保存されたプロパティですmessage.custom_data.otpはAPI のcustom_dataフィールドを介して渡されます
データソースの比較
以下が必要な場合…- 保存されたユーザーデータを再利用する → プロパティ
- Journey内で行動に基づいてパーソナライズする → Custom Events
- ワンタイムまたは機密性の高い値を送信する → API
custom_data - 配信時にバックエンドのライブデータを取得する → Data Feeds
- ダッシュボードから一括パーソナライゼーションをアップロードする → 動的コンテンツCSV
データソース
Data Feeds
Data Feedsは送信時にAPIを呼び出し、レスポンスをメッセージに注入します。 Data Feedsを使用するタイミング:- 配信時に最新の値が必要な場合
- データがバックエンドにある場合
- 送信ごとに値が変わる可能性がある場合
Data Feeds
送信時にバックエンドのリアルタイムデータをメッセージに取り込みます。
Custom Events
Custom Eventsは、イベントプロパティを使用してJourneys内のメッセージをパーソナライズできます。 イベントがJourneyを開始する場合、またはWait Until条件に一致する場合、OneSignalはそのイベントを保存し、Liquidを使用してメッセージテンプレートでプロパティを参照できるようにします。 Custom Eventsを使用するタイミング:- Journeysを使用したイベントトリガーメッセージ
- メッセージがイベント固有のデータを反映する必要がある場合
Custom Eventsパーソナライゼーション
Journeysでイベントプロパティを使用するための完全ガイド。
プロパティ
プロパティには、ユーザーTags、External ID、サブスクリプションデータ、アプリレベルのフィールドが含まれます。 これらの特徴:- 永続的
- 再利用可能
- メッセージ、テンプレート、Journey Webhooks、Event Streams全体で利用可能
- 値がOneSignalに存在する場合
- 値が永続的である場合
- キャンペーン全体で再利用する場合
プロパティでパーソナライズ
保存された永続的なプロパティデータを参照する方法を学びます。
API custom_data
Create Message APIのcustom_dataフィールドを使用すると、バックエンドからメッセージ固有の値を送信できます。
このデータの特徴:
- 現在のリクエストにのみ存在する
- OneSignalには保存されない
- Journeysでは利用できない
custom_dataを使用するタイミング:
- ワンタイムまたは機密性の高い値を送信する場合(OTP、セキュアリンク)
- 配列を渡す場合(カート商品、注文明細、リーダーボードスコア)
- トランザクションまたはAPIトリガーのメッセージを送信する場合
API custom_dataでパーソナライズ
一時的なパーソナライゼーションデータを渡す方法を学びます。
動的コンテンツCSV
OneSignalダッシュボードにCSVファイルをアップロードし、Liquidを使用してその値を参照します。 CSVを使用するタイミング:- 一括キャンペーンの各セクションを受信者ごとにカスタマイズする場合
- 各受信者の翻訳やカスタムデータがCSVファイルにエクスポート可能な場合
- APIを使用したくない場合
動的コンテンツCSV
CSVアップロードを使用してダッシュボードキャンペーンをパーソナライズします。
詳細ガイド
ステップバイステップの実装詳細と高度な例については、以下のガイドをご利用ください。Liquid構文の使用
Liquidを使用してメッセージに動的データを挿入する方法を学びます。変数、条件文、ループ、フィルター、フォーマット、一般的なパーソナライゼーションパターンをカバーしています。
Data Feeds
送信時に独自のAPIからリアルタイムデータを取り込みます。メッセージコンテンツが残高、在庫状況、価格設定などのライブバックエンド値に依存する場合にData Feedsを使用します。
Custom Eventsパーソナライゼーション
ユーザーがJourneyに入るとき、またはJourney内を進行するときにキャプチャされたイベントプロパティを使用してJourneyメッセージをパーソナライズします。行動ベースおよびイベント駆動のワークフローに最適です。
プロパティとTags
保存されたユーザー、サブスクリプション、メッセージ、およびアプリのプロパティを使用して、メッセージ、Templates、Journey Webhooks、Event Streams全体でコンテンツをパーソナライズします。
API custom_data
Create Message APIを使用してバックエンドからメッセージごとの一時データを渡します。OTP、カート、配列、一括トランザクションパーソナライゼーションに最適です。
動的コンテンツCSV
ダッシュボードでCSVファイルをアップロードして、大規模にキャンペーンをパーソナライズします。各行は受信者にマッピングされ、Liquidを使用して参照できます。
チュートリアル
これらのガイドでは、パーソナライゼーションを実際に実装する方法を紹介します。認証、マジックリンク、およびOTP
ワンタイムパスワード、マジックリンク、またはカスタムURLを使用して、APIドリブンのパーソナライゼーションでセキュアな認証メッセージを送信します。
カート放棄Journey
カートアクティビティを検知し、非アクティブを待ち、パーソナライズされたリマインダーを送信し、購入後すぐにユーザーを退出させる自動化Journeyを構築します。
予約確認
Custom Events、Journeys、およびData Feedsを使用して、リアルタイムの予約ステータスに基づいた予約確認および回復メッセージを送信します。
トランザクションメッセージ
APIと自動化を使用して、チャネル全体でレシート、アラート、確認、その他のトランザクションメッセージを送信する方法を学びます。
アプリ内パーソナライゼーションの例
Tagsやプロパティを使用して、異なるユーザーやセグメントに合わせてアプリ内メッセージをパーソナライズする実用的な例をご覧ください。