跳转到主要内容

概述

购物车放弃是挽回流失收入的最高影响机会之一。大多数放弃购物车的用户仍有购买意向——他们只是需要及时的提醒。 本指南向您展示如何在 OneSignal 中构建自动化的购物车放弃 Journey,它可以:
  • 检测用户何时将商品添加到购物车
  • 等待短暂的非活跃期
  • 发送个性化提醒
  • 在购买或移除购物车后立即停止消息发送
您可以使用以下任一方式实现:
  • 自定义事件(推荐用于大多数实现)
  • 标签(更简单,适用于有限的使用场景)
正确的选择取决于您想在消息中显示的数据以及数据来源。

您将构建什么

在本指南结束时,您将拥有:
  • 发送到 OneSignal 的购物车活动(通过标签或自定义事件)
  • 代表拥有活跃放弃购物车用户的细分
  • 一个 Journey,它可以:
    • 在检测到购物车活动时启动
    • 等待非活跃状态
    • 发送购物车放弃消息
    • 在购物车清空或购买时立即退出
  • 用于衡量消息和收入表现的分析

标签与自定义事件

标签自定义事件都是向用户添加数据的方式。但是,它们之间存在一些关键区别:
功能标签自定义事件
数据用途细分和个性化无需细分即可触发旅程、等待步骤、直接在旅程中实现个性化
数据 保留期限永久30天以上(提供永久存储
数据格式键值对字符串或数字JSON
数据来源OneSignal SDK、API 或集成(有限)OneSignal SDK、API 或集成
数据访问细分和消息个性化旅程和旅程消息模板个性化、细分(即将推出)
标签和自定义事件之间的关键区别在于它们的深度和使用场景。标签是用户的属性,例如姓名、账户状态或位置。事件是用户已完成的操作,例如购买商品、完成关卡或邀请好友。标签和事件都可用于细分和个性化。 在实际应用中,您可能会同时使用两者:
  • 标签用于静态且不经常更改的用户属性
  • 自定义事件用于实时场景、复杂细分和更复杂的旅程工作流

设置

步骤 1. 决定要使用的购物车数据

首先决定您想在购物车放弃消息中显示哪些信息。 常见选项包括:
  • 购物车中的商品数量
  • 产品名称、图片、价格和数量
  • 返回用户购物车的深层链接
您在此处的选择决定了标签或自定义事件是否合适。

步骤 2. 确定您的数据源

购物车活动跟踪位置决定了如何将数据发送到 OneSignal:
  • 应用程序或网站 → 使用 OneSignal 前端 SDK
  • 后端或数据库 → 使用 OneSignal REST API
  • 第三方平台或集成 → 通过集成使用自定义事件

步骤 3. 将购物车活动发送到 OneSignal

您必须发送两个信号(事件或标签):
  1. 购物车已更新 - 当添加商品时
  2. 购物车已清空 - 当移除商品或完成结账时
名称必须在 SDK/API 调用、细分、Journey 进入/退出规则和 Liquid 变量中完全匹配。如果 cart_updated 在任何地方拼写不同,用户将无法进入细分或正确退出 Journey。
OneSignal 移动和 Web SDK 具有发送自定义事件和标签的方法。
SDK 方法描述
trackEvent发送自定义事件(移动 SDKWeb SDK)
addTags添加标签(移动 SDKWeb SDK)
removeTags移除标签(移动 SDKWeb SDK)
购物车已更新示例
// 将购物车商品添加到事件属性
OneSignal.User.trackEvent("cart_updated", {
  product_name: "24 Pack of Acorns",
  product_image: "https://i.imgur.com/ssPCfbC.png",
  product_price: 12.99,
  product_quantity: 1,
  cart_url: "https://yourdomain.com/username/cart"
});
购物车已清空示例
// 将事件发送到 OneSignal
OneSignal.User.trackEvent("cart_emptied");
如果您不跟踪购物车清空事件,用户可能会在购买后继续收到购物车放弃消息。

步骤 4. 创建购物车放弃消息模板

创建一个动态引用购物车数据的消息模板。 有关本节中使用的概念的更多详细信息,请参阅:
使用 Liquid 语法格式引用事件属性:
{{journey.event.name.properties.property_name | default: "fallback_value"}}
  • 标题: 嘿,酷猫 😸!
  • 消息: 您在购物车中留下了 {{journey.event.cart_updated.properties.product_name | default: "商品"}}
  • 图片: {{journey.event.cart_updated.properties.product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
  • 启动 URL: {{journey.event.cart_updated.properties.cart_url | default: "https://yourdomain.com/cart"}}
如果 product_image 不是直接的可公开访问的图片 URL,图片将不会显示。如果您的 product_image 是在线可用的图片文件名称,您可以使用以下格式引用图片: https://yourdomain.com/images/{{journey.event.cart_updated.properties.product_image | default: "stock_image"}}.png
显示产品图片和个性化产品名称的购物车放弃推送模板
需要电子邮件示例、帮助或更多灵感?查看我们的购物车放弃动态内容教程以获取更多示例。

步骤 5. 创建购物车放弃细分

细分将决定谁可以进入 Journey。有关更多详细信息,请参阅细分
选择自定义事件筛选器来跟踪 cart_updated 事件已执行``至少 1在``最近 24 小时内的用户
使用自定义事件筛选器的购物车放弃细分,该事件在最近 24 小时内至少执行过一次
我们现在可以跟踪每 24 小时至少更新一次购物车的用户。自用户上次更新购物车后 24 小时过去后,用户将自动从细分中移除。

步骤 6. 创建购物车放弃 Journey

创建一个 Journey 来响应细分进入。 有关本节中使用的概念的更多详细信息,请参阅:
新购物车放弃 Journey 创建界面

Journey 设置

进入规则:
  • 选择受众细分
  • 包含细分:购物车放弃 - cart_updated
购物车放弃 Journey 进入规则
退出规则:
  • 选择满足特定条件
  • 勾选当自定义事件条件发生时退出
  • 自定义事件名称:cart_emptied
购物车放弃 Journey 自定义事件退出规则
用户将在以下任一情况下退出 Journey:
  • 执行 cart_emptied 事件(来自步骤 3)。
  • 他们完成 Journey。
重新进入规则:
  • 选择是,在一定时间后
  • 将重新进入时间设置为 1
购物车放弃 Journey 重新进入规则
如果您到目前为止已完全遵循本指南,那么用户将:
  1. 在更新购物车时进入 Journey
  2. 在清空购物车或完成 Journey 时退出 Journey。
  3. 在上次退出后经过 1 天后有资格重新进入 Journey。他们必须在细分中才能重新进入 Journey。
保存 Journey 设置。

Journey 步骤

用户将在匹配细分时进入 Journey。这通常在收到事件/标签后的几分钟内发生。 用户将逐步通过 Journey,直到到达终点或满足退出规则。 对于基本的购物车放弃 Journey,我们想做两件事:
  1. 给用户足够的时间清空购物车(进行购买或手动清空购物车)
  2. 如果他们没有清空购物车,向他们发送消息提醒他们购物车中的商品
通过首先向 Journey 添加等待步骤来实现此目的。
  • 将等待时间设置为您想要的时长。我们建议将其设置为 1 小时,以便在他们仍有购买意向时向他们发送消息。
添加消息步骤。
  • 选择您在步骤 4 中创建的购物车放弃推送通知模板。
基本购物车放弃 Journey 步骤
基本购物车放弃 Journey 现已配置完成。当用户进入 Journey 时,他们将等待 1 小时。如果他们没有退出 Journey,他们将收到购物车放弃推送通知。

高级 Journey 设置

使用您从本指南中获得的知识,您现在可以扩展 Journey 以随着时间推移发送更多消息。

消息序列

一个非常常见的高性能节奏的最佳实践时间序列是:
  1. 在 1 小时后发送第一条消息(在本指南中完成)。
  2. 添加另一个 等待步骤 1 天,并发送第二条消息(自更新购物车后约 24 小时)。
  3. 添加另一个 等待步骤 2 天,并发送第三条消息(自更新购物车后约 72 小时)。
消息类型和内容: 根据您在 OneSignal 中设置的渠道,使用全渠道方法将获得更好的结果。
  1. 本指南展示了如何在第一个小时后发送推送通知消息。这用作有用的提醒,尝试在用户可能仍在线时捕获销售。
  2. 考虑在第二条消息中同时使用推送和电子邮件。使用第二条消息突出显示好处和社会证明,并带有轻微的紧迫感以鼓励他们购买。
  3. 对于序列的最后一条消息,使用电子邮件或可能是短信(取决于使用场景)作为”最后呼叫”。考虑使用折扣码或其他激励措施来鼓励他们购买。

备用消息

OneSignal 的 Journeys 提供等待直到分支逻辑,您可以使用它来检查消息是否已确认送达、点击或打开,如果在特定时间段内未执行,则发送备用消息。 这对于可能取消订阅特定消息渠道的用户非常有帮助。有关如何设置备用消息的更多详细信息,请参阅我们的备用消息指南。

跟踪表现

Journey 分析可用于跟踪 Journey 整体的表现。您还可以使用模板分析跟踪每条消息的表现。

使用 Outcomes 跟踪收入

要跟踪此 Journey 的收入,您可以使用自定义 Outcomes 当进行购买时,您可以将事件作为”自定义 Outcome”发送,以跟踪与发送的特定消息相关的收入。 可以通过移动 SDKWeb SDK发送自定义 Outcomes。
示例:通过前端 SDK 发送购买 outcome
// 示例:在结账时捕获总价和商品数量
const checkoutPriceTotal = document.querySelector(".checkout-price-total").innerText;
const checkoutItemsTotal = document.querySelector(".checkout-items-total").innerText;

function updateOSOnCartPurchase(checkoutPriceTotal, checkoutItemsTotal) {
  const purchasePriceTotal = parseFloat(checkoutPriceTotal);
  const purchasedItemCount = parseInt(checkoutItemsTotal);

  OneSignalDeferred.push(function (OneSignal) {
    OneSignal.Session.sendOutcome("Purchase", purchasePriceTotal);
    OneSignal.Session.sendOutcome("Purchased Item Count", purchasedItemCount);
  });
}

const submitPurchaseButton = document.querySelector(".submit-payment");
if (submitPurchaseButton) {
  submitPurchaseButton.addEventListener("click", () => {
    updateOSOnCartPurchase(checkoutPriceTotal, checkoutItemsTotal);
  });
}
Outcomes 可以将收入归因于用户在定义的归因窗口内点击或受影响的消息。
您已成功实现购物车放弃 Journey。当您准备开始发送消息时,选择设置为在线
需要帮助?与我们的支持团队聊天或发送邮件至 [email protected]请包含以下信息:
  • 您遇到的问题详情以及复现步骤(如有)
  • 您的 OneSignal 应用 ID
  • 外部 ID 或订阅 ID(如适用)
  • 您在 OneSignal 控制台中测试的消息 URL(如适用)
  • 任何相关的日志或错误信息
我们很乐意为您提供帮助!