概述
购物车放弃是挽回流失收入的最高影响力机会之一。大多数放弃购物车的用户仍有购买意向 — 他们只是需要一个及时的提醒。 本指南向您展示如何在 OneSignal 中构建一个自动化购物车放弃 Journey,它可以:- 检测购物车活动
- 等待一段短暂的非活跃期
- 发送个性化提醒
- 在购买或清空购物车后立即停止消息发送
- 自定义事件(推荐用于大多数实现)
- 标签(更简单,适用场景有限)
您将构建的内容
完成本指南后,您将拥有:- 发送到 OneSignal 的购物车活动(通过标签或自定义事件)
- 一个清晰的、代码定义的放弃信号
- 个性化购物车数据的消息模板
- 一个 Journey,它可以:
- 在收到放弃信号时启动
- 在发送前等待
- 发送购物车放弃消息
- 在购物车被清空或完成购买时立即退出
- 用于衡量消息和收入表现的分析
选择您的跟踪方法
您可以使用自定义事件或标签来跟踪购物车活动。-
使用自定义事件,如果您:
- 可以在一段非活跃期后检测到放弃
- 需要丰富的购物车数据(商品、图片、价格)
- 能够确保事件每次放弃只触发一次
-
使用标签,如果您:
- 希望默认具有基于状态的安全性
- 只需要简单的购物车数据
- 偏好通过细分控制进入和退出
购物车放弃的建模方式
OneSignal 不会自动判断购物车何时被放弃。您需要在自己的代码或系统中决定购物车何时被放弃,然后通知 OneSignal。
cart_abandoned 的含义
cart_abandoned 事件应代表一个状态转换 - 购物车处于活跃状态 → 用户停止交互 → 购物车现在被视为已放弃。
此事件应在以下情况下发送:
- 在一段有意义的非活跃期之后(例如 1 小时)
- 仅在购物车中仍有商品时
Journeys 如何使用放弃信号
一旦 OneSignal 收到cart_abandoned:
- 用户将有资格进入 Journey
- 等待期给他们时间自然返回
- 仅在他们未退出时才发送消息
- 当收到
cart_emptied时,用户立即退出
Journeys 控制时间和重复 — 它们不决定放弃。
设置
步骤 1. 规划您的购物车数据和来源
决定您想展示哪些购物车信息以及该数据来自哪里。 常见的购物车数据包括:- 产品名称、图片、价格和数量
- 购物车中的商品数量
- 返回购物车的深度链接
| 数据来源 | 推荐方法 |
|---|---|
| 应用或网站 | OneSignal 前端 SDK |
| 后端或数据库 | OneSignal REST API |
| 第三方平台 | 基于集成的自定义事件 |
完成此步骤后,您将知道要发送什么数据以及如何发送它。
步骤 2. 向 OneSignal 发送购物车状态信号
您必须发送代表购物车状态变化的信号。| 信号 | 用途 |
|---|---|
cart_abandoned | 检测到购物车活动但未解决 |
cart_updated | 购物车内容发生变化 |
cart_emptied | 购物车已清空或完成购买 |
- Frontend SDK
- REST API
- 3rd Party Integration
使用 OneSignal Web 或 Mobile SDK 发送自定义事件或标签。
自定义事件示例标签示例
| SDK 方法 | 描述 |
|---|---|
trackEvent | 发送自定义事件(Mobile SDK、Web SDK) |
addTags | 添加标签(Mobile SDK、Web SDK) |
removeTags | 移除标签(Mobile SDK、Web SDK) |
此示例将
cart_updated 标签设置为表示购物车上次更新时间的 Unix 时间戳(以秒为单位)。您也可以使用布尔值(true/false),但时间戳通过 Time Operators 提供更大的灵活性。步骤 3. 创建购物车放弃消息模板
创建动态引用购物车数据的消息模板。 有关本节中使用的概念的更多详情,请参阅:- 自定义事件推送模板
- Tag 推送模板
使用 Liquid 语法格式引用事件属性:消息:图片:启动 URL:
Liquid
Liquid
Liquid
Liquid

使用自定义事件个性化消息
在 Journeys 中使用自定义事件的完整指南。包括事件存储、Journey 配置、购物车放弃示例、最佳实践和故障排除。
使用属性个性化消息
在 Journeys 中使用属性和标签的完整指南。包括事件存储、Journey 配置、购物车放弃示例、最佳实践和故障排除。
步骤 4. 创建购物车放弃细分(仅限标签)
细分将决定谁可以进入 Journey。有关更多详情,请参阅细分。 选择 User Tag 筛选器来跟踪cart_updated 标签 exists 的用户,并且选择 Last Session 筛选器为 less than 7 days ago

现在我们可以跟踪更新了购物车且在过去 7 天内访问过应用或网站的用户。当满足以下任一条件时,用户将自动从细分中移除:
- 距离他们上次访问应用/网站已超过 7 天
- 当
cart_updated标签被移除时
步骤 5. 创建购物车放弃 Journey
创建一个对购物车活动做出反应的 Journey。有关更多详情,请参阅 Journeys。
Journey 设置
查看 Journey 设置指南,了解有关进入、退出和重新进入规则的更多详情。 进入规则:- 自定义事件: 进入规则
- 标签: 进入规则
- 选择 Custom Event
- Custom Event Name:
cart_abandoned

- 自定义事件: 退出规则
- Tag: Exit Rules
- 选择 Meet a certain condition
- 勾选 Exit when custom event condition occurs
- Custom Event Name:
cart_emptied

用户将在以下任一情况下退出 Journey:
- 执行了
cart_emptied事件(来自步骤 3)。 - 完成了 Journey。
- 选择 Yes, after a certain amount of time
- 将重新进入时间设置为
1day

如果您已完整按照本指南操作到此处,那么用户将:
- 在放弃/更新购物车时进入 Journey
- 在清空购物车或完成 Journey 时退出 Journey。
- 有资格重新进入 Journey:
- 自定义事件:每次执行
cart_abandoned事件时 - 标签:在上次退出 Journey 后经过 1 天且仍在细分中时。
- 自定义事件:每次执行
Journey 步骤
当用户匹配细分时,他们将进入 Journey。这通常在收到事件/标签后几分钟内发生。 用户将逐步完成 Journey 中的各个步骤,直到到达终点或满足退出规则。 对于基本的购物车放弃 Journey,我们需要做 2 件事:- 给用户足够的时间来清空购物车(进行购买或手动清空购物车)
- 如果他们没有清空购物车,向他们发送一条关于购物车中商品的提醒消息
- 将等待时间设置为您想要的时长。我们建议设置为
1hour,这样您可以在他们仍有购买意向时发送消息。
- 选择您在步骤 4 中创建的 Abandoned Cart 推送通知模板。

基本购物车放弃 Journey 现已配置完成。当用户进入 Journey 时,他们将等待 1 小时。如果他们没有退出 Journey,将收到购物车放弃推送通知。
高级 Journey 设置
利用您从本指南中获得的知识,您现在可以扩展 Journey 以在更长的时间内发送更多消息。消息序列
一个非常常见的高效节奏的最佳实践时间序列是:- 在 1 小时后发送第一条消息(在本指南中已完成)。
- 添加另一个 Wait 步骤等待 1 天,然后发送第二条消息(自更新购物车起约 24 小时)。
- 添加另一个 Wait 步骤等待 2 天,然后发送第三条消息(自更新购物车起约 72 小时)。
- 本指南展示了如何在第一个小时后发送推送通知消息。这用作一个有用的提醒,在用户可能仍在线时尝试促成销售。
- 考虑在第二条消息中同时使用推送和邮件。使用第二条消息来突出好处和社会认同,配合适度的紧迫感来鼓励他们购买。
- 对于序列中的最后一条消息,使用邮件或短信(取决于使用场景)作为”最后通知”。考虑使用折扣码或其他激励措施来鼓励他们购买。
备用消息
OneSignal 的 Journeys 提供 Wait Until 分支逻辑,您可以使用它来检查消息是否已确认送达、被点击或被打开,如果在一定时间内未执行,则发送备用消息。 这对于可能已取消订阅特定消息渠道的用户非常有用。有关如何设置备用消息的更多详情,请参阅我们的备用消息指南。跟踪表现
Journey 分析可用于跟踪 Journey 整体的表现。您还可以使用模板分析来跟踪每条消息的表现。使用 Outcomes 跟踪收入
要跟踪此 Journey 的收入,您可以使用自定义 Outcomes。 当完成购买时,您可以将事件作为 “Custom Outcome” 发送,以跟踪与发送的特定消息相关的收入。 Custom Outcomes 可通过 Mobile SDK 或 Web SDK 发送。Example: Send purchase outcome via frontend SDK
Outcomes 可以在定义的归因窗口内将收入归因于用户点击或受影响的消息。
您已成功实现了购物车放弃 Journey。当您准备好开始发送消息时,选择 Set Live。
需要帮助?与我们的支持团队聊天或发送邮件至
support@onesignal.com请包含以下信息:- 您遇到的问题详情以及复现步骤(如有)
- 您的 OneSignal 应用 ID
- 外部 ID 或订阅 ID(如适用)
- 您在 OneSignal 控制台中测试的消息 URL(如适用)
- 任何相关的日志或错误信息


