メインコンテンツへスキップ
プロパティ(ユーザー Tags や External ID などの識別子)を使用して、Liquid 構文でメッセージや配信ペイロードをパーソナライズできます。 OneSignal は Liquid プレースホルダーを送信時にレンダリングし、ユーザー、Subscriptions、Journey、メッセージ、テンプレート、アプリ、または組織に既に保存されているデータを使用します。このデータを使用して、メッセージ、Journey Webhook、および Event Streams をパーソナライズできます。

プロパティパーソナライズの使用タイミング

プロパティパーソナライズを使用して、OneSignal に既に存在するデータ(最も一般的にはユーザー Tags、External ID、メールアドレスや電話番号などの Subscriptions フィールド)を使用して送信時にコンテンツをレンダリングします。 以下の場合に適しています:
  • データが既に OneSignal に保存されている
  • メッセージ送信時に Liquid プレースホルダーが自動的に置き換えられるようにしたい
  • 配信時にデータを取得または計算する必要がない
値を送信時に取得または計算する必要がある場合(例:リアルタイムの価格や在庫)は、Data Feeds または custom_data を使用した API を使用してください。値が、ユーザーが Journey に入るまたは進行するきっかけとなったイベントから取得される場合は、Custom Event パーソナライズを使用してください。

チャネルサポート

各チャネルは特定のプロパティタイプとフィールドをサポートしています。
以下でユーザーと Subscriptions のプロパティをサポートしています:
  • 件名、返信先、プリヘッダー
  • メッセージ本文
  • HTML 属性(例:<img src="{{ image_url }}" />
  • ボタンアクション(URL、mailto など)

プロパティパーソナライズの仕組み

OneSignal は、メッセージ送信先のユーザーと Subscriptions に対応するプロパティ値で Liquid プレースホルダーを置き換えます。
Liquid
Hi {{ first_name | default: "friend" }}!
Congrats on reaching level {{ level | default: "1" }}!
ユーザーが Tags first_name: Jonlevel: 5 を持っている場合、以下のように表示されます:
Text
Hi Jon!
Congrats on reaching level 5!

Tags が設定されていないユーザーには、代わりにデフォルト値が表示されます。

プロパティ Liquid オブジェクトリファレンス

このセクションでは、Liquid で使用可能な正確なオブジェクト名とフィールド名を確認できます。

ユーザーと Subscriptions のプロパティ

ユーザーレベルのデータには user を使用します。メールアドレスや電話番号などのチャネル固有の値が必要な場合は subscription を使用します。
user.tags
ユーザーの Tags。Tags はいくつかの方法で参照できます:
  • key を直接使用するか、tags の後にキーを配置します
  • 設定された Tags の例:first_name: Jon, level: 5
Liquid
Your first name is {{ first_name }}.
Your first name is {{ user.tags.first_name }}.
Your level is {{ level }}.
Your level is {{ user.tags.level }}.
  • for ループ構文で Tags を反復処理できます。この例では、key:value ペアをカンマ区切りで出力します。
Liquid
{% for tag in user.tags %}
{{ tag[0] }}: {{ tag[1] }}
{% unless forloop.last %},
{% endunless %}{% endfor %}
user.external_id
ユーザーの External ID
Liquid
Your user ID is {{ user.external_id }}.
Your user ID is {{ subscription.external_id }}.
user.onesignal_id
ユーザーの OneSignal ID
Liquid
Your OneSignal user ID is {{ user.onesignal_id }}.
subscription.email
メッセージが送信されるメール Subscription のメールアドレス。
Liquid
Thanks for subscribing with email {{ subscription.email }}.
subscription.phone_number
メッセージが送信される SMS Subscription の電話番号。
Liquid
Thanks for subscribing with phone number {{ subscription.phone_number }}.
user.language
ユーザーの言語コード。
Liquid
Preferred language: {{ user.language }}
Preferred language: {{ subscription.language }}
user.subscriptions
ユーザーの Subscriptions
  • for ループ構文で Subscriptions を反復処理できます。
  • この例では、各 Subscription のトークンと ID をカンマ区切りで出力します。
JSON
{
  "subscriptions": "{% for subscription in user.subscriptions %}{% if subscription.subscription_token %}{{ subscription.subscription_token }}: {{ subscription.id }}{% unless forloop.last %}, {% endunless %}{% endif %}{% endfor %}"
}
subscription.unsubscribe_token
トークンを使用したメール配信停止 API で使用されるトークン。
Unsubscribe: https://your-domain.com/unsubscribe?token={{ subscription.unsubscribe_token }}

Journey プロパティ

journey オブジェクトを使用して、Journey 名を参照したり、Journey の Custom Event パーソナライズにアクセスしたりできます。
journey.name
Journey の名前。
JSON
{
  "journey_name": "{{ journey.name }}"
}

メッセージプロパティ

message オブジェクトは、Event Streams に役立つメッセージ ID、名前、テンプレート ID へのアクセスを提供します。また、バックエンドから送信されるメッセージをパーソナライズするための custom_data へのアクセスも提供します。
message.id
OneSignal によって設定されたメッセージ ID。
{
  "message_id": "{{ message.id }}"
}
message.name
送信者によって設定されたメッセージの名前。
{
  "message_name": "{{ message.name }}"
}
message.template_id
OneSignal によって設定されたテンプレート ID。
{
  "template_id": "{{ message.template_id }}"
}

テンプレートプロパティ

template オブジェクトは、メッセージの送信に使用されたテンプレートのテンプレート ID と名前へのアクセスを提供します。これは Event Streams に役立ちます。
template.id
OneSignal によって設定されたテンプレート ID。
{
  "template_id": "{{ template.id }}"
}
template.name
送信者によって設定されたテンプレートの名前。
{
  "template_name": "{{ template.name }}"
}

アプリと組織のプロパティ

app および org オブジェクトは、メッセージを送信したアプリと組織の詳細を提供します。これは Event Streams に役立ちます。
app.id
OneSignal によって設定されたアプリ ID。
{
  "app_id": "{{ app.id }}"
}
app.name
アプリのオーナーによって設定されたアプリの名前。
{
  "app_name": "{{ app.name }}"
}
org.id
OneSignal によって設定された組織 ID。
{
  "org_id": "{{ org.id }}"
}
org.name
組織のオーナーによって設定された組織の名前。
{
  "org_name": "{{ org.name }}"
}

例:Tags を使用したカート放棄

この例では、ユーザー Tags を使用してカート放棄メッセージをパーソナライズする方法を説明します。カート放棄チュートリアルをベースにしています。 設定された Tags の例:
JSON
{
  "cart_updated": "unix_timestamp_seconds",
  "product_image": "https://i.imgur.com/ssPCfbC.png",
  "product_name": "24 Pack of Acorns",
  "product_quantity": "1",
  "product_price": "$12.99",
  "cart_items_count": "4",
  "cart_url": "https://yourdomain.com/cart"
}

メールテンプレート

1

新しいメールテンプレートを作成する

Messages > Templates > New Email Template に移動し、ドラッグ&ドロップエディタを開きます。
2

レイアウト構造を追加する

5つの行を作成します:
  • 行1、2、4:Paragraph ブロックを含む1列
  • 行3:HTML | Paragraph | Paragraph | Paragraph の4列
  • 行5:Button ブロックを含む1列
3

Paragraph ブロックに Liquid を追加する

行1に以下を追加します:
Liquid
We're holding onto {{cart_items_count}} items in your cart, but don't wait too long, other squirrels are getting ahead!
行2にユーザーが見ている内容の説明を追加します:
Text
Currently in your cart:
行4に別の CTA を追加します:
Text
Checkout now while supplies last!
4

最新のアイテムを表示する

行3で4列を設定します:列1(HTML ブロック):
HTML
<img src="{{product_image}}" alt="Image" style="max-width:100%;" />
列2〜4(テキストブロック):
  • 列2:{{product_name}}
  • 列3:{{product_quantity}}
  • 列4:{{product_price}}
5

ボタンにカート URL を追加する

行5の Button ブロックで、アクション URL を以下に設定します:
{{cart_url}}
6

テンプレートをテスト・プレビューする

Test & preview ボタンを使用して自分宛にテストメールを送信します。
  • メール Subscription に Tags が設定されていることを確認してください。
7

テンプレートにスタイルを適用する

成功です!これで独自のスタイルをテンプレートに適用できます。ドラッグ&ドロップでメールをデザインするを参照してください。

プッシュテンプレート

プッシュ通知はスペースが限られているため、1つのアイテムを表示し、合計数に言及します。 メッセージフィールド: 条件文を使用して、正しい文法でアイテムとアイテム数を表示します。
Liquid
{% assign item_count = cart_items_count | plus: 0 %}
{% if item_count == 1 %}
You left {{product_name}} in your cart.
{% endif %}
{% if item_count == 2 %}
You left {{product_name}} and {{item_count | minus: 1}} more item in your cart.
{% endif %}
{% if item_count > 2 %}
You left {{product_name}} and {{item_count | minus: 1}} more items in your cart.
{% endif %}
画像フィールド:
Liquid
{{product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
起動 URL フィールド:
{{cart_url | default: "https://yourdomain.com/cart"}}
成功です!これでさらにテンプレートを作成し、カート放棄 Journey で使用できます。

関連ページ

メッセージパーソナライズ

Custom Events とその他の方法の使い分けを含む、OneSignal のすべてのパーソナライズオプションの概要。

Tags

SDK、API、CSV インポートを介してユーザーに Tags を設定する方法を学びます。

Liquid 構文の使用

フィルター、条件分岐、ループ、文字列操作を含む完全な Liquid リファレンス。

Templates

Journeys で使用する再利用可能なメッセージテンプレートを作成・管理します。

アプリ内メッセージの例

Tags に基づいてパーソナライズされたアプリ内メッセージを表示します。

カート放棄チュートリアル

Tags とプロパティを使用してカート放棄 Journey を構築します。
サポートが必要ですか?サポートチームとチャットするか、support@onesignal.comにメールしてください以下を含めてください:
  • 発生している問題の詳細と再現手順(利用可能な場合)
  • OneSignal App ID
  • 該当する場合は、External IDまたはSubscription ID
  • 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
  • 関連するログまたはエラーメッセージ
お気軽にお問い合わせください!