# 设备类型说明

在 Pushwoosh 中注册的设备有三种类型的记录：

*   [设备总数](#total-devices)
*   [启用推送的设备](#push-enabled-devices)
*   [启用推送提醒的设备](#push-alerts-enabled-devices)

## 设备总数

**设备总数** 显示在您的 Pushwoosh 账户中——位于 Control Panel 左上角的右侧数字。

**设备总数** 包括**所有在 Pushwoosh 注册**并且**在过去 90 天内活跃**的设备。它们可能有也可能没有推送令牌 (push token)。没有推送令牌的设备可以通过应用内消息 (In-App Message) 触达。

<Aside type="note">
推送令牌 (Push token) 是一个唯一的密钥，用于识别特定设备上的应用；它由云网关颁发，并用于向该设备发送推送通知。
</Aside>

用户在安装后首次使用 Pushwoosh SDK 打开应用时，设备就会被注册。应用启动后，SDK 会向我们的后端发起几次调用，例如 `/applicationOpen` 和 `/getInApps`。例如：

```
Pushwoosh request:
 Url: https://api.pushwoosh.com/json/1.3/applicationOpen
 Payload: {"request": {"jailbroken": 0, "notificationTypes": 7,
"app_version": "1.11.2","application": "66716-7F06D","device_type": 1,
"userId": "76051F70-....-46B5-B4BA-F3FC94BD3534", "language": "en",
"hwid": "76051F70-....-46B5-B4BA-F3FC94BD3534","package": "com.pushwoosh.pushon",
"os_version": "12.1.4","v": "5.9.1","device_model": "iPhone10,1"}}
```

这会将设备及其 hwid (硬件 ID) 记录到 Pushwoosh 数据库中，使其有资格接收应用内消息 (In-App Message)，并且应用打开统计数据将增加一。一旦设备被记录到数据库，您就可以开始为该设备提交标签 (Tag)，并在必要时分配用户 ID (User ID)。

此时，推送令牌 (push token) 尚不存在，该设备将归入“设备总数”类别。

如果一个设备超过 90 天不活跃，例如，我们的 SDK 没有收到该设备的 `/applicationOpen` 请求，没有触发任何事件 (Event)，并且该设备没有推送令牌 (push token)，它将被从数据库中删除。这个不活跃周期是可配置的；要重置不活跃周期，请联系您的客户成功经理或我们的客户支持团队。

## 启用推送的设备

启用推送的设备 (Push Enabled) 是指有关联推送令牌 (push token) 的设备。这意味着您可以向这些设备发送推送通知，云网关将递送您的推送。

启用推送的设备数量显示在您的 Pushwoosh 账户中——位于 Control Panel 左上角的左侧数字。

一旦用户同意接收推送通知，云网关（如 APNS 和 FCM）就会颁发推送令牌 (push token)，我们的 SDK 会将此令牌通过 API 请求发送到 Pushwoosh 的 [`/registerDevice`](../../api-reference/device-api#registerdevice) 端点：

```
Pushwoosh request:
 Url: https://api.pushwoosh.com/json/1.3/registerDevice
 Payload: {"request": {"gateway": "production", "jailbroken": 0,
 "notificationTypes": 7, "app_version": "1.11.2", "application": "66716-7F06D",
 "sounds": ["bubble.wav"], "device_type": 1, "userId": "76051F70-....-46B5-B4BA-F3FC94BD3534",
 "language": "en", "hwid": "76051F70-....-46B5-B4BA-F3FC94BD3534",
 "package": "com.pushwoosh.pushon", "timezone": "25200", "os_version": "12.1.4",
 "push_token": "9c943351faaa7080a1c076343521.......17d220a0c68f42125cd98bb",
 "v": "5.9.1", "device_model": "iPhone10,1"}}
```

现在，由于我们的数据库中已经为某个设备注册了推送令牌 (push token)，它就被视为“启用推送的设备” (Push Enabled)，您可以开始向该设备发送推送通知了。

<Aside type="note">
在实践中，即使设备有关联的推送令牌 (push token)，如果用户手动从设备设置中禁用了提醒，他们也可能看不到推送通知。这些用户可以通过后台（静默）推送 (Background (silent) pushes)、应用内消息 (In-App Message) 触达，并可以在收件箱 (Inbox) 中接收通知。更多信息请参见[启用推送提醒的设备](#push-alerts-enabled-devices)。
</Aside>

当您发送推送通知时，APNS 和 FCM 会向我们返回每个接收者推送令牌 (push token) 的状态。如果任何令牌被标记为无效或不存在，我们会将其从数据库中移除，启用推送的设备数量也会相应减少。

当推送令牌 (push token) 从系统中移除后，该设备不再属于“启用推送的设备”类别，但仍属于“设备总数”。如果用户之后打开应用，设备将被分配一个新的推送令牌，并重新回到“启用推送的设备”类别。如果在移除令牌后 90 天内没有任何活动，该设备将从数据库中被完全删除。

## 启用推送提醒的设备

启用推送提醒的设备 (Push Alerts Enabled) 可以在应用外显示推送通知提醒：在锁屏界面、通知中心或作为应用图标上的角标。这取决于用户是否从他们的设备设置中启用或禁用了推送通知提醒。

启用提醒的设备会被标记为“Push Alerts Enabled”默认标签 (Tag) 的“True”值，其余的则标记为“False”。您可以在标签 (Tag) 统计信息中查看此项。该标签 (Tag) 用于跟踪当应用处于后台或关闭状态时，有多少用户可以实际接收到推送通知提醒。

“Push Alerts Enabled”是一个默认标签 (Tag)，由 Pushwoosh SDK 自动收集。需要使用最新版本的 Pushwoosh SDK（2018 年秋季或之后发布的版本）。

<Aside type="caution" title="Important">


只有当用户在设备设置中更改通知偏好后至少打开过一次应用，Pushwoosh 中的提醒状态才能更新。如果用户允许推送通知提醒但没有打开应用，我们不会将该用户识别为“启用推送提醒的设备”；这就是为什么针对所有带令牌的设备以确保最大触达率如此重要。
</Aside>

比较“启用推送的设备”和“启用推送提醒的设备”可以让您更好地了解用户的选择加入率，并有助于选择正确的沟通渠道与更广泛的受众互动。通过为禁用提醒的设备建立一个细分群体，您可以通过其他渠道触达他们，并激励他们重新启用通知提醒。