用户运营SDK合规指南

用户运营SDK合规指南

更新时间:2024年03月21日

尊敬的开发者:

  为有效治理App强制授权、过度索权、超范围收集个人信息等现象,落实《网络安全法》《消费者权益保护法》的要求,保障个人信息安全,2019年1月,中央网信办、工信部、公安部、市场监管总局等四部委发布了《关于开展App违法违规收集使用个人信息专项治理的公告》,在全国范围组织开展App违法违规收集使用个人信息专项治理,并陆续出台完善了《App违法违规收集使用个人信息行为认定方法》、《GB/T 35273-2020 信息安全技术 个人信息安全规范》等标准规范。
  2020年以来,随着工信部纵深推进App专项整治行动,以及陆续检测通报App违规情况,监管部门、各行业参与方、终端用户都越来越关注App和SDK的安全问题。
  为帮助个推SDK的使用者们更清楚地了解监管要求、高效落实个人信息保护相关事宜,个推(公司全称:每日互动股份有限公司)特编写了《用户运营SDK合规指南》(以下简称“指南”),供开发者们参考。

一、App个人信息保护的合规要求

  App首先需制定一份《隐私政策》,并确保在产品界面中显著展示。《隐私政策》须单独成文,而不是作为用户协议、用户说明等文件中的一部分存在。App应在《隐私政策》中明示收集使用个人信息的目的、方式和范围,并确保《隐私政策》链接正常有效易于访问和阅读
  App应在《隐私政策》中将收集个人信息的业务功能以及每个业务功能所收集的个人信息类型进行逐项列举,不应使用“等、例如” 等方式概括说明;同时,App须对个人敏感信息类型进行显著标识(如字体加粗、标星号、下划线、斜体、颜色等)。如果通过嵌入第三方代码、插件等方式将个人信息传输至第三方服务器,应通过弹窗提示等方式明确告知用户。

二、App使用用户运营SDK时的合规指引

  1.您应确保在App首次运行时通过明显方式提示终端用户阅读您的《隐私政策》,并取得终端用户的合法授权后,再初始化SDK进行信息收集与处理。如果终端用户不同意您的隐私政策,则不能初始化个推的各项SDK,也无法使用相应SDK对应功能。
  如果您的App在终端用户首次运行时,需要注册用户账号才能使用,则可以在账号注册环节提示终端用户同意您的《隐私政策》,之后完成注册;如果您的App并不一定需要终端用户注册用户账号才能使用,那么如果终端用户不同意您的《隐私政策》,按照最新合规政策,您不应停止让终端用户使用您的App,仍需保留用户的基本使用权利。若终端用户将使用到需收集相关个人信息才能使用的功能(比如用户运营服务),可以再次提醒终端用户需要同意您的《隐私政策》才能正常使用相关功能,若终端用户仍不同意,则无法提供对应功能,可在终端用户下次需要使用时再提示同意您的《隐私政策》。

  2.用户运营SDK申请权限和使用场景:

OS 权限 何时场景 使用目的
Android INTERNET(必选) 网络通信 全生命周期网络通信
Android ACCESS_NETWORK_STATE(必选) 网络变化时,进行网络切换通信 查看网络状态,保障通信稳定
Android ACCESS_WIFI_STATE(必选) 查看wifi连接状态 wifi状态改变时,切换网络
Android BLUETOOTH(必选) 调用GTCID注册接口时,且用户授权蓝牙权限时 收集蓝牙信息,为您提供符合您的用户偏好的内容和服务
Android BLUETOOTH_ADMIN(必选) 调用GTCID注册接口时,且用户授权蓝牙权限时 收集蓝牙信息,为您提供符合您的用户偏好的内容和服务
Android ACCESS_BACKGROUND_LOCATION(必选) 调用GTCID注册接口时,且用户授权位置权限时 收集位置信息,为您提供符合您的用户偏好的内容和服务
Android ACCESS_FINE_LOCATION(必选) 调用GTCID注册接口时,且用户授权位置权限时 收集位置信息,为您提供符合您的用户偏好的内容和服务
Android ACCESS_COARSE_LOCATION(必选) 调用GTCID注册接口时,且用户授权位置权限时 收集位置信息,为您提供符合您的用户偏好的内容和服务
Android READ_PHONE_STATE(可选) 调用GTCID注册接口时 获取手机参数,并作为生成唯一用户标识的可选参数,生成唯一的客户端ID,即GTCID
IOS 网络访问权限(必选) 网络通信 全生命周期网络通信
IOS IDFA(必选) 调用GTCID注册接口时 并作为生成唯一用户标识的必要参数
IOS 定位(必选) 调用GTCID注册接口时 收集位置信息,为您提供符合您的用户偏好的内容和服务

  3.SDK基础功能及相关个人信息的配置说明::

OS 业务 相关个人信息 配置方式
Android 用户运营 (基础功能) 必选信息:设备平台、设备厂商、设备品牌、设备型号及系统版本、OAID、AndroidID、IP地址、基站信息、运营商信息、应用列表信息;
可选信息:IMEI、IMSI、MAC、Advertising ID、Serial Number、ICCID、GPS位置信息、WIFI连接信息
基础功能,可选个人信息配置见 4.SDK可选个人信息的配置说明
IOS 用户运营 (基础功能) 设备信息:IDFA、IDFV,网络信息(包含IP地址、WIFI信息、基站信息、运营商信息)及位置相关信息 基础功能、必要个人信息

  4.可选个人信息配置示例:

类型 配置方式
设备信息(imei) 开启和关闭收集imei示例说明: com.getui.gs.sdk.GsManager.getInstance().setImeiEnable(Context context, boolean enable) 参数:context:应用的 Context,enable:true 或者false,表示开启或关闭imei收集。
设置imei收集频次示例说明: com.getui.gs.sdk.GsManager.getInstance().setImeiInterval(Context context, int intervalTimeHour), 参数:context:应用的 Context,intervalTimeHour:范围24~168,如设置24小时,表示每24小时收集一次imei信息,用于用户运营基本功能
设备信息(imsi) 开启和关闭收集imsi示例说明: com.getui.gs.sdk.GsManager.getInstance().setImsiEnable(Context context, boolean enable) 参数:context:应用的 Context,enable:true 或者false,表示开启或关闭imsi收集。
设置imsi收集频次示例说明: com.getui.gs.sdk.GsManager.getInstance().setImsiInterval(Context context, int intervalTimeHour), 参数:context:应用的 Context,intervalTimeHour:范围24~168,如设置24小时,表示每24小时收集一次imsi信息,用于用户运营基本功能
设备信息(mac) 开启和关闭收集mac示例说明: com.getui.gs.sdk.GsManager.getInstance().setMacEnable(Context context, boolean enable) 参数:context:应用的 Context,enable:true 或者false,表示开启或关闭mac收集。
设置mac收集频次示例说明: com.getui.gs.sdk.GsManager.getInstance().setMacInterval(Context context, int intervalTimeHour), 参数:context:应用的 Context,intervalTimeHour:范围24~168,如设置24小时,表示每24小时收集一次mac信息,用于用户运营基本功能
设备信息(iccId) 开启和关闭收集iccId示例说明: com.getui.gs.sdk.GsManager.getInstance().setIccIdEnable(Context context, boolean enable) 参数:context:应用的 Context,enable:true 或者false,表示开启或关闭iccId收集。
设置mac收集频次示例说明: com.getui.gs.sdk.GsManager.getInstance().setIccidInterval(Context context, int intervalTime), 参数:context:应用的 Context,intervalTime:范围24~168,如设置24小时,表示每24小时收集一次iccId信息,用于用户运营基本功能
设备信息(serialNumber) 开启和关闭收集serialNumber示例说明: com.getui.gs.sdk.GsManager.getInstance().setSerialNumberEnable(Context context, boolean enable) 参数:context:应用的 Context,enable:true 或者false,表示开启或关闭setSerialNumberEnable收集。
设置setSerialNumberEnable收集频次示例说明: com.getui.gs.sdk.GsManager.getInstance().setSerialNumberInterval(Context context, int intervalTime), 参数:context:应用的 Context,intervalTime:范围24~168,如设置24小时,表示每24小时收集一次serialNumber信息,用于用户运营基本功能
设备信息(AdvertisingID) 开启和关闭收集AdvertisingID示例说明: com.getui.gs.sdk.GsManager.getInstance().setAdvertisingIdEnable(Context context, boolean enable) 参数:context:应用的 Context,enable:true 或者false,表示开启或关闭AdvertisingID收集。
设置AdvertisingID收集频次示例说明: com.getui.gs.sdk.GsManager.getInstance().setAdvertisingIdInterval(Context context, int intervalTime), 参数:context:应用的 Context,intervalTime:范围24~168,如设置24小时,表示每24小时收集一次AdvertisingID地址信息,用于用户运营基本功能
GPS位置信息 开启和关闭GPS位置信息收集示例说明: com.getui.gs.sdk.GsManager.getInstance().setLocationGPSEnable(Context context, boolean enable) 参数:context:应用的 Context,enable:true 或者false,表示开启或关闭GPS位置信息收集。
设置GPS收集频次示例说明: com.getui.gs.sdk.GsManager.getInstance().setLocationGPSInterval(Context context, int intervalTimeSec), 参数:context:应用的 Context,intervalTimeSec:范围5~1800,如设置5秒,表示每5秒收集一次GPS位置信息,用于用户运营基本功能
WIFI连接信息 开启和关闭WIFI连接信息收集示例说明: com.getui.gs.sdk.GsManager.getInstance().setWiFiInfoEnable(Context context, boolean enable) 参数:context:应用的 Context,enable:true 或者false,表示开启或关闭WIFI连接信息收集,用于用户运营基本功能

  5.为保证您的在集成用户运营SDK之后,能够满足工信部相关合规要求,您应确保在App安装后首次冷启动时按照如下方式进行初始化:

  5.1 Android相关启动流程

  • 在Applicaiton.onCreate函数中调用初始化方法GsManager.getInstance().preInit(),您务必确保用户同意《隐私政策》之后,再调用初始化方法,初始化方法不会收集用户信息,也不会向个推后台上报数据。
// SDK初始化方法
// preInit初始化方法耗时极少,不会影响App首次冷启动用户体验
public static void preInit(Context context)

示例
com.getui.gs.sdk.GsManager.getInstance().preInit(Context context);

  • 确保App首次冷启动时,在用户阅读您的《隐私政策》并取得用户授权之后,才调用GsManager.getInstance().init(Context context),注册gtcid,生成用户唯一标识,此时SDK才会真正收集用户信息(设备信息、应用相关信息、网络信息及位置相关信息)并上报数据。反之,如果用户不同意《隐私政策》授权,则不能调用GsManager.getInstance().init(Context context)方法。

  • 一旦App获取到《隐私政策》的用户授权,后续的App冷启动,开发者应该保证在Applicaiton.onCreate函数中调用初始化方法GsManager.getInstance().preInit(Context context)。注册gtcid方法GsManager.getInstance().init(Context context)可以按需调用(可以在初始化方法之后紧接着调用,也可以放到后台线程中延迟调用,但还是必须调用,保障用户运营SDK业务正常使用,不能遗漏)。

  • 其他API接口详情见:https://docs.getui.com/ido/mobile/android/api/

  • 当您不再需要使用用户运营SDK服务时,您可以调用GsManager.getInstance().close(Context context)关闭方法来停止用户运营SDK的服务,关闭后用户运营SDK服务将不能再为用户提供服务,也不再收集用户信息,您需要重新启动用户运营SDK服务时,请重新调用GsManager.getInstance().init(Context context初始化方法)和注册gtcid的GsManager.getInstance().init(Context context)方法。

  5.2 IOS相关启动流程

  • 为确保App在集成SDK之后,能够满足工信部相关合规要求,您应确保App首次冷启动时,在用户阅读您的《隐私政策》并取得用户授权之后,再初始化SDK,此时SDK才会真正收集用户信息(设备信息、网络信息)并上报。反之,如果用户不同意《隐私政策》授权,则不能调用初始化方法。
/// 初始化运营工具SDK
/// @param appId 开发者后台生成的 appId
/// @param channelId 渠道名称,默认为 'appstore'
+ (void)startSDKWithAppId:(NSString *)appId withChannelId:(NSString *)channelId;

  为帮助开发者高效制定隐私政策,个推针对不同细分领域的App整理输出了各个类型的App隐私政策模板,供开发者参考使用。

  模板下载地址https://docs.getui.com/templet

  同时,我们也建议您对接入的个推SDK版本进行更新,SDK下载地址https://docs.getui.com/download.html

  6.为保证您的App在集成用户运营SDK之后,能够满足工信部相关合规要求,您应确保征得最终用户同意后启动SDK,同意方式示例如下:

  6.1 要求内容:《SDK合规使用说明》应详细说明App获取最终用户授权同意的建议方式,其中需要取得最终用户单独同意的,应显著提示并给出示例。
  6.2 接入说明:App首次运行时应当有隐私弹窗,隐私弹窗中应公示简版隐私政策内容并附完整版隐私政策链接,并明确提示最终用户阅读并选择是否同意隐私政策;隐私弹窗应提供同意按钮和拒绝同意的按钮,并由最终用户主动选择。
  6.3 披露示例:
img
  6.4 为了能够正常使用用户运营SDK,您需在同意隐私弹框后,向终端用户动态申请位置权限,并说明申请位置权限的用途和目的,并由最终用户主动选择,终端用户同意位置权限后,正常初始化和使用用户运营SDK:

  7.在使用用户运营SDK产品时,开发者需在App《隐私政策》的 “与授权合作伙伴共享”条款中,将 个推的用户隐私政策 加入其中,并向终端用户逐一明示您嵌入的SDK收集使用个人信息的目的、方式和范围。

在APP自身隐私政策中添加用户运营SDK的隐私政策文本模版如下:

SDK名称 SDK厂商 合作目的 收集个人信息字段及用途 SDK隐私政策链接
用户运营SDK 每日互动股份有限公司 对数据进行多维度多指标统计分析、形成用户画像,进一步了解用户需求,帮助进行广告和相关服务的决策和建议,提升广告有效触达率。 安卓端处理的信息:
设备信息、网络信息、位置相关信息、应用列表信息:
(1)必选信息:设备平台、设备厂商、设备品牌、设备型号及系统版本、OAID、AndroidID、IP地址、基站信息、运营商信息、应用列表信息
(2)可选信息:IMEI、IMSI、MAC、Advertising ID、Serial Number、ICCID、GPS位置信息、WIFI连接信息
用于提供高质、稳定的数据统计、数据分析及画像生成、画像分析服务等基本服务并生成唯一的设备标识GTCID,有效识别设备和数据去重。
iOS端处理的信息:
(1)设备信息:设备识别码(IDFA、IDFV)将被用于生成唯一的用户标识,即GTCID。GTCID将被用于数据去重和不同维度的数据统计,可应用于广告流量分发等场景。设备平台、设备厂商及品牌、设备型号及系统版本、设备序列号有助于我们帮助开发者生成更丰富的画像,如分析不同用户的广告效果,并根据不同设备信息进行对应的适配,从而为您提供准确的产品服务。
(2)网络信息(包含IP地址、WIFI信息、基站信息、运营商信息)及位置相关信息:网络信息有助于我们帮助开发者判定网络状态,从而提供如仅在wifi下预加载内容的服务,减少移动流量的损耗;位置信息有助于我们帮助开发者提供更符合您偏好的内容和服务。
https://docs.getui.com/privacy

其他类型SDK及隐私政策模版样式可联系我们技术支持或商务进行确认。

  8.如果您和您的用户请求访问、更正、补充其用户信息,行使删除权,更改其授权同意的范围等,您可以查看《个推隐私政策》,或联系用户信息保护负责人邮箱support@getui.com的方式,向我们提出删除信息的请求。

三、合规文件指引

  为了更及时高效地落实合规要求,我们建议各位开发者充分了解现有以及陆续将发布的有关个人信息保护的法律、法规、政策、标准等,以下资料供您参考:

《GB/T 35273-2020信息安全技术 个人信息安全规范》

http://c.gb688.cn/bzgk/gb/showGb?type=online&hcno=4568F276E0F8346EB0FBA097AA0CE05E

《App违法违规收集使用个人信息行为认定方法》

http://www.cac.gov.cn/2019-12/27/c_1578986455686625.htm

《App违法违规收集使用个人信息自评估指南》

http://pip.tc260.org.cn/jbxt/privacy/detail/20190302114600934277

《网络安全标准实践指南—移动互联网应用程序(App)个人信息保护常见问题及处置指南》

https://www.tc260.org.cn/front/postDetail.html?id=20200918162332

《网络安全实践指南—移动互联网应用基本业务功能必要信息规范》

https://www.tc260.org.cn/front/postDetail.html?id=20190531230315

《网络安全标准实践指南—移动互联网应用程序(App)收集使用个人信息自评估指南(征求意见稿)》

https://www.tc260.org.cn/front/postDetail.html?id=20200319113609

《网络安全标准实践指南—移动互联网应用程序(App)个人信息安全防范指引(征求意见稿)》

https://www.tc260.org.cn/front/postDetail.html?id=20200330091643

《网络安全标准实践指南—移动互联网应用程序(App)系统权限申请使用指南》

https://www.tc260.org.cn/front/postDetail.html?id=20200918163359

《网络安全标准实践指南—移动互联网应用程序(App)中的第三方软件开发工具包(SDK)安全指引(征求意见稿)》

https://www.tc260.org.cn/front/postDetail.html?id=20200918155732



更多内容,您可点击查看《个推合规与安全指南》进一步了解。

如有任何问题,您可通过以下方式与我们联系:

电话:4006-808-606

邮箱:support@getui.com

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询