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