跳转到主要内容

概述

购物车放弃是挽回流失收入的最高影响力机会之一。大多数放弃购物车的用户仍有购买意向 — 他们只是需要一个及时的提醒。 本指南向您展示如何在 OneSignal 中构建一个自动化购物车放弃 Journey,它可以:
  • 检测购物车活动
  • 等待一段短暂的非活跃期
  • 发送个性化提醒
  • 在购买或清空购物车后立即停止消息发送
您可以使用以下任一方式实现:
  • 自定义事件(推荐用于大多数实现)
  • 标签(更简单,适用场景有限)
正确的选择取决于您希望在消息中展示的数据以及该数据的来源。 您将构建的内容 完成本指南后,您将拥有:
  • 发送到 OneSignal 的购物车活动(通过标签或自定义事件)
  • 一个清晰的、代码定义的放弃信号
  • 个性化购物车数据的消息模板
  • 一个 Journey,它可以:
    • 在收到放弃信号时启动
    • 在发送前等待
    • 发送购物车放弃消息
    • 在购物车被清空或完成购买时立即退出
  • 用于衡量消息和收入表现的分析
购物车放弃的建模方式 本指南假设您正在跟踪”购物车更新”事件,即每次用户在购物车中添加或删除商品时。这可以是单个商品(如内容订阅)或多个商品(如购物车)。 一旦 OneSignal 收到 cart_updated 事件:
  • 用户将有资格进入 Journey
  • 等待期给他们时间自然返回
  • 仅在他们未退出时才发送消息
  • 当购物车被清空时,用户立即退出

设置

步骤 1. 规划您的购物车数据和来源

决定您想展示哪些购物车信息以及该数据来自哪里 常见的购物车数据包括:
  • 产品名称、图片、价格和数量
  • 购物车中的商品数量
  • 返回购物车的深度链接
您的数据来源决定了您如何发送事件:
数据来源推荐方法
应用或网站OneSignal 前端 SDK
后端或数据库OneSignal REST API
第三方平台基于集成的自定义事件
完成此步骤后,您将知道要发送什么数据以及如何发送它

步骤 2. 向 OneSignal 发送购物车活动

当购物车状态发生变化时,将更新后的购物车数据发送给 OneSignal,以便跟踪活动。 本指南使用 cart_updated 事件或标签来跟踪购物车活动,并至少包含一个属性。 选择您在步骤 1 中选择的方法:
每次购物车发生变化时发送一个 cart_updated 自定义事件。当购物车中有商品时包含产品属性,购物车清空时省略。
参考描述
trackEvent 方法通过前端 SDK 发送(Mobile SDKWeb SDK
自定义事件 API通过 REST API 发送
集成通过集成发送
前端 SDK trackEvent 方法示例
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/cart"
});
自定义事件 API 示例
{
  "events": [
    {
      "name": "cart_updated",
      "properties": {
        "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"
      },
      "external_id": "ID_OF_THE_USER"
    }
  ]
}
购物车活动现在正在发送到 OneSignal。每次购物车发生变化时,OneSignal 都会收到触发和个性化消息所需的更新数据。

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

创建动态引用购物车数据的消息模板。 有关本节中使用的概念的更多详情,请参阅:
使用 Liquid 语法格式引用事件属性:
Liquid
{{journey.event.name.properties.property_name | default: "fallback_value"}}
消息
Liquid
You left {{journey.event.cart_updated.properties.product_name | default: "items"}} in your cart.
图片
Liquid
{{journey.event.cart_updated.properties.product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
启动 URL
Liquid
{{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
使用自定义事件的购物车放弃模板示例
需要邮件示例、帮助或更多灵感?

使用自定义事件个性化消息

在 Journeys 中使用自定义事件的完整指南。包括事件存储、Journey 配置、购物车放弃示例、最佳实践和故障排除。

使用属性个性化消息

在 Journeys 中使用属性和标签的完整指南。包括事件存储、Journey 配置、购物车放弃示例、最佳实践和故障排除。

步骤 4. 创建购物车放弃细分(仅限标签)

此步骤仅在使用标签跟踪购物车活动时才需要。如果您使用的是自定义事件,可以跳过此步骤。
细分将决定谁可以进入 Journey。有关更多详情,请参阅细分 向细分添加两个筛选器:
  1. User Tagcart_updated exists
  2. Last Sessionless than 7 days ago
购物车放弃细分,使用标签筛选器,其中 cart_updated 标签存在且最后一次会话在 7 天以内
现在我们可以跟踪更新了购物车且在过去 7 天内访问过应用或网站的用户。当满足以下任一条件时,用户将自动从细分中移除:
  • 距离他们上次访问应用/网站已超过 7 天
  • cart_updated 标签被移除时

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

创建一个对购物车活动做出反应的 Journey。有关更多详情,请参阅 Journeys
新建购物车放弃 Journey 创建页面

Journey 设置

查看 Journey 设置指南,了解有关进入、退出和重新进入规则的更多详情。 进入规则:
  • 选择 Custom Event
  • Custom Event Name:cart_updated
  • 按属性筛选:包含以下所有属性:product_name exists
使用自定义事件允许单个用户多次进入 Journey。使用属性筛选用户,使其仅在特定属性存在时才进入。
购物车放弃 Journey 自定义事件进入规则
退出规则
当用户清空购物车或完成 Journey 时,他们应退出 Journey。
  • 选择 Meet a certain condition
  • 勾选 Exit when custom event condition occurs
  • Custom Event Name:cart_updated
购物车放弃 Journey 自定义事件退出规则
此配置对进入和退出规则均使用相同的自定义事件名称(cart_updated)。这允许用户在同一时间只处于一个 Journey 实例中。每次他们更新购物车,该用户实例将退出,同一用户的新实例将进入 Journey。这就是为什么在进入规则中使用属性筛选用户非常重要。
重新进入规则(仅限标签):
  • 选择 Yes, after a certain amount of time
  • 将重新进入时间设置为 1 day
购物车放弃 Journey 重新进入规则
如果您已完整按照本指南操作到此处,那么用户将:
  1. 在放弃/更新购物车时进入 Journey
  2. 在清空购物车或完成 Journey 时退出 Journey。
  3. 有资格重新进入 Journey:
    • 自定义事件:每次执行 cart_updated 事件时
    • 标签:在上次退出 Journey 后经过 1 天且仍在细分中时。
保存 Journey 设置。

Journey 步骤

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

高级 Journey 设置

扩展 Journey 以在更长的时间内发送更多消息,以获得更高的挽回率。

消息序列

一个常见的高效节奏是:
  1. 在 1 小时后发送第一条消息(在本指南中已完成)。
  2. 添加另一个 Wait 步骤等待 1 天,然后发送第二条消息(自更新购物车起约 24 小时)。
  3. 添加另一个 Wait 步骤等待 2 天,然后发送第三条消息(自更新购物车起约 72 小时)。

消息类型和内容

根据您在 OneSignal 中设置的渠道,使用全渠道方法将获得更好的效果。
  1. 本指南展示了如何在第一个小时后发送推送通知消息。这用作一个有用的提醒,在用户可能仍在线时尝试促成销售。
  2. 考虑在第二条消息中同时使用推送和邮件。使用第二条消息来突出好处和社会认同,配合适度的紧迫感来鼓励他们购买。
  3. 对于序列中的最后一条消息,使用邮件或短信(取决于使用场景)作为”最后通知”。考虑使用折扣码或其他激励措施来鼓励他们购买。

备用消息

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

跟踪表现

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

使用 Outcomes 跟踪收入

要跟踪此 Journey 的收入,您可以使用自定义 Outcomes 当完成购买时,您可以将事件作为 “Custom Outcome” 发送,以跟踪与发送的特定消息相关的收入。 Custom Outcomes 可通过 Mobile SDKWeb SDK 发送。
Example: Send purchase outcome via frontend SDK
// Example: capture total price and item count at checkout
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。当您准备好开始发送消息时,选择 Set Live

常见问题

购物车跟踪应该使用自定义事件还是标签?

自定义事件推荐用于大多数实现。它们支持更丰富的数据,允许在 Journey 进入规则中进行基于属性的筛选,并在同一事件再次触发时自动处理重新进入。标签适用于只需跟踪购物车是否存在的更简单场景,但需要手动创建细分和配置重新进入。

发送第一条提醒前应该等待多长时间?

一到两小时是常见的起点。这给用户足够的时间在购买意向仍然新鲜时自然返回。测试不同的等待时间,并使用 Journey 分析找到最适合您受众的方式。

如果用户在 Journey 中更新了购物车会发生什么?

使用自定义事件时,用户会退出当前 Journey 实例(因为 cart_updated 作为退出条件触发),并立即以更新后的事件数据重新进入。使用标签时,由于标签仍然存在,用户保持在同一 Journey 实例中——他们只有在退出并等待重新进入期后才会重新进入。
需要帮助?与我们的支持团队聊天或发送邮件至 support@onesignal.com请包含以下信息:
  • 您遇到的问题详情以及复现步骤(如有)
  • 您的 OneSignal 应用 ID
  • 外部 ID 或订阅 ID(如适用)
  • 您在 OneSignal 控制台中测试的消息 URL(如适用)
  • 任何相关的日志或错误信息
我们很乐意为您提供帮助!