1 SDK原理概述
1.1 原理
SDK 提供一种指令形态的埋点调用方式,您通过对 aplus 环境变量的指令队列 aplus_queue发送指令,由 aplus 环境变量来执行指令,进而完成您的需求,指令格式如下:
aplus.aplus_queue.push({
'action': "$APIName",
'arguments': [$arguments] //arguments 为指定 API 的入参,
})
action 参数代表发送指令的 API 名称,其入参为一个字符串,取值为枚举值,可用的枚举值如下
setMetaInfo:覆盖SDK的已有默认设置
appendMetaInfo: 追加SDK的默认配置
getMetaInfo:获取 SDK 的当前配置
record:用于发送事件日志
sendPV:用于发送页面日志
arguments 参数为 action 中指定 API 的入参,格式是一个数组,数组内的元素顺序与 API 定义的入参顺序一致
1.2 示例
//变更 SDK 的默认设置
aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: [metaName, metaValue]
});
//获取 SDK 的当前配置
aplus.getMetaInfo(metaName);
//用于发送事件日志
aplus.aplus_queue.push({
action: 'aplus.record',
arguments: [trackerEventCode, eventType, eventParams]
});
//用于发送页面日志
aplus.aplus_queue.push({
action: 'aplus.sendPV',
arguments: [pageEventConfig, userData]
});
2 日志打印
//开启调试模式
const aplusConfig = {
metaInfo: {
'appKey': '', //平台系统中创建应用时填写的Appkey, 必填
'aplus-rhost-v': '', //采集日志上报域名,必填
'DEBUG': true, //开启调试模式
}
};
输出日志示例:
3 日志发送策略
QuickTracking 小程序 SDK默认事件上报时机为:事件触发就立刻上报。为兼容更多业务场景,也提供了日志聚合上报,当触发事件个数达到设置的个数时进行上报,具体设置方式见「4 日志聚合上报」。
注意:微信小程序要求“短时间内发起太多请求会触发小程序并行请求数据量的限制,同时太多请求也可能导致加载慢等问题,应合理控制请求数量,甚至做请求的合并”,使用默认QuickTracking 小程序 SDK默认事件上报策略可能触发该限制,建议使用「4 日志聚合上报」。
4 日志聚合上报
从1.8.2版本开始支持
聚合上报是指将多条日志信息合并为一条请求上报至服务端,在数据端拆解为多条日志并落库。
var aplus = require('./utils/aplus_mini.js')({
metaInfo: {
'max-queue-count': [number] // 控制聚合日志条数,默认不聚合
}
});
如下图所示:若设置为max-queue-count = 5,则会在收集到5条日志时,才会向服务端上报请求;
若未满5条,则会在退出小程序时自动上报。
注意:微信小程序要求“短时间内发起太多请求会触发小程序并行请求数据量的限制,同时太多请求也可能导致加载慢等问题,应合理控制请求数量,甚至做请求的合并”,因此建议使用上述的「日志聚合上报」。
5 应用基础信息配置
在SDK引入部分,可以修改或者追加一些默认设置
const aplusConfig = {
metaInfo: {
'appKey': 'testappkey', //QuickTracking 创建应用时填写的Appkey, 必填
'aplus-rhost-v': 'your_log_domain', //采集日志上报域名,必填
'_user_id': 'testUserId', //小程序自身的登录账号id,如需要计算分析用户账号纬度的数据,按需上报
'autoGetOpenid': true, //自动获取openid设置 (推荐!目前仅支持微信小程序 )
'DEBUG': true, //打开调试日志
// '_hold': 'BLOCK', // 如果是异步场景,需先阻塞日志上报,待openid等设置成功后,再上报
'appVersion': '您当前小程序的版本'
}
};
//声明aplus采集sdk全局变量
const aplus = require('./utils/aplus_mini')(aplusConfig);
MetaName | 元配置说明 | metaValue赋值说明 |
DEBUG | 开启后,控制台将输出SDK 埋点日志 | true为打开日志,false为关闭日志 |
appVersion | 设置当前小程序的版本 | 请填写当前小程序的版本 |
appKey | 平台系统中创建应用时填写的Appkey | 需要在平台中获取埋点小程序对应的appkey |
aplus-rhost-v | 采集上报域名 | 在平台的采集信息中可以获取 |
autoGetOpenid | 自动采集openid | 布尔值,默认为false 与代码获取openid的方式二选一 |
_anony_id | 设置设备唯一标识 | 业务自定义的匿名用户ID ,针对支付宝取 alipayid, 针对微信取 openid |
_dev_id | 微信小程序中设置unionid | 微信小程序中设置unionid |
_user_id | 设置userid | 业务自定义的登录账号ID |
_hold | 发送Hold信号. 在 SDK整个生命周期内, _hold可以设置多次,但BLOCK与START设置建议成对出现,否则会影响日志上报 | 枚举类型, 可用值及说明如下:
|