合规指南
一、最新SDK版本说明
满足监管新规的最新SDK版本:1.7.6
二、权限调用合规要求
| 权限名称 | 权限说明 | 使用目的 | 权限申请时机 |
|---|---|---|---|
| ohos.permission.INTERNET | 允许使用Internet网络 | 在使用上报数据功能时,用于访问网络数据 | SDK初始化或者调用上报数据接口时 |
| ohos.permission.GET_NETWORK_INFO | 允许应用获取网络信息 | 在使用上报数据功能时,SDK 会根据网络状态选择是否发送数据 | SDK初始化时 |
| ohos.permission.STORE_PERSISTENT_DATA | 允许应用存储持久化的数据 | 存储应用卸载之后需要保持不变的数据 | SDK初始化时 |
三、延迟初始化要求
为了避免您的应用在未获取用户的同意前SDK提前处理用户的个人信息,SDK需要在用户同意 《隐私政策》后初始化。
示例代码如下:
// 根据隐私协议判断是否开启数据采集
if (isPrivacyPolicyAccepted) { // 用户已同意《隐私政策》
TDAnalytics.init(context, "appId", "serverUrl")
}
SDK初始化的时候会收集操作系统版本、设备制造商、操作系统、屏幕分辨率、设备型号、APP 版本、网络状态、网络运营商、应用安装时间、系统语言等信息,用于统计分析功能。
四、SDK 可选个人信息的配置说明
开发者可以通过 SDK 可选个人信息的配置示例说明进行配置。您可以在SDK初始化的时候配置disablePresetProperties 参数,配置需要禁用的设备信息数组。disablePresetProperties默认是空数组,就是默认会采集所有的预置属性,如果你需要禁用某一个预置属性,可以将需要禁用的预置属性添加到disablePresetProperties数组中。
以下是SDK 中所有事件默认采集的预置属性:
| 属性名 | 中文名 | 属性类型 | 采集时机 | 说明 |
|---|---|---|---|---|
#ip | IP 地址 | 文本 | 服务端采集 | 用户的 IP 地址,AE 将以此获取用户的地理位置信息 |
| #country | 国家 | 文本 | 服务端采集 | 用户所在国家,根据 IP 地址生成 |
#country_code | 国家代码 | 文本 | 服务端采集 | 用户所在国家的国家代码(ISO 3166-1 alpha-2,即两位大写英文字母),根据 IP 地址生成 |
| #province | 省份 | 文本 | 服务端采集 | 用户所在省份,根据 IP 地址生成 |
| #city | 城市 | 文本 | 服务端采集 | 用户所在城市,根据 IP 地址生成 |
| #os_version | 操作系统版本 | 文本 | 初始化时采集一次 | iOS 11.2.2、Android 8.0.0 等 |
#manufacturer | 设备制造商 | 文本 | 初始化时采集一次 | 用户设备的制造商,如 Apple,vivo 等 |
| #os | 操作系统 | 文本 | 初始化时采集一次 | 如 Android、iOS、HarmonyOS 等 |
| #device_id | 设备 ID | 文本 | 初始化时采集一次 | 用户的设备 ID,iOS 取用户的 IDFV 或 UUID,Android 取 androidID |
| #screen_height | 屏幕高度 | 数值 | 初始化时采集一次 | 用户设备的屏幕高度,如 1920 等 |
| #screen_width | 屏幕宽度 | 数值 | 初始化时采集一次 | 用户设备的屏幕宽度,如 1080 等 |
| #device_model | 设备型号 | 文本 | 初始化时采集一次 | 用户设备的型号,如 iPhone 8 等 |
| #device_type | 设备类型 | 文本 | 初始化时采集一次 | 设备类型,如 "Tablet"、"Phone" |
| #app_version | APP 版本 | 文本 | 初始化时采集一次 | 您的 APP 的版本 |
| #bundle_id | 应用唯一标识 | 文本 | 初始化时采集一次 | 应用包名或进程名 |
#lib | SDK 类型 | 文本 | 初始化时采集一次 | 您接入 SDK 的类型,如 Android,iOS 等 |
| #lib_version | SDK 版本 | 文本 | 初始化时采集一次 | 您接入 SDK 的版本 |
| #network_type | 网络状态 | 文本 | 初始化时采集一次,网络状态变化时采集 | 上传事件时的网络状态,如 WIFI、3G、4G 等 |
#carrier | 网络运营商 | 文本 | 初始化时采集一次 | 用户设备的网络运营商,如中国移动,中国电信等 |
#zone_offset | 时区偏移 | 数值 | 事件发生时采集 | 数据时间相对 UTC 时间的偏移小时数 |
| #install_time | 程序安装时间 | 时间 | 初始化时采集一次 | 用户安装应用的时间,值来源于系统 |
#system_language | 系统语言 | 文本 | 初始化时采集一次 | 用户设备的系统语言(ISO 639-1,即两位小写英文字母),如 zh, en 等 |
例如您需要禁用#os(操作系统)、#os_version(操作系统版本),配置示例代码如下:
let config = new TDConfig()
config.appId = 'appId'
config.serverUrl = 'url'
config.disablePresetProperties =["#os", "#os_version"]
TDAnalytics.initWithConfig(context, config)
如果您需要禁用全部的预置属性,可以将所有的属性配置到disablePresetProperties数组中,示例代码如下:
let config = new TDConfig()
config.appId = 'appId'
config.serverUrl = 'url'
config.disablePresetProperties =["#lib", "#lib_version", "#os", "#os_version", "#bundle_id", "#install_time", "#manufacturer", "#device_model",
"#device_type", "#screen_width", "#screen_height","#system_language","#carrier","#app_version","#device_id","#network_type","#ip"]
TDAnalytics.initWithConfig(context, config)
五、隐私政策披露要求与示例说明
在您接入、使用数数科技SDK服务前,我们要求您在隐私政策中向用户告知我们SDK的名称、SDK提供方名称、收集个人信息类型、使用目的、隐私政策链接,并获取用户的同意或取得其他合法性基础。您可以参考如下方式提供条款内容:
第三方SDK名称:数数科技SDK
第三方公司名称:数数信息科技(上海)有限公司
收集个人信息类型:在《隐私政策》中收集和获得您的个人信息栏目中根据实际情况填写以下内容,当您在激活使用时,我们会通过数数科技SDK收集您的设备信息(IP 地址解析的位置信息、国家、国家代码、省份、城市、操作系统版本、设备制造商、操作系统、屏幕分辨率、设备型号、APP 版本、网络状态、网络运营商、应用安装时间、系统语言)。
个人信息收集时机:SDK初始化时获取。
使用目的:用于统计分析用户在 App 内的使用效果。
隐私政策链接:数数科技SDK隐私声明
六、最终用户授权同意的建议方式
App 首次运行时应当有隐私弹窗,隐私弹窗中应公示简版隐私政策内容并附完整版隐私政策链接,并明确提示最终用户阅读并选择是否同意隐私政策;隐私弹窗应提供同意按钮和拒绝同意的按钮,并由最终用户主动选择。
建议通过弹窗的形式征求用户授权同意,弹窗内容中需包含数数科技SDK需要申请的权限和采集的用户相关信息。
隐私政策授权弹窗示例:
敏感个人信息授权弹窗示例:

