基调 听云用户体验监控 SDK 合规配置
升级最新 SDK
请务必确保您已经将【基调听云用户体验监控 SDK】升级到满足监管新规的最新版本。
SDK 个人信息收集说明
接入说明:为了更好的协助运维研发人员分析真实用户使用 App 的过程中遇到的崩溃、卡顿、网络异常等影响使用体验的问题,SDK 会在您使用移动 App 的过程中自动收集一些基础信息,具体如下:
【必要信息】
| 客户端 SDK | 个人信息类型 | 收集目的 |
| Android SDK | 设备信息:设备型号、设备生产厂商、操作系统名称、操作系统版本、磁盘使用情况、内存使用情况、CPU 信息(型号、架构、使用率)、电池电量、电池温度、是否 Root、网络流量、屏幕分辨率 应用信息:应用名称、应用包名、应用版本、应用UI朝向、应用渠道ID 系统和网络信息:网络类型、网络连接类型、运营商名称、服务器IP地址 | 获取应用在终端设备上的性能数据并对其进行统计分析 |
| iOS SDK | 设备信息:设备型号、设备生产厂商、操作系统名称、操作系统版本、磁盘使用情况、内存使用情况、CPU 信息(架构、使用率)、是否越狱、网络流量、屏幕分辨率、电池电量 应用信息:应用名称、应用包名 、应用版本、应用UI朝向、应用渠道ID 系统和网络信息:网络类型、网络连接类型、运营商名称、服务器IP地址 | |
| Harmony SDK | 设备信息:操作系统名称、网络流量、电池电量 应用信息:应用名称、应用包名、应用版本、应用UI朝向 系统和网络信息:网络类型、网络连接类型、服务器IP地址 | |
| WEB SDK | 设备信息:浏览器、操作系统、屏幕分辨率、user agent、网络流量 应用信息:应用版本、应用程序包名称 系统和网络信息:IP地址、localstorage、session数据、运营商信息 | |
| 小程序 SDK | 设备信息:设备品牌、设备型号、操作系统、屏幕分辨率 应用信息:应用版本、应用程序包名称、微信版本、微信SDK版本 系统和网络信息:IP地址、storage、session数据、运营商信息 |
【可选信息】您可以根据实际需要,是否允许【基调听云用户体验监控 SDK】收集。
| 客户端 SDK | 个人信息类型 | 收集目的 |
| Harmony SDK | 用户ID、设备型号、设备生产厂商、操作系统版本、屏幕分辨率、运营商名称、位置信息(默认不采集) | 数据过滤 |
| Android SDK | 用户ID、OAID | 数据过滤 |
| iOS SDK | 用户ID | 数据过滤 |
| WEB SDK | 用户ID | 数据过滤 |
| 小程序 SDK | 用户ID | 数据过滤 |
SDK 可选个人信息配置说明
接入说明:对于【基调听云用户体验监控 SDK】可选收集的个人信息的控制,您可以参考相关接入文档的相关内容,详细了解因相关信息的不收集将会对其相应的功能造成影响,您可以结合业务实际需要进行合理配置。
Harmony SDK 可选个人信息收集配置
设备信息收集配置
以下信息默认情况下会开启采集;若因隐私合规问题需要关闭一些数据采集,可在初始化时关闭相应信息采集。
tingyun.init({
// ...其他配置
common: {
osVersionEnabled: false, // false为不采集操作系统版本
manufacturerEnabled: false, // false为不采集设备厂商
manufacturerModelEnabled: false, // false为不采集设备型号
carrierEnabled: false, // false为不采集运营商信息
displayResolutionEnabled: false // false为不采集屏幕分辨率
}
})
用户ID 配置
用户ID即用户标识;通过调用该接口添加「用户标识」可在基调听云报表平台通过该标识检索到具体用户的性能问题。
import tingyun from '@tingyun/sdk-core'
// 设置用户ID(<userId>为具体的用户ID)
tingyun.setUserId('<userId>')
位置信息配置
默认不采集,可通过调用接口设置经纬度以便获取设备地理位置信息。
import tingyun from '@tingyun/sdk-core'
//位置信息(<纬度>、<经度>为具体的值)
tingyun.setLatLon(<纬度>, <经度>)
Android SDK 可选个人信息收集配置
用户ID 配置
用户ID 即用户标识;通过调用该接口添加「用户标识」可在基调听云报表平台通过该标识检索到具体用户的性能问题。
/**
* @param userIdentifier 最多包含 256 个字符,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符
*/
NBSAppAgent.setUserIdentifier(String userIdentifier);
OAID 配置
OAID 即开放匿名设备标识符;通过调用该接口可以让 Android SDK 使用该标识符生成听云设备ID。
NBSAppAgent.setOaidData("oaid");
iOS SDK 可选个人信息收集配置
用户ID 配置
用户ID 即用户标识;通过调用该接口添加「用户标识」可在基调听云报表平台通过该标识检索到具体用户的性能问题。
/**
* 设置用户标识符,不能超过256个字符,可以在任意位置多次调用(值覆盖)
* @userId:唯一标识一个用户的信息
*/
+ (void)setUserIdentifier:(NSString *)userId;
WEB SDK 可选个人信息收集配置
用户ID配置
用户ID 即用户标识;通过调用该接口添加「用户标识」可在基调听云报表平台通过该标识检索到具体用户的性能问题。
localStorage.setItem('TY_USER_ID', 'user1');
小程序 SDK 可选个人信息收集配置
用户ID配置
用户ID 即用户标识;通过调用该接口添加「用户标识」可在基调听云报表平台通过该标识检索到具体用户的性能问题。
// userId:用户ID字符串。
// metaData:额外附加信息。
const monitor = require('./agent/tingyun-mp-agent.js');
monitor.setUser('userId', {
metaData: {
...
}
})
SDK 申请系统权限说明
接入说明:对于【基调听云用户体验监控 SDK】可选申请的系统权限,您可以参考如下表格内容,详细了解相关权限与业务功能的关系,因相关权限的不申请将会对其对应功能造成影响,您可以结合实际需求进行合理配置。
| Android 端应用权限列表 | |||
|---|---|---|---|
| 权限 | 是否可选 | 用途 | 申请时机 |
| android.permission.INTERNET | 必选 | 用于 SDK上 报性能数据及数据分析 | SDK 初始化时 |
| android.permission.ACCESS_NETWORK_STATE | 可选 | 用于获取当前设备的网络状态和WiFi状态,如:2G、3G、4G、WiFi,建议添加 | SDK 初始化时 |
| android.permission.READ_PHONE_STATE | 可选 | 用于获取 targentVersion 29 及以上 Android 10 设备的网络状态 | SDK 初始化时 |
| android.permission.SYSTEM_ALERT_WINDOW | 可选 | 用于使用「可视化操作命名功能」 | 启用 SDK 可视化功能时 |
| android.permission.SYSTEM_OVERLAY_WINDOW | 可选 | 用于使用「可视化操作命名功能」 | 启用 SDK 可视化功能时 |
| android.permission.ACCESS_COARSE_LOCATION | 可选 | 用于获取当前移动网络连接的基站信息 | 启用 SDK 业务功能时 |
| iOS 端应用权限列表 | |||
| 权限 | 是否可选 | 用途 | 申请时机 |
| 网络访问权限 | 必选 | 用于 SDK 上报性能数据及数据分析 | SDK 初始化时 |
| 本地网络访问权限 | 可选 | 用于 SDK 做 MTR 网络探测任务 | 启用 SDK MTR功能时 |
| Harmony 端应用权限列表 | |||
| 权限 | 是否可选 | 用途 | 申请时机 |
| ohos.permission.INTERNET | 必选 | SDK发送数据。不配置SDK无法启动 | SDK 初始化时 |
| ohos.permission.GET_NETWORK_INFO | 可选 | 获取网络连接信息。配置后可以获取网络类型和连接方式信息 | 启用 SDK 业务功能时 |
| ohos.permission.STORE_PERSISTENT_DATA | 可选 | 存储设备ID。配置后SDK可以更准确的获取到设备ID | 启用 SDK 业务功能时 |
SDK 隐私政策条款示例
您务必告知用户您选择【基调听云用户体验监控 SDK】服务,请在隐私政策中增加【基调听云用户体验监控 SDK】隐私政策条款。
【基调听云用户体验监控 SDK】隐私政策条款示例:
| 参数 | 示例 |
|---|---|
| SDK名称 | 基调听云用户体验监控 SDK |
| 收集个人信息 | 【Android必要信息】设备型号、设备生产厂商、操作系统名称、操作系统版本、磁盘使用情况、内存使用情况、CPU 信息(型号、架构、使用率)、电池电量、电池温度、是否 Root、网络流量、OAID(可选)、屏幕分辨率、应用名称、应用包名、应用版本、应用UI朝向、应用渠道ID、用户ID(可选)、网络类型、网络连接类型、运营商名称、服务器IP地址 【iOS必要信息】设备型号、设备生产厂商、操作系统名称、操作系统版本、磁盘使用情况、内存使用情况、CPU 信息(架构、使用率)、是否越狱、网络流量、屏幕分辨率、电池电量、应用名称、应用包名、应用版本、应用UI朝向、应用渠道ID、用户ID(可选)、网络类型、网络连接类型、运营商名称、服务器IP地址 【Harmony必要信息】设备信息:操作系统名称、网络流量、应用名称、应用包名、应用版本、应用UI朝向、网络类型、网络连接类型、服务器IP地址 【Harmony可选信息】用户ID、设备型号、设备生产厂商、操作系统版本、屏幕分辨率、运营商名称、位置信息 |
| SDK服务商 | 北京基调网络股份有限公司 |
| 使用目的 | 进行 App 性能统计与分析 |
| 隐私政策 | SDK隐私政策 |
最终用户同意方式示例
APP首次运行时应当有隐私弹窗,隐私弹窗中应公示简版隐私政策内容并附完整版隐私政策链接,并明确提示用户阅读并选择是否同意隐私政策;隐私弹窗应提供同意按钮和拒绝同意的按钮,并由最终用户主动选择。
隐私政策授权弹窗示例:

SDK 初始化时机
请务必在用户同意您 APP 中的隐私政策后,再进行【基调听云用户体验监控 SDK】的初始化; 用户同意隐私政策之前,避免动态申请涉及用户个人信息的敏感设备权限; 用户同意隐私政策前,您应避免私自采集和上报个人信息。 您可以按如下步骤进行【基调听云用户体验监控 SDK】初始化,初始化后【基调听云用户体验监控 SDK】会按照合规声明中的字段采集数据:
- 您应确保 App 安装后首次启动时,在用户同意隐私政策之后,才初始化【基调听云用户体验监控 SDK】 进行数据采集、上报。反之,如果用户不同意隐私政策,则不初始化【基调听云用户体验监控 SDK】。具体配置参考如下代码:
- iOS
- Android
- Harmony
/** 初始化 SDK
*@param appId 基调听云用户体验监控平台App唯一标识
*@param channelId 渠道ID,默认为AppStore
*/
+(void)startWithAppID:(NSString *)appId channelId:(NSString *)channelId;
// 初始化 SDK
// "Appkey" 请从基调听云用户体验监控平台获取
// "Host" 为基调听云用户体验监控平台「Redirect」服务器地址,无需添加协议头
// setStartOption(7) 设置首次启动开启网络、 用户体验、崩溃采集,仅首次启动生效
NBSAppAgent.setLicenseKey("AppKey").setRedirectHost("Host").setStartOption(7).start(this.getApplicationContext());
import tingyun from '@tingyun/sdk-core'
import axios from '@ohos/axios'
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
//初始化 SDK
tingyun.init({
// redirect服务器地址, 在基调听云用户体验监控平台设置页面获取
redirectHost: '<Redirect服务器地址>',
// appKey, 在基调听云用户体验监控平台设置页面获取
appKey: '<AppKey>',
// 上下文
context: this.context,
// 如果使用axios, 可传入axios对象采集axios发送的网络请求
axios: axios
})
}
// ...
}