引入&配置SDK

使用小程序SDK必备操作,缺少任一操作都会造成数据的缺失

1 快速集成

在QuickTracking后中,为每一个小程序生成了专属的集成代码,可以根据产品内的引导进行集成。

1.1 进入产品后台

image

1.2 找到应用归属组织

image

1.3 找到应用

image

1.4 点击“去集成”

image

1.5 点击后可以获取专属集成代码

image

2 集成代码明细

如果因为特定原因,无法抵达上述页面,需要观看文档才可以进行集成,具体集成代码如下:

2.1 参数准备

appkey:在应用列表中获取

收数域名:在“管理控制台-采集信息”模块中获取

SDK链接:在“管理控制台-采集信息”模块中获取

2.2 SDK引入

点击SDK链接,将链接内JS文件导入工程内部。(建议导入路径为src/utils)

const aplusConfig = {
	metaInfo: {
	'appKey': '', //平台系统中创建应用时填写的Appkey, 必填
	'aplus-rhost-v': '', //采集日志上报域名,必填
	'DEBUG': true, //是否展示采集日志
	}
};
//声明aplus采集sdk全局变量
const aplus = require('./utils/aplus_mini')(aplusConfig);

2.3 设置设备ID

由于小程序框架限制,务必手动上传设备ID(例如:微信小程序的openid)给QT进行上报,否则,QT SDK将无法进行任何日志上报。方式如下:

// inside app.js
const aplusConfig = {
	metaInfo: {
		... //sdk部分配置
		'_hold': 'BLOCK' //阻塞日志上报,待openid&unionid成功获取后再上报
		... //sdk部分配置
	}
};
//声明aplus采集sdk全局变量
const aplus = require('./utils/aplus_mini')(aplusConfig);
		
wx.login({
	success: (res) => {
	// 通过 code 换取openid
		if (res.code) {
				wx.request({
					url: 客户业务侧后端获取openid的接口,
					method: "post",
					data: {
						code: res.code,
					},
					success: (res) => {
						if (res.data && res.data.openid) {
								// 获取的 openid 存入storage,方便之后使用
								wx.setStorageSync("openId", res.data.openid);
								wx.setStorageSync("unionId, res.data.unionid);

								getApp().aplus.aplus_quue.push({
									action: 'aplus.setMetaInfo',
									arguments: ['_anony_id', res.data.openid]
								});

						} else {
							getApp().aplus.aplus_quue.push({
								action: 'aplus.setMetaInfo',
								arguments: ['_anony_id', 业务侧自己待实现的伪id]
							});
						}
				},
			});
		}
	},
	fail: () => {
		// 失败提示信息等
	},
	complete: () => {
		getApp().aplus.aplus_quue.push({
			action: 'aplus.setMetaInfo',
			arguments: ['_hold', 'START']
		});
	},
});

PS:目前QuickTracking支持自动采集微信小程序openid,需要在产品中进行授权。授权方式如下,点击后按照要求填写内容即可。

image

授权后,设置设备ID代码方式为:

const aplusConfig = {
	metaInfo: {
		... //sdk部分配置
		'autoGetOpenid': true //开启openid自动采集  
		... //sdk部分配置
	}
};
//声明aplus采集sdk全局变量  
const aplus = require('./utils/aplus_mini')(aplusConfig);

如果之前已经使用了手动设置openid,现希望改为上述的QuickTracking自动采集微信小程序openid,还需要注意以下内容:

  1. 移除metainfo中设置_hold=BLOCK的SDK阻塞上报逻辑

  2. 注释掉之前手动设置「_anony_id=openid」的相关逻辑代码,也就是移除从wx.login中获取openid的相关代码。

  3. 注意,务必确保关于设置appKey和收数域名的内容不受影响。

示例代码如下:

// inside app.js
const aplusConfig = {
	metaInfo: {
		... //sdk部分配置
    
    //1.移除设置_hold=BLOCK的SDK阻塞上报逻辑
		//'_hold: 'BLOCK' //阻塞日志上报,待openid&unionid成功获取后再上报
    
		... //sdk部分配置
	}
};
//声明aplus采集sdk全局变量
const aplus = require('./utils/aplus_mini')(aplusConfig);

/**
2.移除 wx.login中获取openid的相关代码
wx.login({
	success: (res) => {
	// 通过 code 换取openid
		if (res.code) {
				wx.request({
					url: 客户业务侧后端获取openid的接口,
					method: "post",
					data: {
						code: res.code,
					},
					success: (res) => {
						if (res.data && res.data.openid) {
								// 获取的 openid 存入storage,方便之后使用
								wx.setStorageSync("openId", res.data.openid);
								wx.setStorageSync("unionId, res.data.unionid);

								getApp().aplus.aplus_queue.push({
									action: 'aplus.setMetaInfo',
									arguments: ['_anony_id', res.data.openid]
								});

						} else {
							getApp().aplus.aplus_queue.push({
								action: 'aplus.setMetaInfo',
								arguments: ['_anony_id', 业务侧自己待实现的伪id]
							});
						}
				},
			});
		}
	},
	fail: () => {
		// 失败提示信息等
	},
	complete: () => {
		getApp().aplus.aplus_queue.push({
			action: 'aplus.setMetaInfo',
			arguments: ['_hold', 'START']
		});
	},
});
*/

2.4 设置域名白名单

以微信小程序为例:登录小程序后台,进入开发设置-> 服务器域名白名单,把您的收数域名添加至白名单

2.5 初始化SDK

在app.js的onLaunch中,引入aplus

App({
	aplus, //全局引入aplus
	onLaunch(){},
	onShow(){},
	onHide(){}
})

3 常见问题

3.1 如何获取离线SDK?

在QuickTracking后台的“管理控制台-采集信息”模块中获取SDK链接后,点击SDK链接并“ctrl+s”或者“command+s”进行下载保存。

阿里云首页 全域采集与增长分析 相关技术圈