SDK合规使用指南

SDK合规使用指南

为帮助使用众简广告SDK的开发者(以下简称“您”)在符合个人信息保护相关法律法规、政策及标准的规定下合规接入、使用众简广告SDK,更好地落实用户个人信息保护相关要求,众简广告(以下简称"我们")特制定《众简广告SDK合规使用指南》,便于您使用过程中符合相应的合规要求。请您在接入、使用前,充分阅读和了解本文档内容。

您应遵守所有适用的个人信息保护相关的法律法规,保证和承诺就个人信息处理行为获得用户的授权同意,遵循最小必要原则,且应当采取有效的技术措施和组织措施确保个人信息安全。

接入/升级至满足监管新规的最新SDK版本

我们高度重视SDK的功能优化、个人信息安全和保护,将适时升级迭代SDK版本以提升产品的安全性和稳定性,确保符合相关法律法规及、监管及标准的最新合规要求。强烈建议您升级使用最新版本SDK,以便保障您正常使用SDK最新功能、避免因您更新不及时产生的不利影响(例如APP被通报或下架等)。

SDK更新后,我们会及时通过官网公告、站内信通知或其他适当的方式提醒您更新的内容,以便您及时了解SDK最新版本信息。

APP隐私政策中应披露众简广告SDK相关情况

请确保您开发或运营的APP配备了符合监管要求的《隐私政策》文本。请务必明确告知终端用户您的App集成了众简广告SDK服务。您应在《隐私政策》中添加关于本SDK收集使用个人信息的目的、方式和范围等,并显示本SDK的开发运营者名称及隐私政策链接。

您应在 APP 登录注册页面及 APP 首次运行时,通过弹窗、文本链接及附件等简洁明显且易于访问的方式,应当以清晰易懂的语言告知用户《隐私政策》,由用户在充分知情的前提下,作出自愿明确的意思表示。

我们提供以下告知文案示例供您参考,您可以通过文字或表格方式向用户告知。请您理解SDK不同版本提供的功能服务及所需的字段信息可能会因开发者的选择或配置不同而存在差异,因此请您参考SDK隐私政策及您实际接入使用的SDK运行情况向用户进行充分告知并获得用户的同意。 建议内容如下:

我们的产品集成第三方的SDK,我们会向集成的SDK共享您的信息,具体信息内容、使用目的等详见【下表】:

SDK名称合作方主体个人信息字段与类型用途和目的使用场景SDK隐私协议

众简广告SDK

杭州众简信息技术有限公司

基础信息
必要信息:
【双端】设备品牌、设备生产商、设备型号、软件系统版本、网络类型(例:Wifi/2G/3G/4G/5G)、sim卡信息(mcc&mnc)、user_agent信息、屏幕尺寸信息、软件系统版本
【仅iOS】访问钥匙串、系统更新时间、国家代码、手机硬盘容量大小、手机内存大小、手机系统名称、设备名称、系统更新标识、系统重启时间、设备初始化时间、系统启动时间、系统启动标识、使用加速度计

广告投放及广告监测归因、反作弊

在进行广告投放和广告投放效果分析时使用http://hzzhongjian.cn/privacy_policy_zhongjian_sdk.html
设备标识
可选信息:
【仅Android】设备标识符(如IMEI、AndroidID、OAID)
【仅iOS】IDFA、IDFV

广告投放及广告反作弊。
其中,IMEI、OAID、AndroidID 还会用于广告监测归因。

应用信息
必要信息:
【双端】宿主应用的版本号、包名、应用名
可选信息:
【仅Android】运行中的进程信息

广告定向投放、广告归因、反作弊

广告信息
必要信息:
【双端】操作记录、点击、展示、转化等交互数据

广告归因、反作弊

其他集成的第三方广告SDK信息,请参照《隐私政策》进行披露

SDK申请系统权限的配置说明

对于众简广告SDK可选申请的系统权限,开发者可以参考相关如下表格的内容,详细了解相关权限与各业务功能的关系及其申请时机。因相关权限的不申请将会对其对应的功能造成影响,请开发者结合业务实际需要进行合理配置。详见对接文档。

权限功能用途和目的缺失导致问题申请时机
READ_PHONE_STATE
读取电话状态(设备 IMEI 号)
【可选】读取手机设备标识等信息广告投放及广告监测归因、反作弊无法获取设备标识IMEI,影响广告填充率和广告效果开发者在调用需要该权限的SDK功能时进行调用。例如进行广告投放、监测归因与反作弊。
ACCESS_NETWORK_STATE
访问网络状态
【可选】通过网络请求广告数据及上报信息,根据不同网络执行不同的广告填充策略进行广告投放无法获取网络状况,严重影响视频广告填充率和播放效果开发者在调用需要该权限的SDK功能时进行调用。例如进行广告投放。
QUERY_ALL_PACKAGES
应用软件列表
【可选】获取应用软件列表广告投放、反作弊无法获取已安装应用列表,严重影响广告填充率开发者在调用需要该权限的SDK功能时进行调用。例如根据应用软件列表情况进行广告投放、广告反作弊。
INTERNET
访问网络
【必选】通过网络请求广告数据及上报信息进行广告投放及广告监测归因、反作弊无法访问网络,拉取不到广告开发者在调用需要该权限的SDK功能时进行调用。例如进行广告投放、监测归因与反作弊。
权限功能用途和目的缺失导致问题申请时机
NSUserTrackingUsageDescription【可选】获取设备标识,以识别设备信息进行广告投放及反作弊影响广告填充和定向推荐效果开发者在调用需要该权限的SDK功能时进行调用。例如进行广告投放、监测归因与反作弊。
App Transport Security Settings【必选】允许应用访问 http 协议链接进行广告投放及广告监测归因、反作弊无法访问网络,拉取不到广告开发者在调用需要该权限的SDK功能时进行调用。例如进行广告投放、监测归因与反作弊。

SDK 个人信息收集频次、精度说明

我们将根据业务功能实现之最⼩必要进⾏⽤户个⼈信息的收集。收集频次⽅⾯,众简广告SDK的数据采集仅在 APP 调⽤相关功能时触发,关于频次 APP 开发者不可⾃⾏配置,故我们对频次不对外提供可选择的配置⽅式。

获得用户同意后再初始化SDK

为满足法律法规及监管要求,您应确保在获得用户的同意后再初始化SDK,并在用户触发SDK具体功能服务后通过配置SDK的相关参数完成发送请求的调用,此时SDK才会按照您设置的配置方式采集功能所需的个人信息或申请功能所需的权限。

可选信息配置开关

众简广告SDK向您提供了可选个人信息及权限的控制开关,您可以根据APP所需的SDK功能服务自行配置打开或关闭隐私信息请求开关。如您关闭可选信息的采集, 将会影响您使用众简广告SDK部分功能的实现和效果,但不会影响广告基本功能的实现,请开发者结合业务实际需要进行合理配置。

配置可选权限

请您注意,SDK不强制获取可选权限,即使没有获取可选权限,SDK提供的基本功能也能正常运行。您可以配置可选权限,以便使用SDK提供的其他可选功能。建议调用请求前在合适的时机调用SDK提供的方法,在用户授权的情况下获取声明中的权限:

Android详细可选权限信息请访问: Android-隐私控制

iOS详细可选权限信息请访问: iOS-隐私控制

配置可选个人信息

请您注意,SDK不强制获取可选个人信息,即使没有获取可选参数,SDK提供的基本功能也能正常运行。您可以配置可选参数,以便使用SDK提供更全面的服务。建议调用请求前在合适的时机调用SDK提供的方法,在用户授权的情况下获取声明中的参数信息。

可选个人信息个人采集目的配置方式
设备信息(IMEI)用于生成脱敏的终端用户设备标识,统计用户和个性化广告推荐

在初始化前调用 ZjCustomController.getInstance().setCustomController(ZjCustomController.Controller controller) 传入自定义的Controller对象,并重写 boolean canUsePhoneState() 方法
返回 true 表示允许采集, 返回 false 表示禁止采集

设备信息(AndroidID)用于生成脱敏的终端用户设备标识,统计用户和个性化广告推荐

在初始化前调用 ZjCustomController.getInstance().setCustomController(ZjCustomController.Controller controller) 传入自定义的Controller对象,并重写 boolean canUseAndroidId() 方法
返回 true 表示允许采集, 返回 false 表示禁止采集

设备信息(OAID)用于生成脱敏的终端用户设备标识,统计用户和个性化广告推荐

在初始化前调用 ZjCustomController.getInstance().setCustomController(ZjCustomController.Controller controller) 传入自定义的Controller对象,并重写 boolean canUseOaid() 方法
返回 true 表示允许采集, 返回 false 表示禁止采集

配置可选基础信息

请您注意,SDK不强制获取基础信息,即使没有获取可选参数,SDK提供的基本功能也能正常运行。您可以配置可选参数,以便使用SDK提供更全面的服务。建议调用请求前在合适的时机调用SDK提供的方法,在用户授权的情况下获取声明中的参数信息。

可选基础信息采集目的配置方式
宿主应用名用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadAppName",是否允许主动获取宿主应用名,"0"->允许,其他值->不允许
宿主包名用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadPackageName",是否允许主动获取宿主包名,"0"->允许,其他值->不允许
宿主版本信息用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadAppVersion",是否允许主动获取宿主版本信息,"0"->允许,其他值->不允许
Build.MODEL用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadModel",是否允许主动获取Build.MODEL,"0"->允许,其他值->不允许;
"model",传入外部已获取的Build.MODEL值
Build.BRAND用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadBrand",是否允许主动获取Build.BRAND"0"->允许,其他值->不允许;
"brand",传入外部已获取的Build.BRAND值
Build.VERSION.RELEASE用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadVersionRelease",是否允许主动获取Build.VERSION.RELEASE"0"->允许,其他值->不允许;
"versionRelease",传入外部已获取的Build.VERSION.RELEASE值
Build.MANUFACTURER用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadManufacturer",是否允许主动获取Build.MANUFACTURER"0"->允许,其他值->不允许;
"manufacturer",传入外部已获取的Build.MANUFACTURER值
Build.PRODUCT用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadProduct",是否允许主动获取Build.PRODUCT"0"->允许,其他值->不允许;
"product",传入外部已获取的Build.PRODUCT值
Build.DEVICE用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadDevice",是否允许主动获取Build.DEVICE"0"->允许,其他值->不允许;
"device",传入外部已获取的Build.DEVICE
Build.BOARD用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadBoard",是否允许主动获取Build.BOARD"0"->允许,其他值->不允许;
"board",传入外部已获取的Build.BOARD
Build.HARDWARE用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadHardware",是否允许主动获取Build.HARDWARE"0"->允许,其他值->不允许;
"hardware",传入外部已获取的Build.HARDWARE
Build.DISPLAY用于广告定向投放、广告归因、反作弊在初始化前调用 ZjCustomController.getInstance().setExtraUserData(Map<String,String> extraUserData)方法,传入以下key和值:
"canReadDisplay",是否允许主动获取Build.DISPLAY"0"->允许,其他值->不允许;
"display",传入外部已获取的Build.DISPLAY

SDK扩展功能配置

SDK向您提供了扩展功能的控制开关,您可以根据APP所需的SDK功能服务自行配置打开或关闭。 请您注意,SDK不强制App使用该扩展功能,即使没有获取该功能,SDK提供的基本功能也能正常运行。 扩展功能如下:

  1. 接口名称:ZjSdk#setCurrProcessName(String processName);
  2. 功能说明:设置当前主进程名 此接口为通知SDK当前应用的主进程名,未调用时SDK会默认获取当前应用的主进程名,以拒绝子进程中的无效初始化方法调用。配置后SDK将以传入的进程名作为判断依据,不再主动调用系统方法获取应用的主进程名
  3. 调用示例:以java语言为例
// 获取主进程名
String mainProcessName = BuildConfig.APPLICATION_ID;
// 为SDK配置主进程名后,Build.VERSION.SDK_INT<Build.VERSION_CODES.P时
// SDK不会再主动调用ActivityManager#getRunningAppProcesses()方法
ZjSdk.setCurrProcessName(mainProcessName);

SDK使用时的其余必要合规保证

请确保您在使用SDK时,严格遵守下述必要合规性要求,包括但不限于“广告一键关闭”、“广告元素展示”、“下载类广告必要信息”、“个性化广告关闭功能”等;我们也会及时同步更新其余必要合规性要求。

合规事项
标准要求
接入指南
广告一键关闭功能App在向用户展示广告和信息弹窗,或者用户在浏览广告和信息弹窗过程中,都需要存在“关闭 X”或者“跳过”按钮,并且点击后立即关闭广告展示。

Android
1. 开屏广告:
应实现 com.zj.zjsdk.api.v2.splash.ZJSplashAdInteractionListener#onSplashAdClose() 的回调,当用户点击跳过按钮时此方法被调用,需要在布局中移除本条广告。
2. 模板信息流广告:
应实现 com.zj.zjsdk.api.v2.express.ZJNativeExpressAdInteractionListener#onNativeExpressAdClose() 的回调,当用户点击关闭按钮时此方法被调用,需要在布局中移除本条广告。
3. 视频贴片广告:
应实现 com.zj.zjsdk.api.v2.movie.ZJMovieInteractionListener#onMovieAdClose() 的回调,当用户点击关闭或跳过按钮时此方法被调用,需要在布局中移除本条广告。
4. 自渲染广告:
需要开发者自行渲染关闭按钮,当关闭点击发生时,将本条广告在布局中移除。
5. 其它广告样式:
其他广告样式均已由 SDK 实现广告一键关闭功能,不需要开发者实现。

iOS
1. 开屏广告:
应实现ZJSplashAd#zj_splashAdClosed的回调,当用户点击跳过按钮时此方法被调用,需要在布局中移除本条广告。
2. 模板信息流广告:
应实现ZJNativeExpressFeedAdManager#ZJ_nativeExpressFeedAdDislike的回调,当用户点击关闭按钮时此方法被调用,需要在布局中移除本条广告。
3. 自渲染广告:
需要开发者自行渲染关闭按钮,当关闭点击发生时,将本条广告在布局中移除。
4. 其它广告样式:
其他广告样式均已由 SDK 实现广告一键关闭功能,不需要开发者实现。

自渲染广告需配置明确的广告标识、保证广告内容和广告样式合法合规。通过程序化购买广告方式发布的互联网广告,应当清晰标明广告来源。广告内容应符合《广告法》等法律法规的规定和政策要求。

Android
1. SDK所有广告形态均自带广告标识,开发者无需额外操作,请勿使用任何技术手段修改、删除广告标识,包括但不限于广告标识的大小、位置、颜色等,否则由此带来的后果,由开发者自己负责。
2. 开发者不得自行更改、调整SDK提供的广告内容和广告样式,包括但不限于重叠展示广告、更改广告元素、调整点击热区范围、配置虚假按钮等可能影响用户体验、诱导用户点击的所有违规行为,否则由此带来的后果,由开发者自己负责。
3. 自渲染广告提供获取来源信息的文案、标识接口,开发者可以在获取成功时自行渲染,详见自渲染广告-来源信息说明

iOS
1. SDK所有广告形态均自带广告标识,开发者无需额外操作,请勿使用任何技术手段修改、删除广告标识,包括但不限于广告标识的大小、位置、颜色等,否则由此带来的后果,由开发者自己负责。
2. 开发者不得自行更改、调整SDK提供的广告内容和广告样式,包括但不限于重叠展示广告、更改广告元素、调整点击热区范围、配置虚假按钮等可能影响用户体验、诱导用户点击的所有违规行为,否则由此带来的后果,由开发者自己负责。
3. 自渲染广告提供获取来源信息的文案、标识接口,开发者可以在获取成功时自行渲染,详见自渲染广告-来源信息说明

接入应用下载广告和开屏广告等需满足相应的合规要求APP在用户终端弹出广告或者其他与终端软件功能无关的信息窗口的,应当以显著的方式向用户提供关闭或者退出窗口的功能标识,不得欺骗误导强迫下载、安装、使用 APP。

1. 合规要素说明:
iOS端不涉及
Android端请升级 SDK 至最新版本,其中自渲染广告,请在用户下载应用之前,向用户明示待下载应用的名称、开发者、应用包大小、隐私政策、权限列表、版本等信息,获取方式为:
应用名称:ZJNativeAd#getComplianceInfo()#getAppName()
开发者:ZJNativeAd#getComplianceInfo()getAppDeveloperName()
应用包大小:ZJNativeAd#getComplianceInfo()#getPackageSizeBytes()
权限列表:ZJNativeAd#getComplianceInfo()#getAppPermissionsUrl()
隐私协议:ZJNativeAd#getComplianceInfo()#getAppPrivacyUrl()
版本:ZJNativeAd#getComplianceInfo()#getAppVersion()
其他合规信息详见自渲染广告-下载六要素说明

2. 若开发者展示SDK提供的广告内容,应合规展示SDK提供的应用下载广告、开屏广告的广告内容、样式等合规配置,或按照SDK不时通知或更新的平台规则进行广告合规配置,开发者不应自行更改、调整SDK的合规配置,否则由此带来的后果,由开发者自己负责。

个性化广告关闭功能开发者应遵循法律法规要求,在客户端为用户创建可便捷查找的个性化广告关闭按钮,并保证用户点击关闭按钮后调用SDK关闭能力接口,保证个性化广告关闭功能真实有效。

Android
ZjSdk.setPersonalizedState(int state);
SDK获取用户设备是否关闭个性化推荐广告信息的接口,如传入值为1,则在后续的程序化广告推荐策略中将关闭个性化推荐能力。
1: 屏蔽个性化推荐广告
0和所有非1的值:不屏蔽个性化推荐广告

iOS
ZJAdSDK#+ (void)persionalizedState:(ZJSDKPersionalizedState)persionalizedState;
SDK获取用户设备是否关闭个性化推荐广告信息的接口,在SDK初始化方法之前调用,如传入值为ZJSDKProgrammaticRecommend_OFF,则在后续的程序化广告推荐策略中将关闭个性化推荐能力。
ZJSDKProgrammaticRecommend_OFF: 屏蔽个性化推荐广告
ZJSDKProgrammaticRecommend_ON:不屏蔽个性化推荐广告

SDK Demo 的使用说明

为了帮助您快速了解、体验SDK功能,我们向您提供SDK Demo,仅供您参考,不做为正式产品。

请您理解,由于Demo运行方式与正式App运行方式有所差异,为实现Demo正常运行以便向您提供尽可能全面的SDK功能体验,我们在Demo中引用了部分依赖库,且仅限于在Demo场景下使用。当您接入正式SDK产品时请按照SDK正式集成文档进行操作。

注意事项

  1. 您接入SDK前的合规自查
    为确保您就本SDK的使用获得终端用户的授权,且遵守个人信息保护要求和合规流程,我们建议您在接入SDK前进行合规自查。
    1)请仔细阅读并按本说明文档提示对您APP的《隐私政策》进行合规自查。
    2)请务必做延迟初始化配置,确保获得用户同意后再初始化SDK。
    3)当SDK基于最新的法律法规或监管要求进行更新后,请您在收到版本更新通知时及时将您APP集成的SDK升级到最新版本。
    4)其他国家相关法律法规、监管政策及标准的要求。
  2. 以下合规文件供开发者参考
    (1)《个人信息保护法》open in new window
    (2)《工业和信息化部关于进一步提升移动互联网应用服务能力的通知》open in new window
    (3)《工业和信息化部关于开展信息通信服务感知提升行动的通知》open in new window
    (4)《工业和信息化部关于开展纵深推进APP侵害用户权益专项整治行动的通知》open in new window
    (5)《工业和信息化部关于开展APP侵害用户权益专项整治工作的通知》open in new window
    (6)《App违法违规收集使用个人信息行为认定方法》open in new window
    (7)《网络安全标准实践指南—移动互联网应用程序(App)收集使用个人信息自评估指南》open in new window
    (8)《常见类型移动互联网应用程序必要个人信息范围规定》open in new window
    (9)《GB/T 35273-2020信息安全技术 个人信息安全规范》open in new window
    (10)《网络安全标准实践指南—移动互联网应用程序(App)使用软件开发工具包(SDK)安全指引》open in new window
    (11)《网络安全标准实践指南—移动互联网应用程序(App)系统权限申请使用指南》open in new window