跳转到主要内容

为什么使用回退方法?

推送通知很强大,但不能保证触及每个用户。推送投递失败的常见原因包括:
  • 用户退出或禁用通知权限
  • 设备离线或处于限制状态(例如 iOS 专注模式)
  • 应用已卸载或推送令牌已过期
为确保您的消息仍能传递,OneSignal 支持跨其他渠道的回退消息:
  • 应用内消息
  • 邮件
  • 短信
通过智能回退策略,您可以确保关键通信仍能到达用户——即使推送无法送达。

回退策略概述

1

发送主要推送通知

这是您通过标准推送消息通知用户的初始尝试。
2

检查投递或打开状态

监控投递和用户交互以确定是否需要回退。
3

通过其他渠道触发回退

如果没有参与或投递,请通过邮件或短信发送相同的消息。

要求

  • 为每个用户设置唯一的 External ID
  • 用户使用 OneSignal SDK 或 REST API 在其个人资料中关联了邮件或短信数据

推荐的实现选项

选项 1:OneSignal Journeys(无代码)

使用 OneSignal Journeys 以可视化方式自动化回退逻辑:
  • 拖放界面
  • 支持按打开/点击/投递进行分支
  • 结合推送、应用内、邮件和短信

Journeys 构建器中的回退逻辑

选项 2:使用 API 的自定义回退工作流

1

发送推送通知

使用 Create Notification API 向您的用户发送推送消息。您可以根据其 External ID 或自定义别名定位特定用户。
POST https://onesignal.com/api/v1/notifications

{
  "include_aliases": {
    "external_id": [
      "user1",
      "user2",
      "user3"
    ]
  },
  "target_channel": "push"
}
2

检查状态并触发回退

发送后,使用 View Message API 检查通知是否已投递。如果:"received" = 0,或状态为 "failed""errored",则表示推送通知没有送达。此时,您可以使用自己的提供商(例如 Twilio 或 SendGrid),通过映射的电话号码发送 SMS 回退

选项 3:检测并细分用户以进行回退

1

检测推送订阅状态

使用 SDK 方法:addPermissionObserver()。 它允许您的应用在运行时跟踪并响应设备通知权限状态的变化。如果在应用未运行时权限状态发生变化,观察者将在下次打开应用时触发。
2

标记取消订阅推送的设备

您可以为用户添加标签。您应用的标签(例如, unsubscribed_from_push: true)在该用户的所有渠道中共享——推送、邮件和短信。这使得以后轻松定位已退出推送通知的用户变得容易。
3

为回退用户创建细分群体

在 OneSignal 仪表板中:
  • 创建一个 unsubscribed_from_push = true 的细分群体
  • 使用回退邮件或短信活动定位该细分群体
  • 在 Journeys 或活动中使用此细分群体通过邮件或短信发送回退消息

最佳实践

  • 使用应用内消息或邮件作为您的首选回退选项——它们比短信干扰性更小。
  • 在发送回退消息之前添加短暂的宽限期(如 2-5 分钟),给用户时间参与。
  • **不要让用户感到困扰。**限制跨渠道发送回退消息的频率。
  • 始终尊重用户偏好——只向已选择加入该渠道的用户发送消息。
  • **测量有效性。**使用标签、事件或分析来跟踪回退消息的有效性。

示例用例

安全警报

您正在发送安全警报。如果用户在 5 分钟内没有收到推送,他们将通过短信收到相同的消息。

订单配送更新

包裹正在配送中。您发送包含跟踪信息的推送。如果用户没有收到或打开它,他们会收到包含相同更新和直接链接的短信。

支付失败通知

结账时支付失败。发送推送通知用户。如果没有送达,可通过短信进行后续联系,敦促他们重试支付。

事件提醒

您提醒用户即将到来的事件(例如网络研讨会、预约)。如果没有收到推送,您可以发送包含日期、时间和加入链接或位置的短信。

系统停机警报

您正在通知用户意外停机。如果推送失败,回退到短信可确保用户实时得到通知。

账单通知

账单即将到期。您发送推送提醒。如果在 24 小时内没有收到,发送短信作为二次通知。

限时促销通知

限时促销开始。推送立即警告用户。如果推送未送达,您可以发送包含促销详情和购物链接的短信。 根据消息的紧急性调整回退逻辑。并非所有通知都需要短信,但关键通知受益于多渠道投递。
需要帮助?与我们的支持团队聊天或发送邮件至 support@onesignal.com请包含以下信息:
  • 您遇到的问题详情以及复现步骤(如有)
  • 您的 OneSignal 应用 ID
  • 外部 ID 或订阅 ID(如适用)
  • 您在 OneSignal 控制台中测试的消息 URL(如适用)
  • 任何相关的日志或错误信息
我们很乐意为您提供帮助!

I