一个在某时区早餐时间发布的活动,可能在另一个时区的深夜到达受众。你的调度决策需要收件人相关的当地时间以及适用于该消息的规则。
谁设定了限制时段?
法律、运营商要求和服务商政策都可以限制你发送受管控消息的时间。
规则决定了消息类型、时区和例外情况。一份全国性的摘要可能无法涵盖适用于你的收件人的每一条地方限制。
例如,47 CFR 64.1200(c)(1) 限制在上午 8 点之前或晚上 9 点之后进行受管控的美国电话推销。它使用被叫方的当地时间。第 (e) 段将相关条款扩展到无线营销短信。
在该限制下,收件人当地时间上午 7 点发送的受管控消息属于过早发送,即使你的服务器显示中午也是如此。TCPA 说明涵盖了该规则的适用范围。
不要将所有静默时段规则都视为到达时间的保证。在设计调度方案之前,先确认适用条文控制的是发送行为、发起联系还是送达。
Bird 会在允许发送之前暂存我的消息吗?
Bird 的 SMS 端点不会根据静默时段延迟消息。
它不会根据号码推断收件人的时区,也不会根据消息类别选择发送窗口。请求会按照常规的校验和投递流程继续处理,不受时间影响。接受请求仍然不保证投递成功。
scheduled_at 请求字段也不可用:提供该字段会返回 HTTP 422 SMSUnsupportedFeature。请在你自己的应用中调度 API 调用。发送该字段不会将消息放入等待队列。
如何在 Bird 中查找目的地的规则?
你可以在配置调度器之前查看国家政策和 SMS 目的地页面。
请求 GET /v1/country-policies/US/messaging-context?platform=sms 获取美国政策。将 US 替换为目的地的两位字母国家代码,即可查看其他市场。
响应的 platforms 数组包含 SMS 政策,包括:
has_quiet_hours,布尔值或null,表示是否记录了限制。quiet_hours_is_regulatory,布尔值或null,用于区分法规与平台政策。exempt_message_categories,一个数组,列出不受静默时段限制的消息类别。
缺失值并不意味着可以不受限制地发送。当记录缺少你所需的细节时,请查阅目的地的已发布指南和适用规则。
这些字段描述的是政策,不会在 Bird 的 SMS 发送端点中激活调度器。
我的应用应该如何调度消息?
暂存受管控的消息,直到该收件人的下一个允许发送时间。发送前重新检查。
在联系人资料中记录可靠的时区。仅凭电话号码的国家代码无法定位已搬迁或正在旅行的人。为未知时区选择明确的处理策略,而不是假设服务器时钟适用。
在发送时,再次检查同意状态。确认消息仍然有用。优惠可能在等待期间已过期。保留延迟消息的标识,以便调度器重启后不会重复发送。
对于紧急验证码,请在套用促销消息窗口之前检查适用的类别规则。将用户请求的验证码推迟到早上可能导致其失效。
回复和事务性消息是否豁免?
豁免取决于适用规则和消息的实际用途。
不要假设每条物流更新、提醒或验证码在所有地方都享有相同的豁免。在将某个类别排除出你的调度之前,请检查 exempt_message_categories 和目的地的底层规则。
Bird 的内置关键词确认遵循其关键词处理流程,不经过静默时段调度器。它们对 SMS 抑制的豁免允许发送退订确认消息。这与法律层面的时段豁免是不同的机制。STOP 关键词说明了该行为。
在服务消息中添加促销内容可能改变其用途。SMS 同意模型涵盖了相关的许可决策。
简而言之
使用规则指定的时钟。
基于收件人当地时间的限制以收件人所在地为准,因此你的服务器本地时间不够用。
Bird 不会根据静默时段自动调度。
SMS 端点不会根据时间段延迟发送,它会拒绝 scheduled_at。
国家政策字段描述了相关规则。
结合目的地的已发布指南,查阅 has_quiet_hours、quiet_hours_is_regulatory 和 exempt_message_categories。
检查每条消息的用途。
当适用规则对消息类型有区分时,促销活动和用户请求的验证码需要不同的处理方式。