更新记录

0.0.4(2025-01-06) 下载此版本

修改Android平台底层依赖的SDK到1.6.3.PX版本

0.0.3(2022-10-12) 下载此版本

修复iOS配置项问题

0.0.2(2022-07-07) 下载此版本


0.0.2 (2022-7-6)

支持在 uni-app 框架中,调用QuickTracking 统计SDK相关接口,完成统计埋点及数据上报。

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


Android配置项

配置项 数据类型 含义
UMENG_URL 字符串 主收数域名(必须配置,不能为null或者空字符串)
UMENG_URL2 字符串 备用收数域名,可选,如果没有备用域名,配置值可以是空字符串
UMENG_APPKEY 字符串 Quick Tracking平台申请的appkey(必须配置,不能为null或者空字符串),注意:如果appkey为纯数字,需要在其开头加两个"##"号字符,避免Andorid读取metaData的系统API将值识别为整数。插件调用SDK预初始化函数时会自动去掉两个"##"。
UMENG_CHANNEL 字符串 App发布渠道
UMENG_LOG 整数 Android统计SDK调试日志开关,1-日志打开,0-日志关闭
UMENG_MODE 整数 对应SDK采集模式。1-手动采集模式,0-自动采集模式,默认为自动采集。建议开发者选择主动采集模式。
UMENG_NOACTIVITYPATH 整数 Activity页面路径自动采集开关(仅在自动采集模式下生效),1-不自动采集Activity页面路径,0-自动采集Activity页面路径

iOS配置项

配置项 数据类型 含义
enableLog BOOL iOS统计SDK调试日志开关,true-日志打开,FALSE-日志关闭
primaryDomain 字符串 主收数域名(必须配置,不能为null或者空字符串)
standbyDomain 字符串 备用收数域名,可选,如果没有备用域名,配置值可以是空字符串
appkey 字符串 Quick Tracking平台申请的appkey(必须配置,不能为nil或者空字符串)
channel 字符串 App发布渠道
isAutoPage BOOL 是否自动采集页面

引入方式


const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin');

API

初始化接口

调用时机:Android端需要在应用安装后首次启动JS首页显示后弹出“隐私授权对话框”,并在用户点击对话框“同意”按钮后再调用init初始化函数。

注意: 初始化接口中传入的appkey和配置项不同,不需要额外增加"##"前缀。


init(String appkey, String channel, int deviceType, String pushSecret)

示例:


const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
* @description QtAnalytics.init(String appkey, String channel, int deviceType, String pushSecret)
* @param {appkey} 字符串类型 友盟申请appkey
* @param {channel} 字符串类型 用户自定义渠道 
* @param {deviceType} 设备类型,1-手机;2-box(整型)
* @param {pushSecret} 保留未使用,输入空字符串即可。(字符串类型)  
* */
QtAnalytics.init('testappkey', 'testChannel', 1, '');

设置全局属性

1. 注册全局属性接口


registerGlobalProperties(string params)

示例:


const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description QtAnalytics.registerGlobalProperties(String params)
 * @params 为一级平铺全局参数属性键值对,不支持嵌套
 * @return void
 */
QtAnalytics.registerGlobalProperties(JSON.stringfy({"a":1,"b":2,"c":"3","d":"undefined"}));

2. 删除某个全局属性接口


unregisterGlobalProperty(String key)

示例:

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @@description 删除某个全局属性接口
 * @param {key} 全局属性名 字符串类型
 * @return void
 */ 
QtAnalytics.unregisterGlobalProperty('a');

3. 获取全部全局属性接口


getGlobalProperties

示例:


const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description 获取全部全局属性接口
 * @return 当前已注册所有全局属性值
 */ 
const gp = QtAnalytics.getGlobalProperties();

4. 删除所有全局属性接口

clearGlobalProperties

示例:

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description 删除所有全局属性接口
 * @return void
 */ 
QtAnalytics.clearGlobalProperties();

页面浏览事件

onPageStart(String viewName) //页面开始
onPageEnd(String viewName) //页面结束
skipMe(String viewName) // 关闭当前宿主(Android Activity)页面的自动PV采集

示例:

//page1.vue
const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')

export default {
  onLoad() {
    //调用此行代码后,宿主页面会关闭PV自动采集
    QtAnalytics.skipMe('Page1');
  },
    onShow() {
    ...
    QtAnalytics.onPageStart('Page1');
    ...
  }, 
  onHide() {
    ...
    QtAnalytics.onPageEnd('Page1');
    ...
  },
  onUnload(){
    ...
    QtAnalytics.onPageEnd('Page1')
    ...
  }
}

自定义事件

onEventObject(String eventId, String params)

示例:

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description QtAnalytics.onEventObject(String eventId, String params)
 * @eventId 自定义事件名(字符串类型)
 * @params 一级平铺自定义参数属性键值对,不支持嵌套
 */

QtAnalytics.onEventObject('test_clk', JSON.stringify({"product":"水杯","productColor":"黄色","productId":"003"}));

设置用户属性

归属于自定义事件的一种,预制eventId = $$_user_profile

示例:

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description QtAnalytics.onEventObject(String eventId, String params)
 * @eventId 自定义事件名(字符串类型)
 * @params 一级平铺自定义参数属性键值对,不支持嵌套 
 */

QtAnalytics.onEventObject('$$_user_profile', JSON.stringify({"gender":"male","_user_nick":"a_nick","province":"Beijing"}));

用户登录/登出

onProfileSignIn(String puid, String provider = '') 第二个参数默认为 空字符串

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
QtAnalytics.onProfileSignIn('testUserId', 'testOrganization')

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android.permission.ACCESS_NETWORK_STATE android.permission.ACCESS_WIFI_STATE android.permission.INTERNET

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

QuickTracking SDK通过采集唯一设备识别码(如IMEI/android ID/IDFA/OPENUDID/GUID、SIM卡 IMSI 信息)对用户进行唯一标识,以便进行诸如用户新增等数据统计。在特殊情况下(如用户使用平板设备或电视盒子时),无法通过唯一设备识别码标识设备,我们会将设备Mac地址作为用户的唯一标识,以便正常提供统计分析服务。本产品的发数服务器地址需由开发者指定(私有化部署)。 隐私协议地址:http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201902141711_54837.html?spm=a2c4g.11186623.J_9220772140.82.544b6189F8FbMr

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

本协议是QuickTracking与您之间达成的协议。请阅读条款内容。

概念解释

全域采集及增长分析 (Quick Tracking) 是阿里云推出的企业级流量统计分析产品,支持多端(APP、小程序、WEB)数据采集,提供通用的多维度用户行为分析模型。借助Quick Tracking,技术、产品、运营等同学可以快速按需提取和分析流量数据,衡量产品升级和运营活动效果。同时原始采集日志可以二次开发,可对接到数据加工平台、BI可视化平台和营销平台等,完成流量数据和业务数据的融合和利用。
QuickTracking SDK必须跟随QuickTrack产品一起使用。

隐私条款

QuickTracking SDK通过采集唯一设备识别码(如IMEI/android ID/IDFA/OPENUDID/GUID、SIM卡 IMSI 信息)对用户进行唯一标识,以便进行诸如用户新增等数据统计。在特殊情况下(如用户使用平板设备或电视盒子时),无法通过唯一设备识别码标识设备,我们会将设备Mac地址作为用户的唯一标识,以便正常提供统计分析服务。

使用权限如下,SDK不会主动申请权限,当宿主有

权限 用途
ACCESS_NETWORK_STATE 检测联网方式,在网络异常状态下避免数据发送,节省流量和电量。
ACCESS_WIFI_STATE 获取WIFI mac地址,在平板设备或电视盒子上,无法通过IMEI标识设备,我们会将WIFI mac地址作为用户的唯一标识,以便正常提供统计分析服务。
INTERNET 允许应用程序联网和发送统计数据的权限,以便提供统计分析服务。

使用授权

私部署环境

如果您是私部署环境,使用QuickTracking的SDK采集数据都发往了您的环境,所以您在隐私协议中无需透出QuickTracking,但要透出您采集的信息和用途如下:

收集个人信息类型:设备信息(IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/SIM卡IMSI)
收集目的:通过在各个功能的埋点收集用户使用数据,后台对数据进行运营分析(各个功能的打开率、访问人数、访问时长等分析)
涉及权限:

权限 用途
ACCESS_NETWORK_STATE 检测联网方式,在网络异常状态下避免数据发送,节省流量和电量。
ACCESS_WIFI_STATE 获取WIFI mac地址,在平板设备或电视盒子上,无法通过IMEI标识设备,我们会将WIFI mac地址作为用户的唯一标识,以便正常提供统计分析服务。
INTERNET 允许应用程序联网和发送统计数据的权限,以便提供统计分析服务。

SaaS环境

如果您是SaaS环境,使用QuickTracking的SDK采集,需要在您的个人隐私协议中透出:

Quick Tracking 全域采集与增长分析
收集个人信息类型:设备信息(IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/SIM卡IMSI)
收集目的:通过在各个功能的埋点收集用户使用数据,后台对数据进行运营分析(各个功能的打开率、访问人数、访问时长等分析)
涉及权限:

权限 用途
ACCESS_NETWORK_STATE 检测联网方式,在网络异常状态下避免数据发送,节省流量和电量。
ACCESS_WIFI_STATE 获取WIFI mac地址,在平板设备或电视盒子上,无法通过IMEI标识设备,我们会将WIFI mac地址作为用户的唯一标识,以便正常提供统计分析服务。
INTERNET 允许应用程序联网和发送统计数据的权限,以便提供统计分析服务。

官网链接:https://help.aliyun.com/product/194063.html

协议修订

根据发展,QuickTracking可能会对本协议进行修改。修改时,QuickTracking会在产品或者网页中显著的位置发布相关信息以便及时通知到用户。如果您选择继续使用我们的服务,即表示您同意接受这些修改。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问