基础功能

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, //开启调试模式
	}
};

输出日志示例:D4657491-B1FF-44DC-ACB4-79B6495A3AAB

3 日志发送策略

QuickTracking 小程序 SDK默认事件上报时机为:事件触发就立刻上报。为兼容更多业务场景,也提供了日志聚合上报,当触发事件个数达到设置的个数时进行上报,具体设置方式见「4 日志聚合上报」。

注意:微信小程序要求“短时间内发起太多请求会触发小程序并行请求数据量的限制,同时太多请求也可能导致加载慢等问题,应合理控制请求数量,甚至做请求的合并”,使用默认QuickTracking 小程序 SDK默认事件上报策略可能触发该限制,建议使用「4 日志聚合上报」。

image

4 日志聚合上报

从1.8.2版本开始支持

聚合上报是指将多条日志信息合并为一条请求上报至服务端,在数据端拆解为多条日志并落库。

var aplus = require('./utils/aplus_mini.js')({
  metaInfo: {
    'max-queue-count': [number]  // 控制聚合日志条数,默认不聚合
  }
});

如下图所示:若设置为max-queue-count = 5,则会在收集到5条日志时,才会向服务端上报请求;

若未满5条,则会在退出小程序时自动上报。

image

注意:微信小程序要求“短时间内发起太多请求会触发小程序并行请求数据量的限制,同时太多请求也可能导致加载慢等问题,应合理控制请求数量,甚至做请求的合并”,因此建议使用上述的「日志聚合上报」。

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设置建议成对出现,否则会影响日志上报

枚举类型, 可用值及说明如下:

  • "START":  开启日志发送

  • "BLOCK": 阻止日志发送,可以在 BLOCK状态之前,完善发送日志前的准备工作