如何实现短信补充服务

最近更新:2021-12-15
展开全部
如何实现短信补充服务

短信补充服务用于在 App 推送无法及时触达时,通过短信通道补充送达关键信息。典型原因包括用户断网、App 被系统限制后台运行、通知权限关闭、设备长期未活跃等。

最佳实践不建议“推送和短信都发一遍”,而是优先使用 App 推送,在指定等待时间内未达到成功标准时,再触发短信补充。这样既能控制短信成本,也能提升重要消息的最终触达率。

适用场景

建议用于用户必须及时感知、且短信成本可接受的场景:

  • 交易与账户安全:登录提醒、异地登录、支付结果、风控拦截、密码变更。
  • 服务履约通知:订单状态、配送异常、排队叫号、预约提醒、工单进度。
  • 高价值业务提醒:会员权益到期、重要活动确认、合同或账单提醒。
  • 推送不可达补偿:通知权限关闭、设备离线、厂商通道不稳定、长时间未活跃用户。

不建议用于普通营销消息、低优先级运营活动、已在 App 内可自然曝光的内容。此类场景更适合通过推送频控、站内信、应用内消息等方式触达,避免对用户造成打扰。

能力说明

极光推送通过 Push API 的 sms_message 字段提供短信补充能力。原有 App 推送流程不变,只是在一次推送请求中增加短信补充配置。

短信补充分为两种模式:

  • 短信补发:delay_time 设置为非 0。系统先下发推送,在指定时间内未达到成功标准时,再发送短信。
  • 短信并发:delay_time 设置为 0。推送和短信同时发送,适合极少数强时效、强触达场景。

短信由签名和正文模板组成。签名、模板需要先完成审核。自 2018 年 3 月起,短信补充必须使用已审核通过的正文内容模板,因此推送时需要填写 temp_id;如果模板包含变量,还需要填写 temp_para

接入前准备

上线前建议先完成以下准备:

  • 开通短信服务并确认账户余额充足,短信会产生额外运营商费用。
  • 在极光短信侧完成签名和正文模板审核,确认 signidtemp_id 和模板变量。
  • 建立用户手机号与设备 registrationID 的绑定关系。可通过极光服务端 Device API 或客户端设置手机号 API 完成绑定。
  • 明确哪些业务允许短信补充,避免所有推送默认开启短信补充。
  • 为短信补充配置预算、频控、告警和失败重试策略。

相关接口参考:

推荐实现流程

1. 先做消息分级

不是所有推送都需要短信补充。建议按业务重要性分级:

消息级别 示例 建议策略
P0 强触达 账户安全、支付风险、履约异常 开启短信补发,必要时短信并发
P1 重要通知 订单进度、预约提醒、重要服务状态 开启短信补发
P2 普通运营 活动提醒、内容推荐 默认不开启短信补充
P3 低优先级 泛营销、低价值召回 不建议使用短信补充

2. 选择合适的 delay_time

delay_time 决定等待推送成功的时间:

  • 0:短信并发,推送和短信同时发送。
  • 60300:适合登录、安全、支付、叫号等强时效消息。
  • 3001800:适合订单、物流、预约、工单等重要但不要求秒级触达的消息。
  • 不超过 24 小时:超过 24 小时不支持。

推荐默认使用短信补发模式,不要默认使用短信并发。并发短信会显著增加成本,也更容易造成用户重复感知。

3. 配置短信模板变量

短信正文应短、清晰、可行动。建议只保留用户做决策所需的信息,例如订单号后 4 位、业务状态、操作入口提示等。

模板变量通过 temp_para 传入,变量名需要与短信模板中配置的变量保持一致。不要在短信中放入敏感明文信息,例如完整身份证号、银行卡号、密码、验证码以外的高敏字段。

4. 控制活跃过滤

active_filter 用于控制是否对补发短信的用户进行活跃过滤:

  • 默认 true:做活跃过滤,适合大多数场景,可减少对活跃用户的重复打扰。
  • 设置为 false:不做活跃过滤,适合强触达场景,但需要配合更严格的业务频控。

如果业务已经在服务端自行判断用户活跃状态、通知权限、最近触达记录,也可以结合自身策略决定是否关闭活跃过滤。

API 示例

以下示例表示先发送推送;如果 180 秒内未达到推送成功标准,则使用短信模板补发:

{ "platform": "all", "audience": { "registration_id": ["registration_id_1"] }, "notification": { "alert": "您的订单状态已更新,请及时查看。" }, "sms_message": { "delay_time": 180, "signid": 12345, "temp_id": 67890, "temp_para": { "order_no": "A1234", "status": "配送异常" }, "active_filter": true } }
          {
  "platform": "all",
  "audience": {
    "registration_id": ["registration_id_1"]
  },
  "notification": {
    "alert": "您的订单状态已更新,请及时查看。"
  },
  "sms_message": {
    "delay_time": 180,
    "signid": 12345,
    "temp_id": 67890,
    "temp_para": {
      "order_no": "A1234",
      "status": "配送异常"
    },
    "active_filter": true
  }
}

        
此代码块在浮窗中显示

如需短信并发,将 delay_time 设置为 0

{ "platform": "all", "audience": { "registration_id": ["registration_id_1"] }, "notification": { "alert": "您的账户存在异常登录风险,请立即确认。" }, "sms_message": { "delay_time": 0, "signid": 12345, "temp_id": 67891, "temp_para": { "time": "10:30", "location": "深圳" }, "active_filter": false } }
          {
  "platform": "all",
  "audience": {
    "registration_id": ["registration_id_1"]
  },
  "notification": {
    "alert": "您的账户存在异常登录风险,请立即确认。"
  },
  "sms_message": {
    "delay_time": 0,
    "signid": 12345,
    "temp_id": 67891,
    "temp_para": {
      "time": "10:30",
      "location": "深圳"
    },
    "active_filter": false
  }
}

        
此代码块在浮窗中显示

成功标准与厂商通道策略

短信补发是否触发,取决于推送成功标准:

  • 极光通道以真实送达为推送成功。
  • 厂商通道可配置判断标准,支持 API 调用成功、全部补发、不补发、送达回执等策略。若未配置,默认以提交厂商服务器成功为准。

如果业务对最终触达要求较高,建议联系商务确认厂商通道成功标准。对于支持送达回执的通道,可优先使用送达回执作为判断依据;对于无稳定回执能力的通道,需要结合业务成本和打扰风险选择“全部补发”或“API 调用成功”。

成本与打扰控制

短信补充容易带来额外成本和用户打扰,建议在服务端增加以下控制:

  • 单用户频控:同一用户在 1 分钟、1 小时、24 小时内限制短信补充次数。
  • 单业务频控:按业务类型设置不同上限,例如安全类高于营销类。
  • 去重控制:同一业务事件只允许触发一次短信补充,避免重试导致重复发送。
  • 预算控制:按日或按活动设置短信预算阈值,达到阈值后降级为仅推送。
  • 黑名单控制:对退订、投诉、异常号码、无效号码做过滤。
  • 夜间策略:非紧急消息避免在夜间触发短信。

文案与合规建议

  • 短信签名需与企业资质、品牌、业务场景保持一致。
  • 正文模板需提前审核,变量内容不得改变模板原意。
  • 营销类短信需遵守退订要求,不建议作为推送补充的默认方案。
  • 文案应说明清楚业务来源和用户动作,避免让用户误判为垃圾短信。
  • 避免在短信中包含完整敏感信息,必要时引导用户回到 App 或官网查看详情。

排查清单

如果短信补充未按预期触发,可按以下顺序排查:

  • 是否已开通短信服务,账户余额是否充足。
  • 手机号与 registrationID 是否已正确绑定。
  • Push API 请求中是否包含 sms_message.temp_id
  • temp_idsignidtemp_para 是否与已审核模板一致。
  • delay_time 是否设置正确,是否误设为 0 或超过 24 小时。
  • 该次推送是否已经达到成功标准,导致无需补发短信。
  • active_filter 是否过滤了近期活跃用户。
  • 厂商通道成功标准是否符合业务预期。
  • 目标手机号是否为空号、停机、携号转网异常或被运营商拦截。
  • 是否触发了业务侧频控、预算限制或黑名单过滤。

推荐方案

建议采用“重要消息分级 + 默认短信补发 + 少量场景短信并发”的方案:

  • P0 消息:delay_time 设置为 0 到 180 秒,必要时关闭 active_filter,但必须做严格频控。
  • P1 消息:delay_time 设置为 180 到 600 秒,默认开启 active_filter
  • P2/P3 消息:默认不使用短信补充,优先通过推送策略、应用内消息、站内信等方式触达。

这样可以在不显著增加短信成本的前提下,提高关键业务通知的最终触达率。

文档内容是否对您有帮助?

Copyright 2011-2026, jiguang.cn, All Rights Reserved. 粤ICP备12056275号-13 深圳市和讯华谷信息技术有限公司

在文档中心打开