パーソナライゼーションの仕組み
パーソナライゼーションは、メッセージフィールドに値を注入できるテンプレート言語であるLiquid構文によって実現されます。 次を使用してメッセージをパーソナライズできます:- データフィード:APIからのリアルタイムデータ。
- プロパティ:組み込みのユーザー、ジャーニー、メッセージ、テンプレート、アプリ、または組織の値。
- カスタムイベント:ジャーニーメッセージをパーソナライズするためのリアルタイムユーザーイベント。
- タグ:ユーザーごとにOneSignalに保存されたデータ。
- API:
custom_data:メッセージ作成APIに直接渡すカスタムデータ。 - 動的コンテンツ:ダッシュボードアップロード経由のCSVベースのパーソナライゼーション。
主要な考慮事項
メッセージをパーソナライズすることで、ユーザーはアプリとより深くつながり、エンゲージメントと収益が増加する可能性があります。一般的な例としては、メッセージに人の名前や特定の情報(カート放棄アイテムなど)を入れることがありますが、ユースケースは無限です。 目標は何ですか? メッセージで何を送信したいですか?例:- 名前やIDなどのユーザープロパティを追加する
- 請求書またはOTPを表示する
- CSVから動的コンテンツを送信する
- データはプロパティやタグのようにOneSignalに保存されていますか?
- データは自分のデータベースに保存されていますか?
- バックエンドからOneSignalにデータを渡す必要がありますか?
- 一回限りのメッセージ:サーバーまたはOneSignalダッシュボードからメッセージを送信しますか?
- 定期的なメッセージ:ジャーニーまたは他の自動化されたワークフローを使用しますか?
- 目標:ユーザーのログインを支援するためにワンタイムパスコードを送信する。
- データ:
- バックエンドに保存されたOTP。
- OneSignalにタグとして保存されたユーザー名。
- OneSignalにプロパティとして保存された外部ID。
- 送信:
- REST APIを使用してサーバーから。
- ジャーニーを使用した自動化されたワークフローから。
この例の詳細なウォークスルーは、検証、マジックリンク、およびOTP例チュートリアルで利用できます。以下のチュートリアル例をご覧ください。
データソース
メッセージをパーソナライズするために利用可能なオプション。データフィード
データフィードは、送信時にAPIからリアルタイムデータを直接メッセージに取り込む方法です。テンプレートをデータソースに接続するだけで、サーバーからデータを取得してメッセージに注入します。プロパティ
Liquid構文を使用して参照できる事前定義されたフィールド。例:プロパティはアプリ内メッセージまたはライブアクティビティでは利用できません。
- サブスクリプションプロパティ
- ジャーニープロパティ
- メッセージプロパティ
- テンプレートプロパティ
- OneSignalプロパティ
subscription.external_id: サブスクリプションに関連付けられた外部ID。subscription.email: メッセージが送信されるメールサブスクリプションのメールアドレス。subscription.phone_number: メッセージが送信されるSMSサブスクリプションの電話番号。subscription.push_token: メッセージが送信されるプッシュサブスクリプションのプッシュトークン。subscription.language: ユーザーの言語コード。subscription.unsubscribe_token: 配信停止のためにサブスクリプションを識別するために使用されるトークン(メールサブスクリプションの場合)。
カスタムイベント
ジャーニーで使用されるテンプレート内でカスタムイベントを参照します。ジャーニーの構成に応じて、ユーザーに代わって1つ以上のカスタムイベントを保存する場合があります。Liquid構文を使用して、これらの保存されたイベントのプロパティを表示したり、イベントに基づいてメッセージの一部を条件付きで表示したりできます。- イベントトリガージャーニーは、ユーザーがジャーニーに入るきっかけとなったイベントを保存します
- Wait Untilノードを使用するジャーニーは、条件に一致したときにカスタムイベントを保存します。
- カスタムイベントプロパティ
- カスタムイベント構造の例
- プッシュテンプレートでのイベントの使用
journey.first_event
イベントトリガージャーニーの場合、これは常にユーザーがジャーニーに入るきっかけとなったイベントです。それ以外の場合は、Wait Until条件に一致した最初のイベントです。
journey.last_event
保存された最新のカスタムイベント。保存されたカスタムイベントが1つだけの場合、
first_eventとlast_eventは同じものを返します。journey.event.most_recent_event_name
指定された名前を持つ最新のイベント。同じイベントが複数回使用される場合、これは最新のインスタンスを返します。例:
purchase。特殊文字(例:スペース)の場合、イベント名に英数字以外の文字が含まれている場合はハッシュ表記を使用します:
タグ
タグは、各ユーザーに設定できるkey: valueデータです。例:
first_name: Jonとlevel: 5を設定し、ユーザーBにfirst_name: Jeffとlevel: 100を設定すると、それぞれがメッセージで自分の名前とレベルを確認します。それ以外の場合は、デフォルト値が表示されます。
API custom_data
custom_dataとメッセージ作成APIを使用して、バックエンドから直接パーソナライゼーションを追加します。
手順:
- テンプレートを作成する
{{ message.custom_data.key }}形式でLiquid構文を使用するcustom_dataオブジェクトとtemplate_idを使用してAPIリクエストを送信する
例:フラットJSON
Template
API Request
顧客に表示される内容:
- 「Widgetの請求書の準備ができました。」
- 最終URL:
https://your-domain.com/invoice=463246732
例:配列データ
Template
API Request
顧客に表示される内容:
- 「あなたのsweaterがあなたを待っています!」
- 画像:
https://.../sweater.png
例:一括パーソナライゼーション
1つのリクエストで多くのユーザーに対して単一のメッセージをパーソナライズするには:Template
API Request
顧客に表示される内容:
- 「こんにちは Johnさん、あなたは 150 ポイントを持っています。あなたのレベルは Gold です。」
- 「こんにちは Sarahさん、あなたは 200 ポイントを持っています。あなたのレベルは Platinum です。」
動的コンテンツ
データのCSVを使用して、OneSignalダッシュボードにアップロードし、ユーザーごとのデータに基づいてキャンペーンをカスタマイズできます。詳細については、動的コンテンツを参照してください。チュートリアル
検証、マジックリンク、およびOTP例チュートリアル
SMS経由での検証メール、マジックリンク、ワンタイムパスワード、またはカスタムURLを送信します。
カート放棄コンテンツ
カート放棄やリーダーボードのように、ユーザーにデータのリストを送信します。
トランザクションメッセージ
任意のチャネルで任意のタイプのトランザクションメッセージを送信します。
アプリ内メッセージの例
タグに基づいてパーソナライズされたアプリ内メッセージを表示します。