基礎(chǔ)功能
1 SDK原理概述
1.1 原理
SDK 提供一種指令形態(tài)的埋點調(diào)用方式,您通過對 aplus 環(huán)境變量的指令隊列 aplus_queue發(fā)送指令,由 aplus 環(huán)境變量來執(zhí)行指令,進而完成您的需求,指令格式如下:
aplus.aplus_queue.push({
'action': "$APIName",
'arguments': [$arguments] //arguments 為指定 API 的入?yún)ⅲ?})
action 參數(shù)代表發(fā)送指令的 API 名稱,其入?yún)橐粋€字符串,取值為枚舉值,可用的枚舉值如下
setMetaInfo:覆蓋SDK的已有默認設(shè)置
appendMetaInfo: 追加SDK的默認配置
getMetaInfo:獲取 SDK 的當前配置
record:用于發(fā)送事件日志
sendPV:用于發(fā)送頁面日志
arguments 參數(shù)為 action 中指定 API 的入?yún)ⅲ袷绞且粋€數(shù)組,數(shù)組內(nèi)的元素順序與 API 定義的入?yún)㈨樞蛞恢?/p>
1.2 示例
//變更 SDK 的默認設(shè)置
aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: [metaName, metaValue]
});
//獲取 SDK 的當前配置
aplus.getMetaInfo(metaName);
//用于發(fā)送事件日志
aplus.aplus_queue.push({
action: 'aplus.record',
arguments: [trackerEventCode, eventType, eventParams]
});
//用于發(fā)送頁面日志
aplus.aplus_queue.push({
action: 'aplus.sendPV',
arguments: [pageEventConfig, userData]
});
2 日志打印
//開啟調(diào)試模式
const aplusConfig = {
metaInfo: {
'appKey': '', //平臺系統(tǒng)中創(chuàng)建應(yīng)用時填寫的Appkey, 必填
'aplus-rhost-v': '', //采集日志上報域名,必填
'DEBUG': true, //開啟調(diào)試模式
}
};
輸出日志示例:
3 日志發(fā)送策略
QuickTracking 小程序 SDK默認事件上報時機為:事件觸發(fā)就立刻上報。為兼容更多業(yè)務(wù)場景,也提供了日志聚合上報,當觸發(fā)事件個數(shù)達到設(shè)置的個數(shù)時進行上報,具體設(shè)置方式見「4 日志聚合上報」。
注意:微信小程序要求“短時間內(nèi)發(fā)起太多請求會觸發(fā)小程序并行請求數(shù)據(jù)量的限制,同時太多請求也可能導(dǎo)致加載慢等問題,應(yīng)合理控制請求數(shù)量,甚至做請求的合并”,使用默認QuickTracking 小程序 SDK默認事件上報策略可能觸發(fā)該限制,建議使用「4 日志聚合上報」。
4 日志聚合上報
從1.8.2版本開始支持
聚合上報是指將多條日志信息合并為一條請求上報至服務(wù)端,在數(shù)據(jù)端拆解為多條日志并落庫。
var aplus = require('./utils/aplus_mini.js')({
metaInfo: {
'max-queue-count': [number] // 控制聚合日志條數(shù),默認不聚合
}
});
如下圖所示:若設(shè)置為max-queue-count = 5,則會在收集到5條日志時,才會向服務(wù)端上報請求;
若未滿5條,則會在退出小程序時自動上報。
注意:微信小程序要求“短時間內(nèi)發(fā)起太多請求會觸發(fā)小程序并行請求數(shù)據(jù)量的限制,同時太多請求也可能導(dǎo)致加載慢等問題,應(yīng)合理控制請求數(shù)量,甚至做請求的合并”,因此建議使用上述的「日志聚合上報」。
5 應(yīng)用基礎(chǔ)信息配置
在SDK引入部分,可以修改或者追加一些默認設(shè)置
const aplusConfig = {
metaInfo: {
'appKey': 'testappkey', //QuickTracking 創(chuàng)建應(yīng)用時填寫的Appkey, 必填
'aplus-rhost-v': 'your_log_domain', //采集日志上報域名,必填
'_user_id': 'testUserId', //小程序自身的登錄賬號id,如需要計算分析用戶賬號緯度的數(shù)據(jù),按需上報
'autoGetOpenid': true, //自動獲取openid設(shè)置 (推薦!目前僅支持微信小程序 )
'DEBUG': true, //打開調(diào)試日志
// '_hold': 'BLOCK', // 如果是異步場景,需先阻塞日志上報,待openid等設(shè)置成功后,再上報
'appVersion': '您當前小程序的版本'
}
};
//聲明aplus采集sdk全局變量
const aplus = require('./utils/aplus_mini')(aplusConfig);
MetaName | 元配置說明 | metaValue賦值說明 |
DEBUG | 開啟后,控制臺將輸出SDK 埋點日志 | true為打開日志,false為關(guān)閉日志 |
appVersion | 設(shè)置當前小程序的版本 | 請?zhí)顚懏斍靶〕绦虻陌姹?/p> |
appKey | 平臺系統(tǒng)中創(chuàng)建應(yīng)用時填寫的Appkey | 需要在平臺中獲取埋點小程序?qū)?yīng)的appkey |
aplus-rhost-v | 采集上報域名 | 在平臺的采集信息中可以獲取 |
autoGetOpenid | 自動采集openid | 布爾值,默認為false 與代碼獲取openid的方式二選一 |
_anony_id | 設(shè)置設(shè)備唯一標識 | 業(yè)務(wù)自定義的匿名用戶ID ,針對支付寶取 alipayid, 針對微信取 openid |
_dev_id | 微信小程序中設(shè)置unionid | 微信小程序中設(shè)置unionid |
_user_id | 設(shè)置userid | 業(yè)務(wù)自定義的登錄賬號ID |
_hold | 發(fā)送Hold信號. 在 SDK整個生命周期內(nèi), _hold可以設(shè)置多次,但BLOCK與START設(shè)置建議成對出現(xiàn),否則會影響日志上報 | 枚舉類型, 可用值及說明如下:
|