> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SMS 选择加入和收集

> 为推广、事务性和 OTP 计划收集有效的 SMS 同意。涵盖选择加入收集方法、披露要求、受众验证以及电话号码格式要求。

收集有效的同意是合规 SMS 计划的基础。您所需的方法和披露用语取决于您正在运行的计划类型：推广、事务性或 OTP。

***

## 推广选择加入

推广消息要求最高标准的同意。订阅者必须采取明确的行动来选择加入。

### 选择加入收集方法

#### Web 注册表单

您网站、落地页或弹窗上的表单，订阅者在其中输入电话号码。要求：

* SMS 选择加入复选框**默认必须未勾选**。
* 披露用语必须出现在**同一表单上**，位于提交按钮上方，不能链接到别处或被隐藏。
* SMS 同意必须与电子邮件同意**分开收集**。

#### 短信订阅关键词

订阅者向您的发送者号码发送一个关键词以选择加入（例如，"Text DISCOUNT to 58120"）。您定义关键词以及回复的确认消息。

<Tip>
  在 iOS 26 中，来自未保存为联系人的号码的消息会被过滤到一个单独的"Unknown Senders"文件夹中。由于短信订阅是由订阅者发送第一条消息，您的号码会在您回复之前出现在他们的消息历史记录中，从而使其成为已知发件人。这是 iOS 收件箱可见性的最佳收集方法之一。
</Tip>

#### 二维码

二维码会打开订阅者的 SMS 应用程序，并预填您的发送者号码和关键词。非常适合店内标牌、产品包装、收据和活动。

要创建二维码，请使用支持 `sms:` URL 格式的 SMS 二维码生成器（例如 [QR Code Dynamic](https://qrcodedynamic.com/qr/sms) 或 [QRKIT](https://useqrkit.com/sms-qr-code)）。底层 URL 格式为 `sms:+[phone_number]?body=KEYWORD`。对于 RCS 代理，请使用 `sms:+[phone_number]?service_id=[your_agent_id]%40rbm.goog&body=MESSAGE`。您可以在 **Settings > Senders** 中找到您的电话号码和代理 ID。

无论您在何处分享二维码，都应在同一界面上包含披露用语：计划描述、消息频率、"Msg & data rates may apply" 以及退出说明。

<Tip>
  与短信订阅一样，二维码会在您回复之前将您的号码确立为已知发件人，从而为它们带来同样的 iOS 26 收件箱可见性优势。
</Tip>

#### 结账和销售点

在购买的那一刻收集选择加入。选择加入必须是一个单独的、未勾选的复选框，并且不能被设定为订单确认或配送更新的必需条件。

#### 纸质注册表单

在零售点、活动或服务台用打印的表单收集电话号码。包含数字选择加入所需的相同披露用语。通过 CSV 或 API 导入这些订阅者。请参阅[导入订阅者](./import)。

#### 电子邮件

在现有电子邮件营销活动中的选择加入提示，要求订阅者同时加入您的 SMS 列表。拥有电子邮件地址并不意味着同意接收 SMS。订阅者必须通过单独的行动主动选择加入。

有关代码示例，请参阅 GitHub 上的 [OneSignal 注册表单示例](https://github.com/OneSignalDevelopers/signup-form-examples)和[电子邮件与 SMS 收集示例](https://github.com/OneSignalDevelopers/email-sms-collection-sample)。

### 所需披露用语

每个推广选择加入披露必须涵盖：

* 您的品牌名称
* 订阅者将收到周期性的自动**营销**消息
* 消息频率（大致）
* "Msg & data rates may apply"
* 如何退出（STOP）
* 指向您的服务条款和隐私政策的链接
* 同意不是购买条件的声明

<Warning>
  计划描述必须\*\*明确说明消息用于营销目的。\*\*像"updates"或"information"这样含糊的用语是不够的。预先勾选的复选框在任何地方都不合规。
</Warning>

***

## 事务性选择加入

事务性消息的同意门槛低于推广消息。用户在包含披露用语的表单中输入电话号码即构成充分的选择加入。无需单独的复选框。

披露必须直接出现在电话号码字段上或其附近。它不能位于单独的页面上或被隐藏在服务条款中。

### 按用例划分的常见收集点

| 用例            | 收集位置          |
| ------------- | ------------- |
| 订单确认和配送更新     | 结账，电话号码字段附近   |
| 账户通知（安全警报、账单） | 账户创建或注册表单     |
| 预约提醒          | 预订或排程表单       |
| 引导流程          | 账户创建或资料设置     |
| 通知偏好          | 应用内或 Web 偏好页面 |

### 所需披露用语

每个事务性选择加入披露必须包含：

* 您的**品牌名称**
* 用户将收到的**具体消息类型**（例如，"order confirmation and shipping update text messages"，而不仅仅是"messages"或"updates"）
* **"Msg & data rates may apply"**
* 如何**退出**（例如，"Reply STOP to opt out"）

<Warning>
  \*\*仅有电话号码并不构成同意。\*\*如果您的表单收集了电话号码但没有披露文本，则您没有发送短信的同意。

  \*\*同意范围限定于所述目的。\*\*如果用户在结账时同意接收配送更新，这并不涵盖从您业务的其他部分向他们发送预约提醒。
</Warning>

***

## OTP 选择加入

一次性密码消息的同意遵循与事务性消息相同的标准。用户在包含披露用语的表单中输入电话号码即构成充分。

每个 OTP 选择加入披露必须包含：

* 您的**品牌名称**
* 用户将收到的**具体消息类型**（例如，"verification codes and security alerts"）
* **"Msg & data rates may apply"**
* 如何**退出**（例如，"Reply STOP to opt out"）

***

## 受众验证

干净的订阅者列表可以提高送达率、降低成本并保持您的计划合规。

### 使用 Lookup 验证电话号码

在将号码添加到您的订阅者列表之前，使用 OneSignal 的 Lookup 进行验证。Lookup 会检查电话号码是否有效、活跃且为移动号码，在号码收到消息之前过滤掉固定电话、VoIP 号码、已断开的线路和输入错误的号码。

在收集点（例如，在表单提交时）运行 Lookup，或作为对现有订阅者的批量操作运行。

### 仅收集您可发送的地区的号码

确保您仅在您拥有针对该地区已批准发送者资源的发送者的地理位置收集电话号码。如果您没有针对某个国家/地区已批准发送者资源的发送者，发送到该国家/地区号码的消息将会失败。

### 使用一次性密码验证所有权

Lookup 确认号码有效，但它不确认注册的人实际拥有该号码。要弥补这一差距，请在订阅者输入电话号码后立即发送一次性密码。请参阅[一次性密码](./sms-verify)，了解如何使用 OneSignal Verify 或您自己的后端设置 OTP。

### 以 E.164 格式收集号码

电话号码应以 E.164 格式存储：国家/地区代码后跟订阅者号码，不含空格、破折号或括号（例如，`+14155551234`）。这是运营商和消息平台所期望的格式。

如果您的注册表单接受自由文本电话输入，请在保存前将号码验证并规范化为 E.164 格式。OneSignal 的 API 和 CSV 导入都期望使用 E.164 格式。

***

## 使用联系人卡片为您的发送者打造品牌

联系人卡片（vCard）让订阅者可以将您的企业保存为手机上的联系人。一旦保存，您的品牌名称和徽标将取代未知的电话号码显示出来。这可以提高可见性、减少消息被忽略的几率，并帮助您避免进入 iOS 的"Unknown Senders"收件箱。

您通过将 `.vcf` 文件作为 MMS 消息发送来递送联系人卡片。

### 创建您的 vCard 文件

使用您的企业联系信息创建一个 `.vcf` 文件。您可以使用在线 vCard 生成器或在文本编辑器中编写。其格式为纯文本：

```
BEGIN:VCARD
VERSION:3.0
FN:Your Business Name
ORG:Your Business Name
TEL;TYPE=CELL:+15551234567
END:VCARD
```

使用与您的 SMS 发送者身份相同的电话号码。您可以选择性地包含一个带有您品牌徽标的 `PHOTO` 属性，使其与联系人名称一起显示。

### 在公共 URL 托管文件

`.vcf` 文件必须可以通过直接、公开可访问的 URL 访问，而不是下载页面或预览。将其托管在您的 CDN、Web 服务器或云存储（AWS S3、Google Cloud Storage）上，并启用公共读取访问。

### 发送联系人卡片

<Steps>
  <Step title="创建一条新的 SMS 消息">
    在 OneSignal 仪表板中，创建一条新的 SMS 消息。
  </Step>

  <Step title="附加 vCard URL">
    在 **Media URL** 字段中，粘贴指向您托管的 `.vcf` 文件的公共 URL。
  </Step>

  <Step title="添加消息正文">
    鼓励订阅者保存您的联系人，例如：*"Save our contact so you always know it's us! Tap the attachment to add us to your contacts."*
  </Step>

  <Step title="作为欢迎流程的一部分发送">
    在新订阅者选择加入时发送，这样您的号码在未来任何消息到达之前就能被识别。
  </Step>
</Steps>

<Note>
  发送联系人卡片使用媒体 URL 字段，这意味着消息将作为 MMS 发送，并按 MMS 费率收费。
</Note>

***

## 常见问题

### 推广同意和事务性同意有什么区别？

推广消息需要明确的书面同意，即一个明确的行动，例如勾选一个未勾选的框或发送关键词短信。事务性消息的门槛较低：用户在可见披露用语的表单中输入电话号码即构成充分。披露必须存在，并明确说明他们将收到的消息类型。

### 所有推广计划都需要双重选择加入吗？

在美国，购物车放弃计划需要双重选择加入。对于其他推广计划，它是可选的，但强烈推荐——它可以减少垃圾邮件投诉、提高列表质量，并提供更强的同意记录。

### 我可以在同一表单上收集 SMS 和电子邮件同意吗？

您可以使用同一表单，但您必须分别收集每个渠道的同意。将 SMS 同意与电子邮件同意捆绑在一起（例如，两者共用一个复选框）对于 SMS 来说是不合规的。

### 我可以从另一个提供商导入订阅者吗？

可以，前提是他们已经提供了符合您正在运行的计划类型要求的有效同意。请参阅[导入订阅者](./import)，了解如何通过 CSV 或 API 转移现有订阅者。

### 什么是 E.164 格式？

E.164 是国际标准电话号码格式：一个加号、国家/地区代码和订阅者号码，不含空格或标点符号（例如，美国号码为 `+14155551234`）。OneSignal 的 API 和 CSV 导入要求号码采用此格式。

### 为什么我应该在添加订阅者之前使用 Lookup？

向无效、固定电话或已断开的号码发送消息会浪费支出，并可能损害您在运营商处的发件人声誉。Lookup 会在这些号码到达您的列表之前将其过滤掉，从而提高送达率并降低成本。

***

## 相关页面

<Columns cols={2}>
  <Card title="同意关键词管理" icon="shield" href="./sms-consent-keyword-management">
    在订阅者选择加入后管理 STOP、HELP、START 和自定义退出关键词。
  </Card>

  <Card title="监管合规" icon="scale" href="./sms-regulatory-compliance">
    运营商规则、安静时段、禁止内容以及更广泛的监管框架。
  </Card>

  <Card title="一次性密码" icon="lock" href="./sms-verify">
    使用 OneSignal Verify 或您自己的后端设置 OTP 以验证号码所有权。
  </Card>

  <Card title="推广消息" icon="tag" href="./sms-promotional-messaging">
    推广专用模式：双重选择加入设置、偏好中心和发送指南。
  </Card>
</Columns>
