TapSDK 合规使用说明
更新日期:2024 年 8 月 23 日
生效日期:2024 年 8 月 23 日
易玩(上海)网络科技有限公司(以下简称 “TapTap” 或“我们”)将通过本文档向开发者和其用户介绍 TapSDK 的标准使用方式以及相关建议。
一、TapSDK 数据收集合规步骤
TapSDK 提供延迟初始化的方式来满足合规。开发者应在用户同意 《隐私政策》后,初始化 SDK 进行数据收集。具体参考如下步骤:
if(未同意隐私协议){
//展示隐私协议弹窗相关逻辑
if(用户同意隐私协议){
TapTapSdk.init(context, sdkOptions);
}
}else{
TapTapSdk.init(context, sdkOptions);
}
二、TapSDK 基本业务功能
业务功能介绍:由于开发者可以根据自身需求接入 TapSDK 的任意功能,因此根据定义,无基本业务功能。
三、TapSDK 扩展业务功能
1. 更新唤起
- 功能介绍
更新唤起服务主要应用于在 TapTap 国内商店分发的游戏包体更新场景。
- 合规调用时机
玩家打开游戏后对该功能进行初始化和调用。
- 需要权限
权限 | 使用目的 | 权限申请时机 |
---|---|---|
网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 |
安装 APK 权限 | 用于安装 TapTap 客户端 | 用户首次使用该功能时会申请权限 |
- 关闭功能的配置方式
若要关闭,可在app目录build.gradle中移除对该功能的依赖(详见文档),示例如下:
// implementation("com.taptap.sdk:tap-update:latest")
- 必要个人信息
必要个人信息 | 使用目的 | 场景 | 收集频次 |
---|---|---|---|
系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 显示及UI 交互时触发一次 |
设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 显示及UI 交互时触发一次 |
设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 显示及UI 交互时触发一次 |
网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 初始化及用户发起授权时获取一次 |
设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备指定应用信息 | 获取当前已安装 TapTap 客户端信息 | 当设备未安装时,引导用户完成 TapTap 客户端 | 每次应用冷启动获取一次 |
- 可选个人信息
无
2. TapTap 登录
- 功能介绍
提供 TapTap 登录方式,玩家可以通过 TapTap 授权快速开始游戏。
- 合规调用时机
玩家点击「TapTap 登录」按钮时进行初始化和调用。
- 需要权限
权限 | 使用目的 | 权限申请时机 |
---|---|---|
网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 |
- 关闭功能的配置方式
若要关闭,可在app目录build.gradle中移除对该功能的依赖(详见文档),示例如下:
// implementation("com.taptap.sdk:tap-login:latest")
- 必要个人信息
必要个人信息 | 使用目的 | 场景 | 收集频次 |
---|---|---|---|
系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 初始化及用户发起授权时获取一次 |
设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
- 可选个人信息
无
3. 合规认证
- 功能介绍
基于 TapTap 账号的快速实名认证功能,对使用 TapTap 账号登录游戏的玩家,在经过玩家同意授权之后,允许玩家使用在 TapTap 里已经通过国家认证的实名信息快速完成游戏中的认证流程。
- 合规调用时机
玩家实名认证或游戏检查当前登录用户是否合规时进行初始化和调用。
- 需要权限
权限 | 使用目的 | 权限申请时机 |
---|---|---|
网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 |
获取网络状态 | 用于检测当前网络连接是否有效 | 用户首次使用该功能时会申请权限 |
- 关闭功能的配置方式
若要关闭,可在app目录build.gradle中移除对该功能的依赖(详见文档),示例如下:
// implementation("com.taptap.sdk:tap-compliance:latest")
- 必要个人信息
必要个人信息 | 使用目的 | 场景 | 收集频次 |
---|---|---|---|
系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 初始化及用户发起授权时获取一次 |
设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
- 可选个人信息
无
4. 正版验证、DLC
- 功能介绍
TapTap 的正版验证服务适用于付费下载的游戏,当玩家在使用付费游戏时,校验玩家是否已经成功购买付费游戏。 TapTap 开发者服务,支持付费的可下载内容(DLC),让玩家不离开游戏便能浏览、购买、拥有新内容。
- 合规调用时机
玩家使用游戏内购及触发游戏版本验证时。
- 关闭功能的配置方式
若要关闭,可在app目录build.gradle中移除对该功能的依赖(详见文档),示例如下:
// implementation("com.taptap.sdk:tap-license:latest")
- 必要个人信息
必要个人信息 | 使用目的 | 场景 | 收集频次 |
---|---|---|---|
系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 初始化及用户发起授权时获取一次 |
设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备指定应用信息 | 获取已安装的 TapTap 客户端信息 | 使用 TapTap 客户端完成游戏版本验证及内购 | 在该功能调用对应版本验证及付费时配置 |
- 可选个人信息
无
5. 内嵌动态
- 功能介绍
玩家可以在游戏内访问 TapTap 的社区论坛(官方公告、游戏攻略、问题反馈、热门话题等),同时也可以看到 TapTap 好友的游戏动态,并参与其他玩家、官方和大神之间的互动。
- 合规调用时机
玩家打开内嵌动态或者开始接收动态通知时进行初始化和调用。
- 需要权限
权限 | 使用目的 | 权限申请时机 |
---|---|---|
系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 |
获取网络状态 | 用于检测当前网络连接是否有效 | 用户首次使用该功能时会申请权限 |
读写存储权限 | 用于发布或下载动态页面内图片、视频 | 下载或使用本地图片发布动态时申请 |
- 关闭功能的配置方式
默认初始化。若要关闭,可在app目录build.gradle中移除对该功能的依赖(详见文档),示例如下:
// implementation("com.taptap.sdk:tap-moment:latest")
- 必要个人信息
必要个人信息 | 使用目的 | 场景 | 收集频次 |
---|---|---|---|
系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 初始化及用户发起授权时获取一次 |
设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
手机样式 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 展示动态页面时获取一次 |
- 可选个人信息
无
6. 成就系统
- 功能介绍
可以在游戏中设置「普通成就」和「白金成就」,增加玩家在游戏中的参与度,鼓励玩家以不同的玩法来玩游戏。
- 合规调用时机
玩家查看游戏成就时进行初始化和调用。
- 需要权限
权限 | 使用目的 | 权限申请时机 |
---|---|---|
系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 |
网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 |
- 关闭功能的配置方式
默认初始化。若要关闭,可在app目录build.gradle中移除对该功能的依赖(详见文档),示例如下:
// implementation("com.taptap.sdk:tap-achievement:latest")
- 必要个人信息
必要个人信息 | 使用目的 | 场景 | 收集频次 |
---|---|---|---|
设备名称 | 用于本地数据加密处理 | 保障用户数据在本地的安全性 | 仅在首次使用时收集一次 |
- 可选个人信息
无
7. 数据分析
- 功能介绍
提供了一套专注于解决游戏项目数据需求的分析工具,通过简单的接入就可以获得丰富实用的数据看板和广告追踪能力,让数据分析和广告投放变得轻松易操作,同时也可以用于分析人群画像,帮助开发者更好地理解用户。
- 合规调用时机
玩家触发开发者配置的事件时进行初始化和调用。
- 需要权限
权限 | 使用目的 | 权限申请时机 |
---|---|---|
网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 |
获取网络状态 | 用于检测当前网络连接是否有效 | 用户首次使用该功能时会申请权限 |
读写存储权限(可选) | 用于存储用户标识 | 开发者根据业务需求选择是否需要申请 |
读取电话状态(可选) | 获取移动端设备网络类型 | 开发者根据业务需求选择是否需要申请 |
开发者如果不需要上述可选权限,无需额外处理,SDK 不会主动申请;当开发者需要时,需在工程中添加如下:
//检查及申请权限
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[] { Manifest.permission.READ_PHONE_STATE }, READ_PHONE_STATE_PERMISSION_CODE);
}
// 接收授权结果回调
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == READ_PHONE_STATE_PERMISSION_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户授权
} else {
// 用户拒绝授权
}
}
}
- 必要个人信息
必要个人信息 | 使用目的 | 场景 | 收集频次 |
---|---|---|---|
系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 初始化及用户发起授权时获取一次 |
设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
WiFi 信息 | 供开发者进行数据分析,是业务需求之一 | 开发者可根据该信息来进行数据分析 | 应用冷启动获取一次 |
设备版本 | 供开发者进行数据分析,是业务需求之一 | 开发者可根据该信息来进行数据分析 | 应用冷启动获取一次 |
手机样式 | 供开发者进行数据分析,是业务需求之一 | 开发者可根据该信息来进行数据分析 | 应用冷启动获取一次 |
传感器列表 | 供开发者进行数据分析,是业务需求之一 | 开发者可根据该信息来进行数据分析 | 应用冷启动获取一次 |
- 可选个人信息
无
四、向最终用户披露 TapSDK 条款
在接入TapSDK 后,开发者应当向最终用户披露 TapSDK 条款,具体建议如下:
- 在用户同意游戏的《隐私协议》后再进行 TapSDK 初始化
- 在隐私协议中披露接入 TapSDK 的情况
名称:TapSDK
公司名称:易玩(上海)网络科技有限公司
收集个人信息类型:网络状态、WiFi 信息、设备版本、系统版本、设备型号、操作系统等
使用目的:TapTap 登录、合规认证、正版验证等
隐私政策链接:TapSDK 隐私政策 | TapTap 开发者文档
示例:TapTap 在隐私协议中披露使用的第三方 SDK 清单。
- 在申请具体权限前,向用户说明需要权限的具体原因(需提供同意和拒绝按钮 ),当用户同意后,再请求系统权限。示例: