# 设备标识使用推荐

#### 概述

设备标识是用于唯一标识设备的代码或符号，类似于现实生活中的身份证。在移动应用开发中，设备标识对于准确识别设备至关重要，可用于分析用户行为、推送信息和提供个性化服务等场景。为确保用户数据的安全和合规性，建议在开发过程中遵守相关隐私政策和法规，使用用户可重置的设备标识。HarmonyOS提供了三种可重置的设备标识：

*   ODID（开发者匿名设备标识符）：用于识别同一设备上运行的同一个开发者的应用，标识应用身份。
*   OAID（开放匿名设备标识符）：用于广告跟踪，可在保护用户个人数据隐私安全的前提下，向用户提供个性化广告。
*   AAID（应用匿名标识符）：用于应用的推送，标识应用身份。

开发者在选择设备标识时，可以从特性、重置规则和用户授权三个方面进行对比，具体如下：

| 设备标识 | 特性 | 重置规则 | 是否需要用户同意授权 |
| --- | --- | --- | --- |
| ODID | 同一设备上运行的同一个开发者的应用，ODID相同。同一个设备上不同开发者的应用，ODID不同。不同设备上同一个开发者的应用，ODID不同。不同设备上不同开发者的应用，ODID不同。 | 手机恢复出厂设置。同一设备上同一个开发者的应用全部卸载后重新安装时。 | 否 |
| OAID | OAID是设备级标识符，同一台设备上不同的App获取到的OAID值一样。OAID的获取受应用的“跨应用关联访问权限”开关影响：当应用的“跨应用关联访问权限”开关开启时，该应用可获取到非全0的有效OAID；当应用的“跨应用关联访问权限”开关关闭时，该应用仅能获取到全0的OAID。同一台设备上首个应用开启应用“跨应用关联访问权限”开关时，会首次生成OAID。 | 用户恢复手机出厂设置。用户操作重置OAID：打开系统设置–隐私和安全–跨应用关联页面，把所有应用的跟踪权限关了，再任意打开一个，即可触发OAID的重置。 | 是（调用getOAID接口需要申请ohos.permission.APP_TRACKING_CONSENT权限，并获取用户授权（默认开启权限）） |
| AAID | 匿名化、无隐私风险：AAID和已有的任何标识符都不关联，并且每个应用只能访问自己的AAID。同一个设备上，同一个开发者的多个应用，AAID取值不同。同一个设备上，不同开发者的应用，AAID取值不同。不同设备上，同一个开发者的应用，AAID取值不同。不同设备上，不同开发者的应用，AAID取值不同。 | 应用卸载重装。应用调用删除AAID接口。用户恢复出厂设置。用户清除应用数据。 | 否 |

#### 设备标识应用场景推荐

下面列举了使用设备标识的常见场景，开发者可根据场景选择合适的设备标识。

#### 安全与防欺诈

**场景简介**

*   在新设备或不常用设备上登录应用时，系统将进行额外的身份验证，以确保账号安全。
*   账号登录密码错误保护是一种安全措施，旨在防止未经授权的访问，保护账户安全。
*   当用户的账号在非常用登录地点进行登录操作时，系统应触发身份验证，以防止账号被盗用和欺诈行为的发生。

**推荐方案**

在用户账号首次登录时，将账号与ODID或AAID绑定，以增强设备的关联验证。当账号再次登录时，系统可快速识别登录设备，从而迅速确认用户身份和设备合法性。具体步骤如下：

*   若设备标识不一致则可以触发额外的身份验证，确保用户账号安全。
*   同一设备连续尝试多次错误登录密码时，系统锁定该设备，阻止进一步尝试。
*   在金融等高安全要求的场景中，可以将设备标识与地理位置结合。若地理位置突然发生大幅变化，可暂时冻结账号的敏感操作。

另外，可以使用应用设备状态检测标识设备，根据Device Security服务器返回的状态，判断应用是否为设备上的首次安装，或用户是否已获取优惠券等，以支持业务开展新用户营销活动。

#### 数据分析与营销

**场景简介**

广告服务平台在广告展示过程中，需要记录设备上用户与广告的交互行为。例如，广告的曝光时间（即广告在设备屏幕上显示的时长）、用户是否点击了广告、用户在广告落地页的停留时间等。

**推荐方案**

可以通过OAID将采集到的设备和用户行为数据关联。对于特定OAID的设备，可以分析出用户对广告的偏好。例如，如果一个OAID对应的设备用户频繁点击游戏类广告，并在游戏广告落地页有较高的转化率（如下载游戏或进行游戏内付费），则可以将该OAID标记为对游戏广告感兴趣的用户。广告服务平台可以根据用户的广告偏好选择合适的时间和方式进行营销推广，提高营销效果和转化率。HarmonyOS也提供Ads Kit（广告服务），应用可以在接入广告服务时传入OAID为用户更精准的推送广告。

#### 跨应用数据整合

**场景简介**

数据整合是将来自不同数据源的数据收集、整理并转换，然后加载到一个新的数据源，为开发者提供统一的数据视图。对于同一开发者管理的多个应用，需要分析用户在不同应用中的行为习惯和偏好。

**推荐方案**

在同一设备上运行的同一开发者的应用，ODID相同。因此，推荐使用ODID进行跨应用的数据追踪，以实现针对性的优化和改进。

#### 总结

本文介绍了ODID、OAID、AAID三种设备标识的特性和重置规则，通过分析不同场景和设备标识使用需求，推荐合适的解决方案，总结如下：

*   ODID（开发者匿名设备标识符）、AAID（应用匿名标识符）：通过账号、ODID或AAID与设备绑定，确保用户账号安全；
*   OAID（开放匿名设备标识符）：通过广告标识服务获取和重置设备标识，提供个性化广告推荐和转化归因分析；
*   AAID（应用匿名标识符）：存在于应用安装期，与设备级硬件ID相比，具有更好的隐私属性。

#### 示例代码

*   实现获取设备标识功能