Android SDK合规说明

请使用最新 GrowingIO Android SDK 稳定版本 及以上
为确保您的App在集成 GrowingIO SDK 之后,能够满足工信部相关合规要求,请参考以下说明。

隐私协议填写

收集和获取

在您的APP《隐私协议》中收集和获得的个人信息栏目中根据实际情况填写如下内容:
我们的产品集成了 GrowingIO SDK,我们会通过 GrowingIO SDK 收集您的设备信息(例如:操作系统、设备型号、系统版本、`AndroidID`、`IMEI` 、IP地址、粘贴板内容)用于统计分析您在 App 内的使用效果,从而改进我们的产品和服务。
可在第三方SDK列表中增加如下内容(设备信息按照实际情况填写):
GIO移动端 SDK
用途:分析收集移动应用程序(App)用户的使用情况
收集个人信息类型:设备标识信息(如IMEI、Android ID、OAID),粘贴板内容,设备类型,设备版本,系统版本,地理位置信息,网络设备制造商,IP地址,网络模式
提供方:北京易数科技有限公司
第三方SDK隐私协议链接:https://accounts.growingio.com/user-privacy

与授权合作伙伴共享

在您的APP《隐私协议》中的与授权合作伙伴共享栏目中根据实际情况填写如下内容:
我们的产品集成了 GrowingIO SDK,我们会通过 GrowingIO SDK 收集您的设备信息(例如:操作系统、设备型号、系统版本、`AndroidID`、`IMEI` 、IP地址、粘贴板内容)用于统计分析您在 App 内的使用效果,从而改进我们的产品和服务。

合规步骤

1.您需要确保 App 有《隐私协议》,并且在用户第一次启动 App 时就能向用户展示并取得用户同意;
2.请务必告知用户您使用了 GrowingIO SDK,请在 《隐私协议》 中添加隐私条款,参考隐私协议填写
3.集成原生 Android SDK,请在用户同意《隐私协议》之后再初始化GrowingIO SDK设置 GrowingIO SDK 的数据收集开关。​

采集详情

个人信息字段采集

我们通过采集唯一设备识别码(如IMEI/AndroidID/IP地址)对用户进行唯一标识,以便进行诸如用户访问量,广告等数据统计。在无法获取设备识别码的情况下(如Android高版本API限制),我们推荐集成由移动安全联盟MSA提供的 Oaid SDK 作为设备唯一识别码,以便正常提供统计分析服务。

Android 设备权限

权限
用途
android.permission.INTERNET
允许应用程序联网和发送统计数据的权限,以便提供统计分析服务。必须权限
android.permission.ACCESS_NETWORK_STATE
检测联网方式,在网络异常状态下避免数据发送,节省流量和电量。必须权限
android.permission.ACCESS_WIFI_STATE
获取WIFI网络类型,检测联网方式,节省流量和电量。必须权限
android.permission.READ_PHONE_STATE
获取用户设备的IMEI,通过IMEI对用户进行唯一标识,以便提供统计分析服务。(只在Android 10以下可用,10以上已无法获取)。可选权限

初始化

方式一、延迟初始化

如果未同意《隐私协议》, 在 Activity 的onCreate()方法中同意隐私协议后进行 SDK 初始化。如果已同意《隐私协议》,在 Application 的 onCreate() 方法主线程中初始化 SDK。
在隐私协议授权同意之后,再初始化 GrowingIO SDK(版本需在 2.9.1 及以上)。
如果配置有AppLink,则在SDK初始化之后可用。
// 在 Activity 中同意隐私条款后初始化 SDK
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (<未同意隐私协议>){
// 展示隐私协议弹窗,等待用户同意
if (<用户同意隐私协议>){
GrowingIO.startWithConfiguration(this, new Configuration()
.setChannel("XXX应用商店")
);
}
}
}
}
// Application 的 onCreate() 方法中主线程初始化 SDK
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
if (<用户已经同意隐私协议>){
GrowingIO.startWithConfiguration(this, new Configuration()
.setChannel("XXX应用商店")
);
}
}
}

方式二、设置数据收集开关

SDK版本需在 2.9.12及以上。如果配置有AppLink,则在enableDataCollect 之后可用
GrowingIO SDK 提供 disableDataCollect 接口,可在用户不同意隐私协议时,调用该接口, 禁止数据采集;在用户同意隐私协议时,调用 enableDataCollect 接口, 开启数据采集。若希望在开启数据采集前禁止获取 AndroidID ,请在 SDK 初始化配置项中设置 .setAndroidIdEnable(false)
// Application 的 onCreate() 方法中主线程初始化 SDK
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化配置
Configuration configuration = new Configuration();
// 其它初始化配置如是否开启ebug等
...
// 根据数据采集开关判断
if (<未同意隐私协议>) {
configuration.disableDataCollect();
}
// 初始化SDK
GrowingIO.startWithConfiguration(application, configuration);
}
}
// 同意数据采集后,开启数据发送
GrowingIO.getInstance().enableDataCollect();

其他说明

集成OAID SDK

具体可以参考 采集OAID作为设备信息

关于 Google Play

如您的 App 需要在 Google Play 分发,请参照 Google Play 相关政策 - Google Play 政策中心-用户数据帮助说明。 具体合规步骤同上文所述一致。
符合Google paly 相关政策的SDK版本 在2.9.4 及以上

关于 GDPR

关于禁用 AndroidId

GrowingIO SDK在采集 设备标识 时,会默认采集 AndroidId,有一定的合规风险,但是考虑采集的准确性,GrowingIO 仍然提供 AndroidId 的采集方法。
如果您需要禁止采集 AndroidId,请配置Configuration
.setAndroidIdEnable(false);
无埋点版本SDK可以通过gradle配置关闭AndroidId采集
growingio {
defaultConfig {
androidIdEnable f​alse
}
}

关于禁用 IMEI

在使用渠道追踪功能时,GrowingIO SDK会使用到 IMEI。
如果您需要禁止采集 IMEI,需要配置Configuration
.setImeiEnable(false);
无埋点版本SDK可以通过gradle配置关闭IMEI采集
growingio {
defaultConfig {
imeiEnable f​alse
}
}

关于禁用 GoogleAdId

在使用渠道追踪功能时,GrowingIO SDK会使用到 GoogleAdId。
如果您需要禁止采集 GoogleAdId,需要配置Configuration
.setGoogleAdIdEnable(false);
无埋点版本SDK可以通过gradle配置关闭GoogleAdId采集
growingio {
defaultConfig {
googleAdIdEnable f​alse
}
}

关于禁用 OAID

在使用渠道追踪功能时,会使用到 OAID。GrowingIO SDK 默认不采集 OAID。

关于禁用获取APP多进程信息

SDK版本需在 2.9.12及以上
GrowingIO SDK默认会获取app多进程信息,用于更准确的在不同进程共享数据。
如果您不希望 SDK 调用获取进程信息的敏感函数,例如 APP 需要隐私检查时,可在初始化时做如下设置
.setRequireAppProcessesEnabled(false);

常见问题

Q:延迟初始化之后,发现丢掉了部分事件

A:对于SDK初始化之前,或者开启数据采集之前发生的事件,一概丢弃。