概要
カート放棄は、失われた収益を回復するための最もインパクトの大きい機会の一つです。カートを放棄したほとんどのユーザーはまだ購入する意思があり、タイムリーなリマインダーが必要なだけです。 このガイドでは、OneSignalで以下を実行する自動カート放棄Journeyを構築する方法を説明します:- カートアクティビティの検出
- 短い非アクティブ期間の待機
- パーソナライズされたリマインダーの送信
- 購入またはカート削除後のメッセージ送信即時停止
- Custom Events(ほとんどの実装に推奨)
- Tags(よりシンプルで、限定的なユースケース)
構築する内容
このガイドを完了すると、以下が得られます:- OneSignalに送信されるカートアクティビティ(TagsまたはCustom Eventsを経由)
- 明確なコード定義の放棄シグナル
- カートデータをパーソナライズするメッセージテンプレート
- 以下を実行するJourney:
- 放棄シグナルが受信されたときに開始
- 送信前に待機
- カート放棄メッセージを送信
- カートが空になるか購入されたときに即座に終了
- メッセージと収益のパフォーマンスを測定するAnalytics
トラッキング方法の選択
Custom EventsまたはTagsを使用してカートアクティビティを追跡できます。-
Custom Eventsを使用する場合:
- 非アクティブ期間後に放棄を検出できる
- リッチなカートデータ(アイテム、画像、価格)が必要
- イベントが放棄ごとに1回だけ発火することを保証できる
-
Tagsを使用する場合:
- デフォルトで状態ベースの安全性が必要
- シンプルなカートデータのみが必要
- セグメント制御のエントリーとエグジットを好む
カート放棄のモデリング方法
OneSignalはカートが放棄されたタイミングを自動的に判断しません。カートが放棄されたタイミングは、あなた自身のコードまたはシステムで判断し、OneSignalに通知します。
cart_abandonedの意味
cart_abandonedイベントは状態遷移を表す必要があります - カートがアクティブだった → ユーザーがエンゲージメントを停止した → カートが放棄されたとみなされる。
このイベントは以下の場合に送信する必要があります:
- 意味のある非アクティブ期間の後(例:1時間)
- カートにまだアイテムが含まれている場合のみ
Journeysが放棄シグナルを使用する方法
OneSignalがcart_abandonedを受信すると:
- ユーザーがJourneyにエントリーする資格を得ます
- 待機期間により自然に戻る時間が与えられます
- エグジットしない場合のみメッセージが送信されます
cart_emptiedが受信されるとユーザーは即座にエグジットします
Journeysはタイミングと繰り返しを制御します — 放棄を判断するわけではありません。
セットアップ
ステップ1. カートデータとソースを計画する
表示したいカート情報とそのデータの出所を決定してください。 一般的なカートデータには以下が含まれます:- 商品名、画像、価格、数量
- カート内のアイテム数
- カートに戻るディープリンク
| データソース | 推奨方法 |
|---|---|
| アプリまたはウェブサイト | OneSignal Frontend SDK |
| バックエンドまたはデータベース | OneSignal REST API |
| サードパーティプラットフォーム | 統合ベースのCustom Events |
このステップの終わりまでに、どのデータを送信するかとどのように送信するかがわかります。
ステップ2. カート状態シグナルをOneSignalに送信する
カート状態の変更を表すシグナルを送信する必要があります。| シグナル | 目的 |
|---|---|
cart_abandoned | カートアクティビティが検出され、未解決 |
cart_updated | カートの内容が変更 |
cart_emptied | カートがクリアまたは購入完了 |
- フロントエンドSDK
- REST API
- サードパーティ統合
OneSignal WebまたはMobile SDKを使用してCustom EventsまたはTagsを送信します。
Custom Eventの例Tagの例
| SDKメソッド | 説明 |
|---|---|
trackEvent | Custom Eventを送信(Mobile SDK、Web SDK) |
addTags | Tagを追加(Mobile SDK、Web SDK) |
removeTags | Tagを削除(Mobile SDK、Web SDK) |
この例では、
cart_updatedタグをカートが最後に更新された時刻を表すUnixタイムスタンプ(秒単位)に設定します。ブール値(true/false)も使用できますが、タイムスタンプはTime Operatorsでより柔軟性を提供します。ステップ3. カート放棄メッセージテンプレートを作成する
カートデータを動的に参照するメッセージテンプレートを作成します。 このセクションで使用されるコンセプトの詳細については、以下を参照してください:- Custom Eventプッシュテンプレート
- Tagプッシュテンプレート
Liquid構文形式を使用してイベントプロパティを参照します:メッセージ:画像:起動URL:
Liquid
Liquid
Liquid
Liquid

Custom Eventsでメッセージをパーソナライズ
JourneysでCustom Eventsを使用するための完全ガイド。イベントストレージ、Journey設定、カート放棄の例、ベストプラクティス、トラブルシューティングを含みます。
プロパティでメッセージをパーソナライズ
JourneysでプロパティとTagsを使用するための完全ガイド。イベントストレージ、Journey設定、カート放棄の例、ベストプラクティス、トラブルシューティングを含みます。
ステップ4. カート放棄セグメントを作成する(Tagsのみ)
セグメントはJourneyにエントリーできるユーザーを決定します。詳細はセグメントを参照してください。 User Tagフィルターを選択して、cart_updatedタグがexistsのユーザーを追跡し、AND Last Sessionフィルターをless than 7 days agoに設定します

カートを更新し、過去7日以内にアプリまたはウェブサイトを訪問したユーザーを追跡できるようになりました。以下のいずれかの条件が満たされると、ユーザーはセグメントから自動的に削除されます:
- アプリ/ウェブサイトを最後に訪問してから7日が経過した場合
cart_updatedタグが削除された場合
ステップ5. カート放棄Journeyを作成する
カートアクティビティに反応するJourneyを作成します。詳細はJourneysを参照してください。
Journeyの設定
エントリー、エグジット、再エントリーのルールの詳細については、Journeyの設定ガイドを確認してください。 エントリールール:- Custom Event: エントリールール
- Tag: エントリールール
- Custom Eventを選択
- Custom Event名:
cart_abandoned

- Custom Event: エグジットルール
- Tag: エグジットルール
- Meet a certain conditionを選択
- Exit when custom event condition occursをチェック
- Custom Event名:
cart_emptied

ユーザーは以下の場合にJourneyからエグジットします:
cart_emptiedイベント(ステップ3から)が実行された場合。- Journeyを完了した場合。
- Yes, after a certain amount of timeを選択
- 再エントリー時間を
1dayに設定

このガイドをここまで完全に実行していれば、ユーザーは:
- カートを放棄/更新したときにJourneyにエントリーします
- カートを空にするかJourneyを完了したときにエグジットします。
- Journeyに再エントリーする資格があります:
- Custom Events:
cart_abandonedイベントが実行されるたび - Tags:Journeyから最後にエグジットしてから1日が経過し、セグメントに含まれている場合。
- Custom Events:
Journeyのステップ
ユーザーはセグメントに一致するとJourneyにエントリーします。これは通常、イベント/タグが受信されてから数分以内に発生します。 ユーザーは、終わりに到達するかエグジットルールが満たされるまで、Journeyをステップごとに進みます。 基本的なカート放棄Journeyの場合、2つのことを行います:- ユーザーにカートを空にする十分な時間を与える(購入するか手動でカートを空にする)
- カートを空にしない場合、カート内のアイテムについてリマインダーメッセージを送信する
- 待機時間を希望する長さに設定します。購入意思がまだあるうちにメッセージを送信できるように、
1hourに設定することを推奨します。
- ステップ4で作成したAbandoned Cartプッシュ通知テンプレートを選択します。

基本的なカート放棄Journeyの設定が完了しました。ユーザーがJourneyにエントリーすると、1時間待機します。Journeyからエグジットしない場合、カート放棄プッシュ通知を受信します。
高度なJourneyセットアップ
このガイドで得た知識を使用して、時間の経過とともにより多くのメッセージを送信するようにJourneyを拡張できます。メッセージシーケンス
非常に一般的な高パフォーマンスのケイデンスのベストプラクティスタイミングシーケンスは以下の通りです:- 1時間後に最初のメッセージを送信(このガイドで完了)。
- 1日間の別のWaitステップを追加し、2番目のメッセージを送信(カート更新後約24時間)。
- 2日間の別のWaitステップを追加し、3番目のメッセージを送信(カート更新後約72時間)。
- このガイドでは、最初の1時間後にプッシュ通知メッセージを送信する方法を示しています。これは、ユーザーがまだオンラインである可能性がある間に販売を獲得するための有用なリマインダーとして使用されます。
- 2番目のメッセージにはプッシュとメールの両方を使用することを検討してください。この2番目のメッセージを使用して、軽い緊急性とともに利点と社会的証明を強調し、購入を促しましょう。
- シーケンスの最後のメッセージには、メールまたはSMS(ユースケースに応じて)を「最後のチャンス」として使用してください。割引コードやその他のインセンティブを使用して購入を促すことを検討してください。
フォールバックメッセージ
OneSignalのJourneysは、メッセージが確認済み配信、クリック、または開封されたかどうかを確認し、特定の期間内に実行されない場合にフォールバックメッセージを送信できるWait Until分岐ロジックを提供します。 これは、特定のメッセージチャネルの登録を解除した可能性があるユーザーにとって非常に便利です。フォールバックメッセージの設定方法の詳細は、フォールバックメッセージガイドをご覧ください。パフォーマンスの追跡
Journey分析を使用して、Journey全体のパフォーマンスを追跡できます。テンプレート分析を使用して、各メッセージのパフォーマンスも追跡できます。Outcomesで収益を追跡する
このJourneyの収益を追跡するには、Custom Outcomesを使用できます。 購入が行われたとき、イベントを「Custom Outcome」として送信して、送信された特定のメッセージに関連する収益を追跡できます。 Custom OutcomesはMobile SDKまたはWeb SDKを通じて送信できます。Example: Send purchase outcome via frontend SDK
Outcomesは、定義されたアトリビューションウィンドウ内でユーザーがクリックした、または影響を受けたメッセージに収益を帰属させることができます。
カート放棄Journeyの実装が正常に完了しました。メッセージの送信を開始する準備ができたら、Set Liveを選択してください。
サポートが必要ですか?サポートチームとチャットするか、
support@onesignal.comにメールしてください以下を含めてください:- 発生している問題の詳細と再現手順(利用可能な場合)
- OneSignal App ID
- 該当する場合は、External IDまたはSubscription ID
- 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
- 関連するログまたはエラーメッセージ


