结账时输入的电话号码可能仅用于物流更新。将该号码加入促销活动需要覆盖此类消息的许可。
我的项目需要什么级别的许可?
促销消息需要针对促销的许可。请求服务更新则涵盖该信息性用途。
CTIA 消息传送准则为美国商业短信设定了行业预期。附录 II 要求促销消息须获得书面许可。信息类消息需要明确许可。对客户主动发起的对话进行相关回复,在该准则下不需要额外许可。
添加优惠信息可能将提醒变为促销。CTIA 给出了以下示例:
Adding a call-to-action (e.g., a coupon code to an informational text) may place the message in the promotional category.
在收集许可之前先确定内容,使邀请涵盖你实际发送的消息。在遵循行业准则的同时,还需满足目的地的法律要求。明确书面同意解释了美国的法律定义。
邀请内容应告知对方哪些信息?
展示谁将发送消息、将发送什么内容,以及对方如何退订。
CTIA 第 5.1.1 节要求披露项目名称、发送方身份和号码、费用、退订说明、帮助详情和适用条款。将这些披露信息放在记录同意操作的旁边可见位置。关键字广告同样需要披露。
对于周期性消息,说明发送频率。发送包含退订和支持详情的注册确认消息。第 5.1.2.1 节描述了该确认流程。
让对方自己执行同意操作。不要预选同意选项或将其隐藏在无关条款中,因为两者都无法证明对方对你消息的知情选择。
应保留哪些证据?
保存同意时间、对方的身份和号码,以及对方同意时看到的邀请内容。
CTIA 第 5.1.2 节还要求记录收集方式、活动名称以及适用时的 IP 地址。保存邀请措辞和用于表示同意的操作。仅凭时间戳无法说明对方同意的是提醒还是促销。
如果你的项目要求双重订阅确认,请在将注册视为完成之前,让对方通过手机进行确认。SMS 同意模型解释了这一额外步骤。
如何在 Bird 中记录同意?
你通过 POST /v1/preferences 记录决定。支持性证据保留在你自己的系统中。
将 channel 设为 sms,将 handle 设为带国家代码的电话号码,例如 +15550001234。将 status 设为 granted 或 revoked。
consented_at记录对方同意的时间。要覆盖已存储的退订,需要更晚的时间戳。该值不能是未来时间。source标识表单、活动或导入批次。它接受 1 到 255 个字符,因此请使用指向你证据的简短引用。coverage接受non_transactional或all。默认值non_transactional将回执和验证码排除在该偏好的范围之外。sender_scope将声明限制为单个发送方。省略此字段可获得工作区内的渠道级覆盖。
Bird 会比较相同渠道、标识、发送方范围和主题下的声明。主题将消息归入同一订阅组。响应中的 topic_id 标识该组。null 值表示所有主题。
较早的声明会返回 applied: false,存留的声明位于 preference 中。检查该结果,以确保旧的导入不会看起来像是恢复了许可。
用户自己的退订比 API 断言具有更强的保护。你无法通过此 API 覆盖或删除它,即使时间戳更晚。偏好端点记录了写入行为。
START 回复是否会创建初始同意记录?
START 回复会解除发送方的屏蔽,但不能替代你的初始同意收集。
Bird 的 start 操作解除该屏蔽,然后发送已配置的确认消息。来自从未被屏蔽的人的 START 可以收到确认消息,但这并不能证明他们最初同意了什么。
confirm 操作识别双重订阅确认回复,它不发送任何响应。你的处理逻辑必须完成该流程。STOP 关键字解释了独立的关键字和屏蔽行为。
发送前应检查什么?
仅在邀请内容、同意证据和实际流程三者一致时才发送。
- 将许可与实际消息内容匹配。
- 应用目的地的同意模型。
- 保留邀请内容和同意时间,并检查 Bird 的偏好写入结果。
- 如果你的项目要求双重订阅确认,请完成确认交互。
简而言之
权限应与内容匹配。
提醒类消息的许可不会自动覆盖促销类消息。
将邀请内容与同意记录一起保存。
记录对方看到的内容以及同意的时间,以便你能证明其许可所涵盖的范围。
同意时间决定了适用哪条声明。
较早的偏好声明不能替换较新的声明。仅凭较晚的时间戳也不能覆盖用户自己的退订操作。
START 会解除屏蔽。
Bird 的关键字处理不能替代你的初始同意收集流程或双重订阅确认处理逻辑。