合规指南
引言
应法律法规要求,所有APP均须向终端用户出示当前APP的《隐私政策》,在用户同意《隐私政策》之前,APP不能收集任何涉及隐私的设备信息(也不能执行Open-App移动统计SDK的初始化),否则将面临APP被下架的风险。因此请开发者务必参照此文档做好安全合规相关事项,以免影响App正常上架。因此,您需要制定一份App《隐私政策》。《隐私政策》是说明App的个人信息收集和使用情况,获得用户的合法授权以及保护用户个人信息主体权利的重要文档,其内容应符合国家相关法律法规、政策及标准的规定及您与openinstall的协议约定。您的App《隐私政策》中须包含Open-App移动统计SDK收集使用个人设备信息的目的、方式和范围等,提供的数据安全保护标准应不低于和openinstall的协议约定。
App《隐私政策》须展示的内容
SDK 信息与向终端用户披露
请在 App《隐私政策》的「第三方 SDK」或「数据共享和披露」章节中,向终端用户披露以下信息(请根据实际集成的平台与开启的功能调整):
SDK名称:Open-App移动统计SDK
SDK提供方(第三方):福建分和秒网络科技有限公司
收集的个人信息:设备品牌、设备型号、操作系统版本、网络信息;可选项包括粘贴板(剪切板)、开放匿名设备标识符(OAID)、Android ID、设备序列号、IMEI、GAID、MAC地址、IDFA、IDFV等(以实际集成平台与开启的功能为准)
使用目的:应用统计、拉起分析、App传参安装、H5渠道统计、渠道包统计、裂变分享统计、广告统计等
个人信息处理规则链接:https://app.openinstall.com/app-privacy
各平台采集明细
您应向终端用户逐一明示嵌入的第三方 SDK 收集使用个人信息的目的、方式和范围,并在《隐私政策》中说明集成 Open-App移动统计SDK,允许其对已收集数据进行去标识化或匿名化处理后提供数据服务。以下各平台表格供细化 Open-App移动统计SDK 所采集的设备信息和用途时参考:
Android
| 收集信息种类 | 使用目的 | 获取方式 |
|---|---|---|
| 必选:设备品牌、设备型号、操作系统版本、网络信息(IP地址) | 应用统计、拉起分析、App传参安装、H5渠道统计、Android渠道包统计、裂变分享统计 | SDK初始化时自动获取 |
| 可选:粘贴板(剪切板) | 提升App传参功能、H5渠道统计的归因精度 | SDK初始化时自动获取或开发者主动传入 |
| 必选:本地存储权限 可选:Android ID、设备序列号(SerialNumber)、读取/写入本地文件 | 作弊监控功能 | SDK初始化时自动获取或开发者主动传入 |
| 可选:IMEI、OAID、GAID、Mac地址 | 广告统计功能 | SDK初始化时自动获取或开发者主动传入 |
iOS
| 收集信息种类 | 使用目的 | 获取方式 |
|---|---|---|
| 必选:设备品牌、设备型号、操作系统版本、网络信息(IP地址) | 应用统计、拉起分析、App传参安装、H5渠道统计、裂变分享统计、ASA归因统计 | SDK初始化时自动获取 |
| 必选:粘贴板(剪切板) | 提升App传参功能、H5渠道统计的归因精度 | SDK初始化时自动获取 |
| 必选:本地存储权限 | 作弊监控功能 | SDK初始化时自动获取 |
| 可选:IDFA、IDFV | 广告统计功能 | SDK初始化时自动获取或开发者主动传入 |
Harmony
| 收集信息种类 | 权限名称 | 权限说明 | 使用目的 | 申请时机 |
|---|---|---|---|---|
| 必选:网络信息 | ohos.permission.INTERNET | 允许使用Internet网络 | 访问网络 | SDK初始化时使用 |
| 必选:网络信息 | ohos.permission.GET_WIFI_INFO | 允许获取Wi-Fi信息 | 获取网络信息用于应用统计、拉起分析、App传参安装、H5渠道统计、裂变分享统计 | SDK初始化时使用 |
| 必选:应用基本信息、系统基本信息、系统设置信息 | ohos.permission.GET_BUNDLE_INFO | 允许查询应用的基本信息 | 获取应用信息用于应用统计、拉起分析、App传参安装、H5渠道统计、裂变分享统计 | SDK初始化时使用 |
| 必选:本地存储权限 | ohos.permission. STORE_PERSISTENT_DATA | 允许安全存储及管理数据 | 作弊监控功能 | SDK初始化时使用 |
| 可选:开放匿名设备标识符(OAID) | ohos.permission. APP_TRACKING_CONSENT | 允许应用读取开放匿名设备标识符 | 广告统计功能 | 须开启 adEnabled 后采集;SDK 自动获取或开发者主动传入,支持禁止 SDK 自动获取 |
| 可选:粘贴板(剪切板) | ohos.permission.READ_PASTEBOARD | 允许应用读取剪切板内容 | 读取并解析口令,提升App传参功能、H5渠道统计数据还原精度 | SDK初始化时自动获取或开发者主动传入;支持禁止 SDK 自动获取 |
以上表格可作为补充参考,用于细化 Open-App移动统计SDK 收集使用个人信息的目的、方式和范围。您应知悉和了解,部分设备信息和网络信息需要通过您安装 Open-App移动统计SDK 的宿主 App 申请权限,Open-App移动统计SDK 不主动向用户移动终端申请任何权限,只有在获得用户的授权同意后我们才会进行收集。
注:Open-App移动统计SDK 传输终端用户的相关数据时会先进行加密,然后传输上报到 openinstall 服务器(不会明文传输)。
注意事项
1、您在使用 Open-App移动统计SDK 前,应当仔细阅读并同意接受 openinstall 的《服务条款》,并参照《Open-App移动统计SDK隐私政策》向终端用户履行告知义务。
2、您请务必确保已经将Open-App移动统计SDK升级到官网发布的最新版本,以保证所使用的SDK收集使用个人设备信息的目的、方式和范围等与《Open-App移动统计SDK隐私政策》中的一致。
最新版本SDK下载地址:SDK下载地址。
3、您务必确保在App启动页通过弹窗的形式出示App《隐私政策》,在未征得用户同意之前,不能调用Open-App移动统计SDK初始化,更不能读取任何用户设备信息,否则将面临被应用市场下架的风险。
4、您应遵从国家相关法律法规、政策及标准的要求,对App《隐私政策》进行展示,包括但不限于:
- 保证《隐私政策》的独立性:《隐私政策》以单独成文的形式发布,而不是作为用户协议、用户说明等文件的一部分存在。
- 保证《隐私政策》的明显提示性:App首次运行时,需要通过弹窗等明显方式提示终端用户阅读《隐私政策》并获取用户的确认。
- 保证《隐私政策》的易读性:《隐私政策》文本文字显示方式(字号,颜色,行间距等)不会造成阅读困难。
- 保证《隐私政策》的易于访问性:进入App主功能界面后,通过4次以内的点击,能够访问到《隐私政策》。
可选个人信息配置
对于部分应用市场的上架审核要求,Open-App移动统计SDK 提供了开发者对部分可选个人信息采集行为的控制方式,以便于开发者做出针对性调整。以下分别说明 Android 与 HarmonyOS 平台的配置方法。
Android 可选个人信息配置
粘贴板(剪切板)
默认情况下,SDK 在初始化时会尝试读取系统剪切板,用于提升 App 传参、H5 渠道统计的归因精度。若应用市场审核认为粘贴板读取频率过高(例如应用宝),可通过 AndroidManifest.xml 中的 meta-data 配置项调整读取策略:
| 配置值 | 行为说明 |
|---|---|
true(默认) |
粘贴板读取频率正常,归因成功率较高;部分应用市场可能认定为读取频率过高 |
false |
降低粘贴板读取频率,更易通过应用市场上架审核;读取成功率可能略有下降 |
<!-- 在 AndroidManifest.xml 的 <application> 节点内添加 -->
<meta-data
android:name="com.openinstall.PB_SIGNAL"
android:value="false" />
说明:
- 支持版本:Android SDK 2.6.4 及以上。
- 该配置控制 SDK 读取粘贴板的间隔策略;读取失败时,SDK 会间隔 1.2 秒后重试,最多重试 3 次。
- 此配置仅调整读取频率,不能完全禁止 SDK 采集粘贴板。
其它设备信息(Android ID、设备序列号、IMEI、OAID 等)
除粘贴板外,Android SDK 2.6.3 及以上版本对其它设备信息的获取频率、次数已满足主流应用市场的审核标准。若应用市场仍检测到 App 内(含宿主 App 自身及所集成的全部 SDK)对某项设备信息的总获取频率或次数过高,开发者可自行获取对应信息后通过 Configuration.Builder 传入,或传入空字符串禁止 SDK 自动获取,以降低 App 整体采集频率。
支持版本:Android SDK 2.6.4 及以上。
未启用「广告统计」功能时
可自行获取并传入 androidId、serialNumber;也可传入空字符串禁止 SDK 自动获取。上述信息用于数据排重、作弊监控,如重视重复设备数据过滤建议保留。
Configuration configuration = new Configuration.Builder()
.androidId(androidId) // 传入实际值,或 "" 禁止 SDK 自动获取
.serialNumber(serialNumber) // 传入实际值,或 "" 禁止 SDK 自动获取
.build();
OpenInstall.init(context, configuration);
已启用「广告统计」功能时
除 androidId、serialNumber 外,还可按需传入 imei、oaid、gaid、macAddress;同样支持传入空字符串禁止 SDK 对对应项的自动获取。
Configuration configuration = new Configuration.Builder()
.androidId(androidId)
.serialNumber(serialNumber)
.imei(imei) // 广告统计所需,或 "" 禁止 SDK 自动获取
.oaid(oaid) // 广告统计所需,或 "" 禁止 SDK 自动获取
.gaid(gaid) // 广告统计所需,或 "" 禁止 SDK 自动获取
.macAddress(macAddress) // 广告统计所需,或 "" 禁止 SDK 自动获取
.build();
OpenInstall.init(context, configuration);
说明:
- 若开发者已通过
Configuration.Builder传入某项设备信息,SDK 不会再次调用系统接口自动获取该项。 - 传入空字符串(
"")表示明确禁止 SDK 自动获取对应字段,SDK 将不上报该项信息。 - IMEI、OAID、GAID、Mac 地址等广告相关标识符,仅在启用广告统计功能时需要配置;未启用时可不传。
HarmonyOS 可选个人信息配置
HarmonyOS SDK 通过 OpInitConfig 配置类,在调用 OpenInstall.init() 时传入,用于控制开放匿名设备标识符(OAID)及粘贴板(剪切板)等可选个人信息的采集行为。Open-App移动统计SDK 不会主动向用户申请权限,相关权限须由宿主 App 在 module.json5 中声明,并在运行时向用户申请;仅在获得用户授权且开发者未禁用对应采集项时,SDK 才会自动读取。
粘贴板(剪切板)
默认情况下(fetchPasteData 为 true),SDK 在初始化时会尝试读取系统剪切板(须已获得 ohos.permission.READ_PASTEBOARD 授权,且仅读取一次)。开发者可通过以下方式控制:
- 禁止 SDK 自动读取剪切板
let initConfig = new OpInitConfig();
initConfig.disableFetchPasteData();
OpenInstall.init(context, initConfig);
- 由开发者自行读取后传入(适用于须通过安全控件等合规场景获取剪切板内容的 App)
let initConfig = new OpInitConfig();
initConfig.disableFetchPasteData();
if (OpenInstall.acceptPasteData(pasteData)) {
initConfig.pasteData = pasteData;
}
OpenInstall.init(context, initConfig);
说明:
- 若开发者已通过
pasteData传入剪切板内容,SDK 不会再次自动读取系统剪切板。 - 调用
disableFetchPasteData()后,SDK 初始化时将完全不采集剪切板信息。 acceptPasteData()用于判断传入的剪切板内容是否为 openinstall 有效数据,建议在传入前调用。
开放匿名设备标识符(OAID)
OAID 仅在使用「广告统计」功能时采集。须先将 adEnabled 设置为 true,SDK 才会处理 OAID 相关逻辑。SDK 自动获取 OAID 须同时满足:已在 module.json5 中声明 ohos.permission.APP_TRACKING_CONSENT、设备支持 OAID 能力、且用户已授予该权限。
let initConfig = new OpInitConfig();
initConfig.adEnabled = true; // 须开启,否则不采集 OAID
// 默认:SDK 自动获取 OAID
// initConfig.disableFetchOaid(); // 禁止 SDK 自动获取
// initConfig.oaid = '开发者自行获取的 OAID'; // 由业务侧传入
OpenInstall.init(context, initConfig);
说明:
- 若已通过
oaid传入,SDK 不会调用系统接口自动获取。 adEnabled默认为false,未开启时 不会采集、上报 OAID。- 无论用户是否授予 OAID 权限,均须调用
OpenInstall.init();拒绝授权时不上报 OAID,不影响其它功能。