- Journeyのエントリーをトリガーする、または
- Journey内のWait Until条件に一致する
Custom Eventパーソナライズの仕組み
以下の手順に従って、Journeyメッセージにイベントプロパティを追加します:プロパティ付きのCustom Eventを送信する
Custom Eventsペイロードの例:
JSON
Journeyメッセージテンプレートでイベントプロパティを参照する
Liquid構文を使用してイベントプロパティにアクセスします。
一般的なLiquidアクセスパターン
| 取得したい内容 | Liquid | 出力 |
|---|---|---|
| イベント名 | {{ journey.first_event.name }} | purchase |
| プロパティ | {{ journey.first_event.properties.item }} | Blue Sweater |
| ネストされたプロパティ | {{ journey.first_event.properties.details.first.manufacturer }} | Company A |
| 特殊文字を含むプロパティ | {{ journey.last_event.properties["order status"] }} | pending |
| タイムスタンプ | {{ journey.last_event.timestamp | date: "%B %d, %Y at %I:%M %p" }} | October 21, 2025 at 07:09 PM |
ネストされたLiquidアクセスパターン
ドット記法とブラケット記法を使用して、ネストされたプロパティにもアクセスできます:Liquid
Journeyを作成する
Custom Eventをエントリールールおよび/またはWait Until条件として使用するようにJourneyを設定します。
- エントリールールについては、Journeys設定を参照してください。
- Wait Until条件については、Journeysアクションを参照してください。
イベントプロパティの保存ルール
- エントリールールとWait Untilステップを組み合わせることで、Journey内で複数のイベントを使用できます。
- 最大値:1ユーザーあたり1 Journeyインスタンスにつき保存されるイベントプロパティは100件まで(古いものから削除されます)。
- イベントプロパティはユーザーごと、Journeyインスタンスごとに保存されます。
- エントリー前に送信されたイベントにはアクセスできません。
- ユーザーがJourneyを終了すると、イベントプロパティはクリアされます。
Custom Event Liquidリファレンス
Journey内で保存されたイベントにアクセスするには、以下のオブジェクトを使用します。journey.first_event
このJourneyインスタンスで最初に保存されたイベントです。
- Custom Eventエントリールールを使用している場合、これはJourneyへのエントリーを引き起こしたイベントです。
- Custom Eventエントリールールを使用していない場合、これはWait Until条件に一致して保存された最初のイベントです。
Liquid
journey.last_event
このJourneyインスタンスで最も最近に保存されたイベントです。
- イベントが1つしか保存されていない場合、
first_eventとlast_eventは同じ結果を返します。
Liquid
journey.event.EVENT_NAME
特定の名前を持つ最も最近に保存されたイベントです。イベント名にスペースや特殊文字が含まれる場合は、ブラケット記法を使用してください。イベントの例:
EVENT_NAMEをイベント名(例:purchase)に置き換えてください。- 同じイベント名が複数回使用された場合、最も最近のインスタンスが返されます。
Liquid
"name": "order status"Liquid
このJourneyインスタンスで保存されたすべてのイベントで、保存された順序で格納されています。
- forループを使用してイテレーションできます。
Liquid
journey.first_eventはjourney.all_events[0]の省略形です。journey.last_eventは配列内の最も最近のイベントの省略形です。
例:Custom Eventsを使用したカゴ落ちテンプレート
この例では、Custom Eventsを使用してカゴ落ちメッセージをパーソナライズする方法を示します。カゴ落ちチュートリアルをベースにしています。 Custom Eventセットの例:JSON
メールテンプレート
この例では、以下を表示するメールテンプレートの作成方法を示します:- カート内のアイテム数
- forループを使用した各商品の画像、名前、数量、価格
- 顧客固有のカートURLにリンクするボタン

アイテム数を表示する
行1に以下を追加します:文法的には「1 item」と「2 items」を条件分岐で使い分けることもできますが、カゴ落ちメールでは複数形で問題ない場合がほとんどです。
Liquid
Liquid
forループを開始する
forループを使用して、各カートアイテムに対して商品表示行を繰り返します。行2(ループ開始)に以下を追加します:これが行うこと:
Liquid
cart配列内の各オブジェクトをイテレーションするループを開始します- 現在のアイテムを表す一時変数
productを作成します {% for %}と{% endfor %}の間のすべてが、カートアイテムごとに1回繰り返されますproductは任意の名前(例:item、cartItem)に変更できます。ただし一貫して使用してください
商品の詳細を表示する
この4列の行は、画像、名前、数量、価格を表示します。ループ内にあるため、すべてのカートアイテムに対して繰り返されます。行3(商品詳細)を設定します:列1 - HTMLブロック(商品画像):列2~4 - テキストブロック(商品名、数量、価格):
- 列2:
{{product.product_name}} - 列3:
{{product.product_quantity}} - 列4:
{{product.product_price}}
- 最初のイテレーションでは、
product= カート配列の最初のオブジェクト {{product.product_image}}は最初のアイテムの画像を取得します- 2回目のイテレーションでは、
product= 2番目のオブジェクト - すべてのカートアイテムに対して行が自動的に繰り返されます
forループを終了する
繰り返しを停止する場所を示すためにループを閉じます。行4(ループ終了)に以下を追加します:
Liquid
すべての
{% for %}には対応する{% endfor %}が必要です。これがないとメールのレンダリングが壊れます。テンプレートをテストする
- テンプレートを空のJourneyに追加し、エントリールールをCustom Eventに設定します。
- Journeyを有効にし、Custom Event APIを使用して自分自身をエントリーさせます。
- データが正しく表示されることを確認します。
成功です!テンプレートに独自のスタイリングを適用できるようになりました。ドラッグ&ドロップでメールをデザインするを参照してください。
プッシュテンプレート
プッシュ通知はスペースが限られているため、1つのアイテムを表示し、合計数を記載します。 メッセージフィールド: 条件文を使用して、正しい文法でアイテムとカウントを表示します。Liquid
Liquid
Liquid

成功です!さらにテンプレートを作成して、カゴ落ちJourneyで使用できます。
トラブルシューティングとベストプラクティス
よくある間違い:| 間違い | 失敗する理由 | 正しい構文 |
|---|---|---|
{{ journey.first_event.item }} | .propertiesが不足 | {{ journey.first_event.properties.item }} |
{{ journey.event.purchase.item }} | .propertiesが不足 | {{ journey.event.purchase.properties.item }} |
{{ journey.first_event.properties.Item }} | 大文字小文字が間違い(itemが正しい) | {{ journey.first_event.properties.item }} |
{{ event.properties.item }} | journey.プレフィックスが不足 | {{ journey.first_event.properties.item }} |
- テンプレートは本番環境に適用する前に必ずテストしてください
- オプションのプロパティにはdefaultフィルターを使用してください
- イベントスキーマがテンプレートの期待と一致していることを検証してください
関連ページ
メッセージパーソナライズ
Custom Eventsと他の方法を使い分けるタイミングを含む、OneSignalのすべてのパーソナライズオプションの概要です。
Custom Events
SDKまたはAPIを使用したCustom Eventsの実装と送信の完全ガイドです。
Journeys概要
トリガー、条件、アクションを使用した自動メッセージングワークフローの構築方法を学びます。
Journey設定
イベントトリガーのエントリールールとJourneyの動作を設定します。
Wait Untilアクション
Wait Untilノードを使用して、Journey進行中に追加のイベントを保存します。
Liquid構文の使用
フィルター、条件分岐、ループ、文字列操作を含むLiquidの完全リファレンスです。
テンプレート
Journeysで使用する再利用可能なメッセージテンプレートを作成・管理します。
サポートが必要ですか?サポートチームとチャットするか、
support@onesignal.comにメールしてください以下を含めてください:- 発生している問題の詳細と再現手順(利用可能な場合)
- OneSignal App ID
- 該当する場合は、External IDまたはSubscription ID
- 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
- 関連するログまたはエラーメッセージ

