# gravityengine合规使用指南

> 来源：https://help.gravity-engine.com/docs/client-sdk/android/compliance
> 说明 Android 应用接入 Gravity Engine SDK 时的个人信息处理、隐私授权、初始化时机与合规配置要求。





根据《个人信息保护法》、《数据安全法》、《网络安全法》等法律法规和监管部门规章要求，App 开发运营者（以下简称为“开发者”）在提供网络产品服务时应尊重和保护最终用户的个人信息，不得违法违规收集使用个人信息，保证和承诺就个人信息处理行为获得最终用户的授权同意，遵循最小必要原则，且应当采取有效的技术措施和组织措施确保个人信息安全。

为帮助开发者在使用 gravityengineSDK 的过程中更好地落实用户个人信息保护相关要求，避免出现侵害最终用户个人信息权益的情形，特制定本合规使用说明，供开发者在接入使用 gravityengineSDK 服务时参照自查和合理配置，不断提升个人信息保护水平。

## SDK 个人信息说明 [#sdk-个人信息说明]

**要求内容：** 《SDK合规使用说明》应详细说明 SDK 各项个人信息使用目的、场景及对应关闭的配置方式、示例。

**gravityengineSDK 个人信息说明：**

| 产品功能类型 | 产品功能名称 | 个人信息类型及字段                                 | 是否必选 | 用途和目的                          | 关闭方式                            |
| ------ | ------ | ----------------------------------------- | ---- | ------------------------------ | ------------------------------- |
| 基本功能   | 数据统计   | 设备唯一标识（包括 Android ID）                     | 可选   | 用于生成终端用户设备唯一标识，以确保数据统计的准确性     | `config.enableAndroidId(false)` |
|        |        | 设备唯一标识（包括 IMEI、MEID）                      | 可选   | 用于生成终端用户设备唯一标识，以确保数据统计的准确性     | `config.enableIMEI(false)`      |
|        |        | 设备唯一标识（包括 OAID）                           | 可选   | 帮助你分析用户来源，便于优化应用推广等。           | `config.enableOAID(false)`      |
|        |        | 设备唯一标识（包括 MAC、BSSID、SSID）                 | 可选   | 用于生成终端用户设备唯一标识，以确保数据统计的准确性     | `config.enableMAC(false)`       |
|        |        | 设备硬件信息（包括操作系统版本、设备制造商、操作系统、设备型号、屏幕分辨率）    | 必选   | 用于保证服务在不同设备上的兼容性，确保服务准确生效      | 基础功能，必要信息                       |
|        |        | 网络信息（包括 IP 地址、国家、国家代码、省份、城市、网络状态、网络运营商）   | 必选   | 用于判断用户所在地区，保证归因及数据统计的准确性       | 基础功能，必要信息                       |
|        |        | 应用信息（包括 App 版本、应用唯一标识、SDK 类型、SDK 版本）      | 必选   | 用于保证服务在不同版本上的兼容性，确保服务准确生效      | 基础功能，必要信息                       |
|        |        | 用户行为信息（包括页面地址、前向地址、页面标题、页面名称、事件时长、后台事件时长） | 必选   | 帮助你分析用户应用内行为路径，便于优化应用内容，提高留存等。 | 基础功能，必要信息                       |

## SDK 可按照不同频次、精度收集个人信息的配置说明 [#sdk-可按照不同频次精度收集个人信息的配置说明]

**要求内容：** 如果 SDK 可按照不同频次、精度收集个人信息的，《SDK合规使用说明》应说明不同频次的使用目的、场景及对应选择的配置方式、示例。

**接入说明：** 收集频次方面，gravityengineSDK 的数据采集仅在 App 调用/最终用户触发相关功能时触发，不涉及定时逻辑等频次控制选项。App 如欲控制数据采集频次，可通过重载主动控制器，接管相关数据项对应系统 API 的调用时机，进而控制数据采集频次。

**gravityengineSDK 个人信息收集频次及对应配置情况：**

| 个人信息类型及字段                                 | 是否可配置 | 用途和目的                          | 频次          |
| ----------------------------------------- | ----- | ------------------------------ | ----------- |
| 设备唯一标识（包括 Android ID、IMEI、MEID、OAID、MAC）  | 可配置   | 用于生成终端用户设备唯一标识，以确保数据统计的准确性     | SDK 启动时采集一次 |
| 设备硬件信息（包括操作系统版本、设备制造商、操作系统、设备型号、屏幕分辨率）    | 不可配置  | 用于保证服务在不同设备上的兼容性，确保服务准确生效      | SDK 启动时采集一次 |
| 网络信息（包括 IP 地址、国家、国家代码、省份、城市、网络状态、网络运营商）   | 不可配置  | 用于判断用户所在地区，保证归因及数据统计的准确性       | SDK 启动时采集一次 |
| 应用信息（包括 App 版本、应用唯一标识、SDK 类型、SDK 版本）      | 不可配置  | 用于保证服务在不同版本上的兼容性，确保服务准确生效      | SDK 启动时采集一次 |
| 用户行为信息（包括页面地址、前向地址、页面标题、页面名称、事件时长、后台事件时长） | 不可配置  | 帮助你分析用户应用内行为路径，便于优化应用内容，提高留存等。 | 客户主动调用时采集一次 |

## SDK 申请系统权限的说明 [#sdk-申请系统权限的说明]

**要求内容：** 《SDK合规使用说明》应详细说明 SDK 所需的系统权限与各业务功能间的关系，并说明权限申请时机。

**接入说明：** 对于 gravityengineSDK 可选申请的系统权限，您可以参考相关如下表格的内容，详细了解相关权限与各业务功能的关系及其申请时机。gravityengineSDK 不主动申请可选系统权限，但相关权限的不申请将会对其对应的功能造成影响，您可以结合业务实际需要进行合理配置。

**Android 操作系统应用权限列表：**

| 权限                       | 权限功能说明                 | 用途和目的                               | 申请时机                  |
| ------------------------ | ---------------------- | ----------------------------------- | --------------------- |
| READ\_PHONE\_STATE       | 【可选】允许应用获取设备 IMEI、MEID | 用于获取设备标识符，实现广告归因等业务功能               | 开启 IMEI 采集之后获取 IMEI 时 |
| INTERNET                 | 【必选】允许应用使用网络           | 用于连接网络，实现 gravityengine 业务所需的日志上报功能 | 上报事件时                 |
| ACCESS\_NETWORK\_STATE   | 【必选】允许应用检测网络状态         | 用于检测当前网络信息，SDK 会根据网络状态选择是否发送数据      | 上报事件时                 |
| READ\_EXTERNAL\_STORAGE  | 【可选】允许应用读取文件内容         | 用于读取本地缓存中的设备标识等信息                   | SDK 启动时               |
| WRITE\_EXTERNAL\_STORAGE | 【可选】允许应用写入文件内容         | 用于将设备标识等信息写入本地缓存                    | SDK 启动时               |

## SDK 初始化及业务功能调用时机 [#sdk-初始化及业务功能调用时机]

**要求内容：** 《SDK合规使用说明》应详细说明 SDK 初始化及各项业务功能接口合规调用时机。App 应当在 App 登录注册页面及 App 首次运行时，通过弹窗、文本链接及附件等简洁明显且易于访问的方式，向最终用户告知涵盖个人信息处理主体、处理目的、处理方式、处理类型、保存期限等内容的个人信息处理规则，并且获得最终用户授权同意后才能处置最终用户数据。

**接入说明：** 请务必在用户同意您 App 中的隐私政策后，再进行 gravityengineSDK 的初始化。用户同意隐私政策之前，避免动态申请涉及用户个人信息的敏感设备权限；用户同意隐私政策前，您应避免私自采集和上报个人信息。当您的 App 未向用户提供服务时，例如 App 在后台运行时，请勿请求 gravityengineSDK 的相关服务。启动 SDK 方法不会采集设备信息，也不会向引力引擎后台上报数据；只有在用户同意《隐私政策》之后调用正式初始化方法，SDK 才会真正采集设备信息并上报数据。具体示例请参考下方案例：

```java
if (用户同意隐私政策弹窗) {
  GEConfig config = GEConfig.getInstance(context, ACCESS_TOKEN);
  GravityEngineSDK.setupAndStart(config);
}
```

## SDK 隐私政策披露要求与示例 [#sdk-隐私政策披露要求与示例]

**要求内容：** 《SDK合规使用说明》应提供 App 向最终用户披露 SDK 隐私政策条款的示例，包括 SDK 名称、公司名、处理个人信息种类及目的、采集方式、隐私政策链接等内容。

**接入说明：** 开发者在 App 集成 gravityengineSDK 后，gravityengineSDK 的正常运行会收集必要的最终用户信息，实现用户行为分析、数据归因等功能。请开发者根据集成 gravityengineSDK 的实际情况，在您 App 的隐私政策中，对 gravityengineSDK 名称、公司名称、处理个人信息种类及目的、采集方式、隐私政策链接等内容进行披露。

**披露示例：**

**SDK名称**：gravityengine

**涉及个人信息**：

| 个人信息类型及字段                                 | 用途和目的                          |
| ----------------------------------------- | ------------------------------ |
| 设备唯一标识（包括 Android ID、IMEI、MEID、OAID、MAC）  | 用于生成终端用户设备唯一标识，以确保数据统计的准确性     |
| 设备硬件信息（包括操作系统版本、设备制造商、操作系统、设备型号、屏幕分辨率）    | 用于保证服务在不同设备上的兼容性，确保服务准确生效      |
| 网络信息（包括 IP 地址、国家、国家代码、省份、城市、网络状态、网络运营商）   | 用于判断用户所在地区，保证归因及数据统计的准确性       |
| 应用信息（包括 App 版本、应用唯一标识、SDK 类型、SDK 版本）      | 用于保证服务在不同版本上的兼容性，确保服务准确生效      |
| 用户行为信息（包括页面地址、前向地址、页面标题、页面名称、事件时长、后台事件时长） | 帮助你分析用户应用内行为路径，便于优化应用内容，提高留存等。 |

**合作方主体**：深圳引力引擎科技有限公司

**使用目的**：实现广告监测归因、投放效果优化等与广告活动相关的使用目的

**使用场景**：广告监测归因、投放效果优化的场景

**收集方式**：SDK自行采集

**官网链接**：[https://www.gravity-engine.com/](https://www.gravity-engine.com/)

**隐私政策链接**：[https://www.gravity-engine.com/h-col-101.html](https://www.gravity-engine.com/h-col-101.html)

## 最终用户同意方式的示例 [#最终用户同意方式的示例]

**要求内容：** 《SDK合规使用说明》应详细说明 App 获取最终用户授权同意的建议方式，其中需要取得最终用户单独同意的，应显著提示并给出示例。

**接入说明：** App 首次运行时应当有隐私弹窗，隐私弹窗中应公示简版隐私政策内容并附完整版隐私政策链接，并明确提示最终用户阅读并选择是否同意隐私政策；隐私弹窗应提供同意按钮和拒绝同意的按钮，并由最终用户主动选择。

<img src="__img0" />

## 最终用户行使权利的配置说明 [#最终用户行使权利的配置说明]

**要求内容：** 最终用户对其个人信息的处理享有知情、决定、查阅、复制、补充、更正、撤回授权同意、删除、注销账号等权利。以嵌入接口形式向最终用户提供行使权利的，应提供接口调用方式、示例。

**接入说明：** 开发者在其 App 中集成 gravityengineSDK 后，gravityengineSDK 的正常运行会收集必要的最终用户信息用于实现用户行为分析、数据归因等功能。开发者应根据相关法律法规为最终用户提供行使个人信息主体权利的路径或功能，需要 gravityengineSDK 配合的，请与 gravityengineSDK 及时进行联系，我们将与开发者协同妥善解决最终用户的诉求。联系客服电子邮箱地址：[client@gravity-engine.com](mailto:client@gravity-engine.com)

## 针对儿童隐私保护的特别说明 [#针对儿童隐私保护的特别说明]

**要求内容：** 若您的应用需遵守美国的《儿童在线隐私权保护法》(COPPA) 或其他类似法规，或您的应用目标用户包含或主要面向 13 周岁以下的儿童，您有责任将该应用标识为“儿童应用”。

**接入说明：** 为确保符合相关法规，请在初始化 `GEConfig` 时将应用明确标记为儿童应用（Kids App），此设置会影响 SDK 对特定数据的处理逻辑，以满足儿童隐私保护的特殊要求。示例：

```java
GEConfig config = GEConfig.getInstance(context, ACCESS_TOKEN);
config.setKidsAppEnabled(true); // 标记为儿童应用，5.0.21 及以上版本支持
config.setCoppaEnabled(true); // 需符合《儿童在线隐私权保护法》(COPPA)，5.0.21 及以上版本支持
GravityEngineSDK.setupAndStart(config);
```

请开发者知悉，引力引擎 SDK 不主动识别用户年龄。**您作为应用提供方，是履行 COPPA 等法规的首要责任人**，这包括但不限于：对应用是否面向儿童做出准确判断；在采集、使用或分享儿童个人信息前，获取可验证的家长同意；在应用内实施上述标记配置。

## 针对欧盟《通用数据保护条例》(GDPR)的合规说明 [#针对欧盟通用数据保护条例gdpr的合规说明]

**要求内容：** 为支持开发者在欧盟地区遵守《通用数据保护条例》(GDPR)，gravityengineSDK 提供专门的配置接口，通过设置控制对特定敏感个人数据的采集行为，为开发者履行“数据最小化”等原则提供技术工具。

**接入说明：** SDK 初始化时默认不将用户识别为 GDPR 管辖区域的用户（对应参数为 `FALSE`），此状态下 SDK 会采集包括设备标识符（如 Android ID、OAID）在内的信息，以保障广告归因、数据分析等核心功能的正常运行。开发者可明确告知 SDK 当前用户是否位于 GDPR 管辖区域，一旦将用户标记为 GDPR 区域用户，SDK 将默认不再采集 Android ID、OAID 等设备标识符。此设置可在 SDK 启动时配置，示例：

```java
GEConfig config = GEConfig.getInstance(context, ACCESS_TOKEN);
config.isGDPRArea(true); // 标记为 GDPR 管辖区域用户，5.0.21 及以上版本支持
GravityEngineSDK.setupAndStart(config);
```

**重要操作指引：** 您需要根据应用服务的实际用户群体和地理位置，自主判断并调用此功能，**此功能仅供处理 GDPR 管辖区域内用户的场景下使用**。对于明确知晓的非 GDPR 区域用户，**请勿调用**此设置，误操作可能导致无法采集必要的设备标识符，进而影响广告归因、数据分析等核心功能的准确性，甚至导致关键数据丢失，请务必谨慎评估后使用。
