# 在 Pushwoosh 中注册设备并与平台同步数据

为了通过 Pushwoosh 有效地定位和吸引用户，确保用户设备已正确注册并且您的数据已同步至关重要。根据您的具体需求，有多种方法可以在 Pushwoosh 中注册设备和同步数据。

## Pushwoosh SDK

### 移动端

对于移动应用，推荐使用 Pushwoosh SDK 集成，以实现应用、Pushwoosh 系统以及客户可能用于特定数据管道或工作流的第三方系统之间的无缝设备注册和数据同步。

通过集成 SDK，您可以自动化注册设备和处理其推送令牌的过程。SDK 内部会调用 `registerDevice` API 方法，确保每台设备都与 Pushwoosh 注册和同步，无需任何手动干预。

此外，Pushwoosh SDK 还允许注册用于 SMS 和 WhatsApp 通知的电话号码。您可以使用以下方法：

#### 注册 SMS 号码

##### iOS

```
- (void)registerSmsNumber:(NSString * _Nonnull)number;
```

**示例**

```
Pushwoosh.sharedInstance().registerSmsNumber(@"+0000000000");
```

将 `+0000000000` 替换为实际的电话号码，格式为 **E.164 格式**（包括“+”号和国家代码）。

##### Android

```
Pushwoosh.getInstance().registerSmsNumber(String number);
```

**示例**

```
Pushwoosh.getInstance().registerSmsNumber("+0000000000");
```

将 `+0000000000` 替换为用户的实际电话号码，格式为 E.164，包括“+”和国家代码。

#### 注册 WhatsApp 号码

##### iOS

```
- (void)registerWhatsappNumber:(NSString * _Nonnull)number;
```

**示例**

```
Pushwoosh.sharedInstance().registerWhatsappNumber(@"+0000000000");
```

将 `+0000000000` 替换为实际的电话号码，格式为 **E.164 格式**（包括“+”号和国家代码）。

##### Android

要在 Android 上为 WhatsApp 注册用户的电话号码，请使用以下方法：

```
Pushwoosh.getInstance().registerWhatsappNumber(String number);
```

**示例**

```
Pushwoosh.getInstance().registerWhatsappNumber("+0000000000");
```

将 `+0000000000` 替换为用户的实际电话号码，格式为 E.164，包括“+”和国家代码。

### Web 端

要为 Web 推送注册设备，请使用 [Web Push SDK](/zh/developer/pushwoosh-sdk/web-push-notifications/web-push-sdk-30/)。

<Aside type="tip">
要允许您的网站访问者选择接收推送通知，请在您的网站上设置自定义或默认的 [订阅提示](/zh/developer/guides/messaging-channels/subscription-prompt/)。此提示会触发浏览器的原生订阅请求，用户可以在其中选择为您的网站启用或阻止 Web 推送通知。
</Aside>
<video src="/start-with-your-project-subscribe-users-1.webm" title="Web 推送订阅提示示例，显示浏览器通知权限请求" autoplay loop muted playsinline />

[了解更多关于 Pushwoosh SDK 的信息](/zh/developer/pushwoosh-sdk/pushwoosh-sdk-overview)

## Pushwoosh API

此外，您还可以使用 **Pushwoosh API** 来注册设备和同步数据。该 API 为更高级的场景提供了充分的灵活性。

### 移动端

要注册移动设备，请使用 [`registerDevice`](/zh/developer/api-reference/device-api/#registerdevice) API 方法。

### 电子邮件

Pushwoosh 提供了内置的订阅表单，您可以将其嵌入到您的网站中以收集电子邮件注册。了解如何[创建和嵌入表单](/zh/product/audience-data-and-segmentation/subscription-forms/create-subscription-forms/#how-to-build-a-form)以及[自定义小部件](/zh/product/audience-data-and-segmentation/subscription-forms/customize-widget/#customize-colors)。

收集电子邮件后，使用 [`registerEmail`](/zh/developer/api-reference/email-api#registeremail) API 方法注册电子邮件设备。或者，您也可以使用 [`registerDevice`](/zh/developer/api-reference/device-api#registerdevice)。

<Aside type="note">
请注意，[`registerEmailUser`](/zh/developer/api-reference/email-api#registeremailuser) 请求不会在您的用户群中注册电子邮件地址；它只应用于将 User ID 分配给已通过 `registerEmail` 调用注册的电子邮件。
</Aside>

要将您的应用用户或网站访问者与他们的电子邮件地址关联起来，请使用 [User ID](/zh/developer/pushwoosh-knowledge-hub/users-userids/users-userids)。这使您能够构建跨渠道的 Customer Journey，并根据用户在您的应用或网站上的行为发送电子邮件。User ID 还允许您在 User Explorer 中查看用户的消息和事件历史记录。

**1. 获取 User ID。**

为您的 Pushwoosh 项目注册的每台设备都有其 User ID；默认情况下，它等于设备硬件 ID (HWID)，并通过 [`registerDevice`](/zh/developer/api-reference/device-api#registerdevice) API 请求检索。

要设置自定义 User ID，请调用 [`registerUser`](/zh/developer/api-reference/user-centric-api#registeruser) 方法。

**2. 将 User ID 分配给电子邮件地址。**

使用 [`registerEmail`](/zh/developer/api-reference/email-api#registeremail) 或 [`registerEmailUser`](/zh/developer/api-reference/email-api#registeremailuser) API 方法将 User ID 与电子邮件地址关联。

[了解更多关于 User ID 的信息](/zh/developer/pushwoosh-knowledge-hub/users-userids/users-userids)

### SMS

要在 Pushwoosh 中注册 SMS 设备，您可以使用 [`registerDevice`](/zh/developer/api-reference/device-api#registerdevice) API 方法或 [`createSMSMessage`](/zh/developer/api-reference/sms#createsmsmessage) API 方法。使用后者时，请确保将 `use_auto_registration` 参数设置为 `true`，以便自动将电话号码注册为 SMS 设备。[了解更多](/zh/developer/api-reference/sms#createsmsmessage)

### WhatsApp

要在 Pushwoosh 中注册 WhatsApp 设备，您可以使用 [`registerDevice`](/zh/developer/api-reference/device-api#registerdevice) API 方法或 [`createWhatsAppMessage`](/zh/developer/api-reference/whatsapp) API 方法。使用后者时，请确保将 `use_auto_registration` 参数设置为 `true`，以便自动将电话号码注册为 WhatsApp 设备。

## 导入您现有的用户群

如果您正在处理大量的预先存在的数据，您可以将这些数据导入到 Pushwoosh 中。

### 移动端

要迁移您的移动推送订阅用户群，请通过[联系我们表单](https://help.pushwoosh.com/hc/en-us/requests/new)与我们联系，并提供您的用户群样本。我们的团队将审查数据格式并评估迁移是否可行。

### Web 端

由于技术限制，无法导入 Web 用户。不同的推送提供商使用不同的有效载荷格式和平台配置，这使得导入 Web 用户无效。因此，导入的用户群要么会失效，要么会收到不正确或空白的内容。

但是，已经授权为您的网站接收推送通知的 Web 用户可以重新订阅。[了解更多](https://help.pushwoosh.com/hc/en-us/articles/360018326111-Migrate-your-userbase-to-Pushwoosh/?utm_content=docs&utm_term=post&utm_campaign=migrate-your-userbase-to-pushwoosh)

### 电子邮件

要[导入您的电子邮件订阅者数据库](/zh/product/messaging-channels/emails/get-email-subscribers/#import-email-list)，请上传一个包含电子邮件地址的 **.csv** 文件。导入的电子邮件将在电子邮件平台上注册为订阅者。您还可以为每个电子邮件地址提交额外的数据，例如收件人的姓名、性别或位置，以便更好地细分和个性化您的电子邮件通信。

[导入电子邮件](https://app.pushwoosh.com/applications/AEE06-2F522/import-csv/import-emails)

### SMS

导入一个包含 SMS 订阅者电话号码的 **.csv** 文件。您可以提供额外的数据，例如收件人的姓名、性别或位置，以进一步细分和个性化您的 SMS 通信。

[导入 SMS 联系人](https://app.pushwoosh.com/applications/AEE06-2F522/import-csv/import-sms)

### WhatsApp

要导入您的 WhatsApp 联系人，请上传一个包含 WhatsApp 联系人的 .csv 文件。您还可以提供额外的信息，例如收件人的姓名、性别或位置，以自定义您的 WhatsApp 消息。

[导入 WhatsApp 联系人](https://app.pushwoosh.com/applications/AEE06-2F522/import-csv/import-whatsapp)

### Viber

要导入您的 Viber 联系人，请上传一个包含 Viber 联系人的 .csv 文件。您还可以提供额外的信息，例如收件人的姓名、性别或位置，以自定义您的 Viber 消息。

[导入 Viber 联系人](https://app.pushwoosh.com/applications/AEE06-2F522/import-csv/import-viber)

## 使用第三方集成传输数据

除了 SDK 和 API，Pushwoosh 还提供多种第三方集成，帮助您从其他平台同步和传输数据，从而更轻松地跨多个系统管理用户和数据。

[探索所有可用的集成](/zh/product/integrations/)