短信最佳实践 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

短信最佳实践

手机用户对于未经请求的短信的容忍度往往非常低。未经请求的短信活动的响应率将几乎始终较低,因此,您的相应投资回报将会较差。

此外,手机运营商会持续审核批量短信发件人。他们会从其确定发送未经请求的消息的数量中限制或阻止消息。

发送未经请求的内容也是一种违反 Amazon 可接受使用策略的行为。Amazon SNS 团队会定期审核 SMS 活动,而且会在出现您发送未经请求的消息的情况下限制或阻止您发送消息的能力。

最后,在许多国家、地区和司法管辖区中,对于发送未经请求的短信设有严重处罚。例如,在美国,电话消费者保护法案 (TCPA) 规定,消费者对于其收到的每条未经请求的消息都有权享有 500-1,500 美元的赔偿费用 (由发件人支付)。

本部分介绍了几个可帮助您提升客户参与度并避免代价高昂的处罚的最佳实践。但请注意,本节不包含法律建议。务必咨询律师来获取法律建议。

遵守法律、法规和运营商要求

如果您违反客户所在地的法律和法规,您可能面对重大罚款和处罚。因此,务必了解您开展业务的每个国家/地区内与短信收发相关的法律。

以下列表包含一些链接,这些链接指向适用于全球主要市场内的短信通信的关键法律。

  • 美国:1991 年《电话消费者保护法案》(简称 TCPA)适用于特定类型的短信。有关更多信息,请访问美国联邦通信委员会 (Federal Communications Commission) 网站上的规则和法规

  • 英国:2003 年《隐私与电子通信(EC 指令)条例》(简称 PECR)适用于特定类型的短信。有关更多信息,请访问英国信息委员会办公室的网站,查看什么是 PECR?

  • 欧盟:2002 年《隐私与电子通信条例》(有时候称为 ePrivacy 指令)适用于特定类型的短信。有关更多信息,请访问 Europa.eu 网站,查看该法律的完整文本

  • 加拿大:《打击 Internet 和无线垃圾邮件法案》(通常称为加拿大反垃圾邮件法律或 CASL)适用于特定类型的短信。有关更多信息,请访问加拿大国会 (Parliament of Canada) 网站,查看该法律的完整文本

  • 日本:《有关特定电子邮件传输规定的法案》适用于特定类型的短信。有关更多信息,请访问日本内务与通信省 (Japanese Ministry of Internal Affairs and Communications) 网站,查看日本的垃圾邮件应对措施

作为发件人,即使您的公司或部门并非位于这些国家/地区之一,这些法律也可能适用于您。此列表中的某些法律最初是为解决未经请求的电子邮件或电话呼叫而制定的,但它们已被解释或扩展为同样适用于短信。其他国家/地区可能有自己的与短信传输相关的法律。请咨询您的客户所在的每个国家/地区的律师以获得法律建议。

在许多国家/地区,本地运营商具有确定哪些类型的流量可通过其网络传输的最终权力。这意味着运营商可能会对 SMS 内容施加比当地法律最低要求更严格的限制。

获取权限

在您计划发送特定类型的消息时,切勿向未明确要求接收此类消息的收件人发送消息。不要共享选择加入名单,即使在同一家公司内的部门之间也是如此。

如果收件人可以使用在线表格进行注册以接收您的消息,请添加预防系统,防止自动化脚本在人员不知道的情况下进行订阅。您还应该限制用户在单个会话中可以提交某个电话号码的次数。

当您收到短信选择加入请求时,请向收件人发送消息,要求他们确认希望接收来自您的消息。请勿在收件人确认订阅之前向其发送任何其他消息。订阅确认消息可能类似于以下示例:

Text YES to join ExampleCorp alerts. 2 msgs/month. Msg & data rates may apply. Reply HELP for help, STOP to cancel.

维护包含每个选择加入请求和确认的日期、时间和来源的记录。这在运营商或监管机构请求它的情况下可能会有用,并且还可以帮助您执行客户列表的例行审核。

选择加入工作流程

在某些情况下(例如美国免费电话或短代码注册),移动运营商要求您提供整个选择加入工作流程的模型或屏幕截图。模型或屏幕截图必须与收件人将要完成的选择加入工作流程非常接近。

您的模型或屏幕截图应包括下面列出的所有必要披露信息,以保持最高的合规水平。

必要的披露信息
  • 对您将通过程序发送的消息使用场景的描述。

  • 陈述“可能会收取消息和数据费用”。

  • 说明收件人收到您的消息的频率。例如,定期消息发送程序可以说明“每周一条消息”。一次性密码或多重验证使用场景可以说明“消息频率会有变化”或“每次登录尝试一条消息”。

  • 指向您的条款和条件以及隐私策略文档的链接。

不合规的选择加入方法的常见拒绝原因
  • 提供的公司名称与模型或屏幕截图中提供的名称不相符。在选择加入工作流程描述中需要解释任何不明确的关系。

  • 似乎会向收件人发送消息,但事先并未征得明确同意。所有消息发送都必须征得明确同意。

  • 似乎需要接收短信才能注册服务。如果工作流程没有提供其他形式(例如,电子邮件或语音呼叫)作为选择加入消息的替代方法,则这不合规。

  • 关于选择加入的说明完全包含在服务条款中。披露内容应始终在选择加入时提交给接收人,而不是包含在关联的策略文档中。

  • 客户同意接收您发送的一种类型的消息,而您向他们发送了其他类型的文本消息。例如,他们同意接收一次性密码,但还会向其发送投票和调查消息。

  • 没有向收件人提供所需的披露信息(如上所列)。

以下示例符合移动运营商对多重验证使用场景的要求。

多重验证使用场景的模型

它包含最终的文本和图像,展示了完整的选择加入流程,并附有注释。在选择加入流程中,客户必须采取意图明确的操作来表示同意接收文本消息,且流程中包含所有必需的披露信息。

其他选择加入工作流程类型

在符合此处所述要求的前提下,移动运营商还会接受应用程序和网站之外的选择加入工作流程,例如口头或书面选择加入。合规的选择加入工作流程以及口头或书面脚本需要征求收件人的明确同意,允许接收特定的消息类型。这方面的例子包括客户支持座席使用的语音脚本,用来在记录到服务数据库之前征得同意,或者在宣传单上列出的电话号码。要提供这些选择加入工作流程类型的模型,您可以提供选择加入脚本、营销材料或收集号码的数据库的屏幕截图。如果选择加入的场景不明确或使用场景超过一定数量,则移动运营商可能会对这些使用场景有其他疑问。

不要发送到旧名单

人们经常更换电话号码。两年前已获取联系同意书的电话号码今天可能是其他人在使用。不要在新的消息发送程序中使用旧的电话号码列表;如果这样做,则可能会因为号码不再使用而导致一些消息失败,而另外一些人可能会因为不记得一开始同意过会选择退出。

审核客户列表

如果要发送周期性短信活动,请定期审核您的客户列表。审核您的客户列表可确保仅接收您的消息的客户是有兴趣接收这些消息的人员。

审核您的列表时,向每个选择加入的客户发送提醒他们已订阅的消息,并为他们提供有关取消订阅的信息。提醒消息可能类似于以下示例:

You're subscribed to ExampleCorp alerts. Msg & data rates may apply. Reply HELP for help, STOP to unsubscribe.

保留记录

保留显示每位客户何时请求从您那里接收短信以及您向每位客户发送哪个消息的记录。全球许多国家和地区要求短信发件人以易于检索的方式来维护这些记录。移动运营商还可能会随时向您请求提供此信息。您所必须提供的确切信息因国家或地区而异。有关记录保留要求的更多信息,请查看您的客户所在的每个国家或地区有关商业短信收发的法规。

有时,运营商或监管机构会要求我们提供客户选择接收您的消息的证据。在这种情况下,Amazon Web Services Support 会联系您,请您提供运营商或监管机构所要求的信息列表。如果您无法提供所需信息,则我们可能会暂停您发送更多短信的功能。

提供清晰、诚实、简洁的信息

SMS 是一种独特的媒介。每条消息 160 个字符的限制意味着您的消息必须简洁。您在其他通信渠道(例如电子邮件)中会使用的技巧可能不适用于短信渠道,甚至在与短信一起使用时可能显得不诚实或具有欺骗性。如果消息中的内容与最佳实践不一致,收件人可能会忽略您的消息;在最糟糕的情况下,移动运营商可能会将您的消息标识为垃圾消息,以后会屏蔽来自您电话号码的消息。

此部分为创建有效的短信正文提供了一些技巧和观点。

将自己标识为发件人

收件人应该能够立即分辨出是您发布的消息。遵循此最佳实践的发件人会在每条消息的开头添加一个识别名称(“计划名称”)。

请勿执行以下操作:

Your account has been accessed from a new device. Reply Y to confirm.

试试这个:

ExampleCorp Financial Alerts: You have logged in to your account from a new device. Reply Y to confirm, or STOP to opt-out.

不要试图让您的信息看起来像个人对个人的消息

一些营销人员倾向于让他们的短信看起来像来自个人,从而为他们的短信增添个性化风格。但是,这种技巧可能会让您的消息看起来像是网络钓鱼尝试。

请勿执行以下操作:

Hi, this is Jane. Did you know that you can save up to 50% at Example.com? Click here for more info: https://www.example.com.

试试这个:

ExampleCorp Offers: Save 25-50% on sale items at Example.com. Click here to browse the sale: https://www.example.com. Text STOP to opt-out.

在涉及到金钱时请谨慎

诈骗者经常会利用人们省钱和获利的渴望。不要提供好得难以置信的优惠。不要利用金钱的诱惑来骗人。不要使用货币符号来指示金钱。

请勿执行以下操作:

Save big $$$ on your next car repair by going to https://www.example.com.

试试这个:

ExampleCorp Offers: Your ExampleCorp insurance policy gets you discounts at 2300+ repair shops nationwide. More info at https://www.example.com. Text STOP to opt-out.

仅使用必要的字符

品牌通常倾向于在消息中使用 ™ 或 ® 等商标符号来保护自己的商标。但是,在 160 个字符的短信的标准字符集(称为 GSM 字母)中,不包括这些符号。当您发送某条包含这些字符的消息时,会使用不同的字符编码系统自动发送您的消息,而这一系统的每段消息仅支持 70 个字符。因此,您的消息可能会分为几段。由于您需要为发送的每段消息付费,因此发送整条消息的费用可能会超出您的预期。此外,收件人可能会收到您发来的多条连续消息,而不是一条消息。有关短信字符编码的更多信息,请参阅Amazon SNS 中的 SMS 字符限制

请勿执行以下操作:

ExampleCorp Alerts: Save 20% when you buy a new ExampleCorp Widget® at example.com and use the promo code WIDGET.

试试这个:

ExampleCorp Alerts: Save 20% when you buy a new ExampleCorp Widget(R) at example.com and use the promo code WIDGET.

注意

前面两个示例几乎相同,但第一个示例包含注册商标符号 (®),它不是 GSM 字母表的一部分。因此,第一个示例作为两段消息发送,而第二个示例作为一段消息发送。

如果您的消息包含链接,请仔细检查链接以确保链接可以正常工作。在公司网络之外的设备上测试您的链接,确保能够正确解析链接。由于短信的长度限制为 160 个字符,因此很长的 URL 可能会拆分为多条消息。您应该使用重定向域来提供简短的 URL。但是,您不应使用免费的链接缩短服务(如 tinyurl.com 或 bitly.com),因为运营商倾向于过滤掉包含这些域中链接的消息。不过,只要链接指向专供贵公司或机构使用的域,您就可以使用付费的链接缩短服务。

请勿执行以下操作:

Go to https://tinyurl.com/4585y8mr today for a special offer!

试试这个:

ExampleCorp Offers: Today only, get an exclusive deal on an ExampleCorp Widget. See https://a.co/cFKmaRG for more info. Text STOP to opt-out.

限制使用的缩略语数量

SMS 渠道的 160 个字符限制使一些发件人认为,他们需要在消息中大量使用缩写。但是,对许多读者来说,过度使用缩写会显得不专业,并可能导致一些用户将您的消息举报为垃圾消息。您完全可以编写流畅的消息而不过多地使用缩写。

请勿执行以下操作:

Get a gr8 deal on ExampleCorp widgets when u buy a 4-pack 2day.

试试这个:

ExampleCorp Alerts: Today only—an exclusive deal on ExampleCorp Widgets at example.com. Text STOP to opt-out.

适当地响应

当收件人回复您的消息时,请确保您使用有用的信息进行响应。例如,当客户响应包含关键字“HELP”的其中一个消息时,请向他们发送有关其订阅的程序、您每月将发送的消息数量以及他们可与您取得联系以获取更多信息的方式的信息。HELP 响应可能类似于以下示例:

HELP: ExampleCorp alerts: email help@example.com or call 425-555-0199. 2 msgs/month. Msg & data rates may apply. Reply STOP to cancel.

当客户使用关键字“STOP”回复时,让他们了解到他们将不会接收任何消息。STOP 响应可能类似于以下示例:

You're unsubscribed from ExampleCorp alerts. No more messages will be sent. Reply HELP, email help@example.com, or call 425-555-0199 for more info.

基于参与度调整您的发送

您客户的优先级可能随着时间推移而发生变化。如果客户发现您的消息不再有用,则他们可能会选择完全不再使用您的消息,或者甚至将您的消息报告为未经请求的消息。出于这些原因,您必须基于客户参与度调整您的发送活动。

对于与您的消息互动很少的客户,您应调整相应的消息发送频率。例如,如果向参与的客户每周发送消息,您可以为参与度较低的客户创建单独的每月摘要文件。

最后,从您的客户列表中删除完全未参与的客户。此步骤可防止客户对您的消息感到沮丧。这还可为您节省资金并且帮助保护您作为发件人的声誉。

在适当时间发送

仅在正常白天工作时间内发送消息。如果您在晚餐时间或午夜发送消息,则很可能您的客户将从您的列表中取消订阅以避免被打扰。此外,在您的客户无法立即响应短信时进行发送是没有意义的。

如果您将活动或旅程发送给非常多的受众,请仔细检查您的发送号码的吞吐速率。将收件人数量除以您的吞吐速率,确定向所有收件人发送消息需要多长时间。

避免跨通道疲劳

在您的活动中,如果使用多个信道(如电子邮件、SMS 和推送消息),请勿在每个渠道中发送相同消息。当时在多个渠道中同时发送相同消息时,您的客户可能会认为您的发送行为很烦人而不是有用。

使用专用短代码

如果使用短代码,请为每个品牌和每种类型的消息维护单独的短代码。例如,如果您的公司有两个品牌,请为每个品牌使用单独的短代码。同样,如果您发送事务和促销消息,请为每种类型的消息使用单独的短代码。要了解有关请求短代码的更多信息,请参阅请求专用的短代码以使用 Amazon SNS 进行 SMS 消息收发

验证您的目标电话号码

当您通过 Amazon SNS 发送 SMS 消息时,您需要为发送的每段消息付费。您为每段消息支付的价格因收件人所在的国家或地区而异。有关 SMS 定价的更多信息,请参阅 Amazon SNS 定价

当 Amazon SNS 接受发送 SMS 消息的请求时(作为调用 SendMessages API 的结果,或者由于启动市场活动或历程),您需要为发送该消息付费。即使预期的收件人实际上没有收到消息,您也需要支付费用。例如,如果收件人的电话号码已停用,或者您向其发送消息的号码不是有效的手机号码,但仍会向您收取发送消息的费用。

Amazon SNS 接受发送 SMS 消息的有效请求并尝试发送这些消息。因此,您应该验证向其发送消息的电话号码是否为有效的手机号码。您可以使用 Amazon SNS 电话号码验证服务来确定电话号码是否有效以及这是什么类型的号码(例如手机、固定电话或 VoIP)。有关更多信息,请参阅《Amazon Pinpoint 开发人员指南》中的在 Amazon Pinpoint 中验证电话号码

设计时要考虑冗余

对于任务关键型消息传送程序,我们建议您在多个 Amazon Web Services 区域中配置 Amazon SNS。Amazon SNS 可在多个 Amazon Web Services 区域中使用。有关已推出 Amazon SNS 的区域的完整列表,请参阅《Amazon Web Services 一般参考》https://docs.amazonaws.cn/general/latest/gr/pinpoint.html

您用于发送 SMS 的电话号码(包括短代码、长代码、免费电话号码和 10DLC 号码)无法跨 Amazon Web Services 区域进行复制。因此,要在多个区域中使用 Amazon SNS,您必须在要使用 Amazon SNS 的每个区域中申请单独的电话号码。例如,如果您使用短代码向美国的收件人发送短信,则需要在您计划使用的每个 Amazon Web Services 区域中申请单独的短代码。

在某些国家/地区,您还可以使用多种类型的电话号码来增加冗余。例如,在美国,您可以请求短代码、10DLC 号码和免费电话号码。这些电话号码中的每一种都采用不同的途径向收件人发消息。不论是在相同的 Amazon Web Services 区域中,还是跨多个 Amazon Web Services 区域,使用多种电话号码类型可以提供额外的冗余层,有助于提高弹性。

SMS 限额和限制

有关 SMS 限额和限制,请参阅《Amazon Pinpoint 用户指南》中的 Amazon Pinpoint 中的 SMS 限额和限制

管理退出关键词

SMS 收件人可以使用他们的设备通过回复某关键字来选择不接收消息。有关更多信息,请参阅退出接收 SMS 消息

CreatePool

使用 CreatePool API 操作创建新池并将指定的来源身份关联到该池。有关更多信息,请参阅《Amazon Pinpoint SMS 和语音 API》中的 CreatePool

PutKeyword

使用 PutKeyword API 操作创建或更新发起电话号码或池的关键字配置。有关更多信息,请参阅《Amazon Pinpoint SMS 和语音 API》中的 PutKeyword

管理号码设置

您可以使用 SMS and voice settings(SMS 和语音设置)页面的 Number settings(号码设置)部分中的选项,来管理您向 Amazon Support 请求并分配给您的账户的专用短代码和长代码的设置。有关更多信息,请参阅《Amazon Pinpoint 用户指南》中的管理号码设置

Amazon SNS 中的 SMS 字符限制

一条短信最多能包含 140 字节的信息。您在一条短信中可以包含的字符数取决于消息中所包含字符的类型。

如果您的消息仅使用 GSM 03.38 字符集中的字符(也称为 GSM 7 位字母),则它最多能包含 160 个字符。如果您的消息包含 GSM 03.38 字符集以外的任何字符,则它最多可以有 70 个字符。在发送 SMS 消息时,Amazon SNS 会自动确定要使用的最有效编码。

当消息包含的字符数超过最大字符数时,消息将拆分为多个部分。将消息拆分为多个部分时,每个部分都包含有关其前面的消息部分的其他信息。当接收人的设备接收以这种方式分隔的消息部分时,它使用此附加信息来确保所有消息部分都以正确的顺序显示。根据接收人的移动运营商和设备,多条消息可能会显示为单条消息或由单独消息组成的序列。因此,每个消息部分中的字符数减少至 153 个(对于只包含 GSM 03.38 字符的消息)或 67 个(对于包含其他字符的消息)。您可以通过使用短信长度计算器工具来估算消息包含的消息部分数量,其中一些工具是在线提供的。任何消息支持的最大大小为 1,600 个 GSM 字符或 630 个非 GSM 字符。有关吞吐量和消息大小的更多信息,请参阅《Amazon Pinpoint 用户指南》中的 Amazon Pinpoint 中的 SMS 字符数限制

要查看您发送的每条消息的消息部分的数量,您应首先启用事件流设置。执行此操作时,Amazon SNS 将在消息传递到接收人的移动提供商时生成一个 _SMS.SUCCESS 事件。_SMS.SUCCESS 事件记录包含名为 attributes.number_of_message_parts 的属性。此属性指定消息包含的消息部分的数量。

重要

当您发送包含多个消息部分的消息时,您需要针对消息中包含的这些数量的消息部分付费。

GSM 03.38 字符集

下表列出了 GSM 03.38 字符集中所存在的所有字符。如果您所发送的消息只包含下表中显示的字符,那么该消息最多可以包含 160 个字符。

GSM 03.38 标准字符
A B C D E F G H I J K L M
O P Q R S T U V W X Y Z
a b c d e f g h i j k l m
n o p q r s t u v w x y z
à Å å Ä ä Ç É é è ì Ñ ñ ò
Ø ø Ö ö ù Ü ü Æ æ ß 0 1 2
3 4 5 6 7 8 9 & * @ : , ¤
$ = ! > # - ¡ ¿ ( < % . +
£ ? " ) § ; ' / _ ¥ Δ Φ Γ
Λ Ω Π Ψ Σ Θ Ξ

除上表中所示符号以外,GSM 03.38 字符集还包含其他几个符号。但是,这些字符中的每个字符都会算作两个字符,因为这些字符中还包含一个看不见的转义字符:

  • ^

  • {

  • }

  • \

  • [

  • ]

  • ~

  • |

最后,GSM 03.38 字符集还包含以下非打印字符:

  • 空格字符。

  • 换行控制,它表示一行文本的结束和另一行文本的开始。

  • 回车控制,它会移动到一行文本的开头(通常跟在换行符后面)。

  • 转义控制,它会自动添加到前一列表中的字符中。

示例消息

本部分包含几个示例短信。对于每个示例,此部分显示消息的字符总数以及消息部分的数量。

示例 1:只包含 GSM 03.38 字母表中的字符的长消息

以下消息仅包含 GSM 03.38 字母表中的字符。

Hello Carlos. Your Example Corp. bill of $100 is now available. Autopay is scheduled for next Thursday, April 9. To view the details of your bill, go to https://example.com/bill1.

上述消息包含 180 个字符,因此必须将其拆分为多个消息部分。将消息拆分为多个消息部分时,每个部分可以包含 153 个 GSM 03.38 字符。因此,此消息作为 2 个消息部分发送。

示例 2:包含多字节字符的消息

以下消息包含多个中文字符,所有这些字符都在 GSM 03.38 字母表之外。

亚马逊公司是一家总部位于美国西雅图的跨国电子商务企业,业务起始于线上书店,不久之后商品走向多元化。杰夫·贝佐斯于1994年7月创建了这家公司。

上述消息包含 71 个字符。但是,由于消息中的几乎所有字符都在 GSM 03.38 字母表之外,因此它作为两个消息部分发送。每个消息部分最多可包含 67 个字符。

示例 3:包含单个非 GSM 字符的消息

以下消息包含不属于 GSM 03.38 字母表的单个字符。在此示例中,该字符是一个右单引号 (’),它是与常规撇号 (') 不同的字符。字处理应用程序(如 Microsoft Word)通常会自动用右单引号替换撇号。如果您在 Microsoft Word 中草拟 SMS 消息并将其粘贴到 Amazon SNS 中,则应删除这些特殊字符并用撇号替换它们。

John: Your appointment with Dr. Salazar’s office is scheduled for next Thursday at 4:30pm. Reply YES to confirm, NO to reschedule.

上述消息包含 130 个字符。但是,由于它包含右单引号字符,而此字符不是 GSM 03.38 字母表的一部分,因此它作为两个消息部分发送。

如果您将此消息中的右单引号字符替换为撇号(它是 GSM 03.38 字母表的一部分),则该消息将作为单个消息部分发送。