- ユーザーの現在のリワードバランス
- 最新の注文ステータス
- パーソナライズされた製品の推奨
Data Feedsは現在、Journeysを通じて送信されるメールメッセージのみで利用可能です。
他のチャネルが必要ですか?この短いアンケートにご記入ください。
Data Feedsの仕組み
- Data Feedを作成 – OneSignalがAPIに接続する方法を構成します。
- Data Feedをメッセージテンプレートに添付します。
- Liquid構文を使用してメッセージにレスポンスフィールドを挿入します。
- 送信時に、OneSignalは各受信者に対してAPI呼び出しを行い、レスポンスを解析し、データをメッセージに注入します。
例:リワードポイントの表示
各顧客にリワードバランスを表示したいとします:{{ data_feed.rewards.points }}と{{ data_feed.rewards.status_level }}の代わりに実際のポイントバランスとメンバーシップステータスが表示されます。
以下では、この例を使用してData Feedを段階的に設定する方法を示します。
Data Feedの作成と使用
1. Data Feed構成の設定
サイドバーのData > Data Feedsに移動して、既存のData Feedsのリストを表示し、新しいData Feedを作成します。 各Data Feedには次が必要です:- Name:フィードのリストで区別するための「Customer Rewards API」のような説明的な名前。これらは一意であることを推奨しますが、必須ではありません。
- Alias:Liquid構文で使用するrewardsのような短い名前。これらは一意である必要があり、スペースを含むことができず、特殊記号のない小文字の英数字のみを含むことができます。
- Method:APIに接続する方法。通常これはGETですが、POSTもサポートされています。
- URL:APIのアドレス。Liquid構文を含めることができ、ユーザー固有のデータを取得するためにAPIを呼び出すことができます。
- Headers:API仕様に必要なヘッダーのキーと値のペアを入力します。典型的な重要な用途は、認証情報を含めることです。これらのフィールドは、必要に応じてLiquid構文もサポートしています。
- Body:APIが必要とする場合、JSON形式でリクエストにボディを含めることができます。このエディターは、Journey Webhooksと同様にLiquid構文をサポートしています。

Data Feed構成の例
2. Data Feedをメッセージテンプレートに添付
OneSignalが使用できるように、Data Feedをメッセージテンプレートに添付します。- Messages > Templatesに移動します
- Messageセクションで、Personalizationボタンを選択します

Personalizationボタンのオプション
- Data Feedsをトグルオンにして、フィードを選択します

メッセージコンポーザーのData Feedsセクション
- テンプレートを保存します
3. メッセージでデータを使用
Liquid構文を使用して、メッセージの任意の場所にレスポンスデータを挿入します。この例では、external_idが1a1-b2c3のSarahのレスポンスが次のようなシンプルなJSONブロブであるとします:
- Data Feedを使用
rewardsData Feedを使用- 復習:
rewardsフィードは、受信者のexternal_idでAPIを呼び出すことを知っています
- 復習:
- レスポンスから、
points項目の値(193)とstatus_level項目(Gold)を挿入
要件と制限
APIは次を満たす必要があります:- ヘッダーに認証トークンを含むシングルステップ認証を受け入れる
- 迅速に応答する。 250ms未満を推奨(これは送信速度に直接影響します)
- JSONを返す。 現時点では他の形式はサポートされていません。
- 代替形式に依存するユースケースがある場合は、ぜひお聞かせください!こちらの短いアンケートにご記入ください。
- メッセージ送信のボリュームとレートを処理する。 APIのレート制限が低い場合、メッセージを迅速に配信できなくなります。
- 妥当なサイズのペイロードを返す。 最高のパフォーマンスのために、レスポンスを50kb未満に保つことを推奨します。
- テンプレートごとに1つのData Feed。 将来的にこの制限を増やす予定です。これが必要な場合は、こちらの短いアンケートでお知らせください。
- Data Feedごと、メッセージごとに1つのAPI呼び出し。 必要なすべてのものを1回の呼び出しで取得します。
- Journeysのみ。 他の送信方法ではまだ利用できません。これが必要な場合は、こちらの短いアンケートでお知らせください。
- 連鎖呼び出しなし。 1つのData Feedからのペイロードを使用して別のData Feedを呼び出すことはできません。
APIの設定
Data Feedを作成する前に、APIが次の要件を処理できることを確認してください:認証
APIはヘッダーを介した認証を受け入れる必要があります:JSONリクエストボディ
リクエストにボディを含める必要がある場合、APIはJSONを受け入れる必要があります。これは、ヘッダーにContent: application/jsonを含める必要があることを意味する場合があります。
JSONレスポンス
APIはJSONオブジェクトを返す必要があります。通常、これはヘッダーにAccept: application/jsonを含めることを意味します。
パーソナライゼーションパラメータ
通常、次のようにURLでユーザー識別子を渡します:JSON
レート制限
APIのレート制限を考慮してください。10,000人のユーザーに連続して送信する場合、10,000回のAPI呼び出しを行います。APIがこのボリュームを処理できることを確認してください。エラーハンドリング
APIがエラーを返すか、ユーザーのデータがない場合、そのレシピエントにメッセージは送信されません。APIがすべての予想されるユーザーに対してデータを返すことを確認してください。開始チェックリスト
Data Feedsを実装する前に、次の質問に答えてください:- メッセージに表示したいデータは何ですか?APIから取得する項目を特定したシンプルな概要から逆算して作業すると、考えを整理するのに役立ちます。
- このデータは単一のAPIエンドポイントを介して利用可能ですか?
- API リクエストをどのように認証しますか?
- パーソナライズされたデータを取得するために、どの識別子または他のデータ項目を使用しますか?
- その識別子はすでにOneSignalに保存されていますか?そうでない場合、どのように入力されますか?
- APIは生成するリクエストのボリュームを処理できますか?
- APIがユーザーのデータを持っていない場合はどうなりますか?
例と高度なユースケース
Data Feedsは、Liquid構文と組み合わせて、または他の機能と組み合わせて創造的な方法で使用して、より複雑なパーソナライゼーションを生成できます。ループによる反復:カート放棄
ユーザーのカート内のアイテムの配列とカートの合計金額を返すData Feedcartがあるとします:
JSON
HTML
メールブロックエディターを使用している場合、特に画像やリンクを含める必要があるこの種の複雑なLiquid構文を挿入する際は、最良の結果を得るためにカスタムHTMLブロック要素を使用してください。
カスタムイベントプロパティ
前のカート放棄の例を続けて、最初にその特定のカートをどのように取得するかをどのように知ることができますか? 1つの方法は、プロパティにcart_idを含むcart_abandoned カスタムイベントによってトリガーされるJourneyを作成することです。この例では、そのイベントがAPI経由でOneSignalに送信されています:
curl

Journeyエントリのカスタムイベント
user_12345は、このイベントが発火されたときにJourneyに入り、その後メールを送信するノードに到達します。そのメールテンプレートは、URLが次のように特定のカートの内容を取得するように設定されたcart Data Feedで設定されています:
cart_idの値98765がJourneyに保存されます- メールステップに到達すると、
cartData Feedはそのcart_id値を参照し、それを使用してカートAPIを呼び出します - 返されたJSONプロパティが解析され、前の例と同様にメールに挿入されます
条件付き表示:注文ステータス
顧客の注文のステータスを含めたいが、注文が発送された場合にのみ追跡番号リンクを含めたいとします。これを行うには、ifステートメントを使用できます:
tracking_numberが存在する場合にのみ追跡リンクが表示されます。
パーソナライゼーションなしの自動化
Data Feedsを使用して、受信者ごとにパーソナライズする必要なく、メッセージに最新の情報を自動的に挿入できます。 例えば、メールの上部にバナー画像を挿入し、休日や他の月次イベントに合わせて毎月変更しているとします。毎月新しい画像をOneSignalにアップロードし、すべてのテンプレートを変更することを覚えておくのではなく、CMSまたは他のアセット管理場所から現在のバナー画像URLを取得するData Feedを設定することができます。 次のようにURLに変数なしでエンドポイントを指すbanner Data Feedを設定します:
JSON
{{ data_feed.banner.banner_url }}を画像ソースURLとして使用し、今後このプロセスを自動化します。
トラブルシューティング
データが表示されない
- Data Feedがテンプレートに添付されていることを確認します
- Liquid構文がJSON構造と正確に一致していることを確認します
- APIエンドポイントを手動でテストして、データを返していることを確認します
- ユーザーが必要なデータタグ(
external_idなど)を持っていることを確認します
メッセージの送信が遅い
- APIのレスポンス時間を確認します
- APIが同時リクエストを処理できることを確認します
一部の受信者がメッセージを受信していない
- APIがそれらのユーザーのデータを持っていない可能性があります
- Data Feed構成のエラーログで404またはエラーを確認します
- APIログで404またはエラーを確認します
- それらのユーザーがOneSignalで必要な識別子を持っていることを確認します