• 在使用前,请先阅读数据模型
  • SDK 更新日志,可参考 Release Notes
  • 目前不支持使用 uni-app 框架开发的小程序
sa-sdk-qqmini 仓库升级至 sa-sdk-mini 仓库,进行代码统一迭代管理。
  • sa-sdk-mini 仓库新增了全埋点 - 页面离开,下线了已经废弃的 sa.getPresetProperties、sa.getAnonymousID API。

  • sa-sdk-qqmini 仓库不再更新维护,如需使用老版 SDK,请前往老版SDK

1. 集成神策分析 SDK

1.1. 引入 SDK

  • GitHub 上 mp-qq  目录获取 QQ 小程序 SDK 源码;
  • index.esm.js 文件放入小程序项目中;
  • app.js 文件中通过 require() 引入 SDK。
import sensors from './dist/mp-qq/index.esm';
JS

1.2. 初始化 SDK

调用 init() 方法来初始化 SDK

sensors.init({
	name: 'sensors',
	server_url: '您的数据接收地址',
	// 全埋点控制开关
	autoTrack: {},
	// 自定义渠道追踪参数,如source_channel: ["custom_param"]
	source_channel: [],
	// 是否允许控制台打印查看埋点数据(建议开启查看)
	show_log: true
});
JS

2. SDK 基本配置

2.1. 配置项目数据接收地址

如下图所示获取数据接收地址:

获取到数据接收地址之后在 setPara 接口中设置 server_url,server_url 的域名需要按照 QQ 小程序要求(https://q.qq.com/wiki/develop/game/API/MGOBE/SDK.html#%E8%AE%BE%E7%BD%AE%E8%AF%B7%E6%B1%82%E5%9F%9F%E5%90%8D)配置小程序 request 合法域名。

2.2. 开启全埋点

init () 函数中 autoTrack 可用于配置需要开启的全埋点类型:

sensors.setPara({
	autoTrack:{ 
		appLaunch: true, // 默认为 true,false 则关闭 $MPLaunch 事件采集
		appShow: true, // 默认为 true,false 则关闭 $MPShow 事件采集
		appHide: true, // 默认为 true,false 则关闭 $MPHide 事件采集
		pageShow: true, // 默认为 true,false 则关闭 $MPViewScreen 事件采集
		mpClick: true // 默认为 false,true 则开启 $MPClick 事件采集
	}

	/**
	 * 其他配置
	 */
});
JS
  • 全埋点采集时机,可参考全埋点采集逻辑
  • iOS 版本 QQ, $MPHide 事件数据发送会存在丢失现象

2.3. 设置事件公共属性

对于所有事件都需要添加的属性,可在初始化 SDK 前,调用 registerApp() 将属性注册为公共属性:

sensors.registerApp({
	userLever: 'VIP3',
	userSex: '男'
});
JS

2.4. 用户登录

当用户注册成功或者登录成功时,需要调用 login() 方法传入登录 ID:

sensors.login("登录 ID");
JS
  • 对于自动登录的用户,可以在 SDK 初始化前,获取登录 ID 并调用 login() 方法。

2.5. 代码埋点追踪事件

SDK 初始化后,可通过 track() 方法追踪用户行为事件,并为事件添加自定义属性:

sensors.track(event_name [,properties]);
JS

配置参数:

参数必填描述
event_name事件名称
properties为用户行为事件添加自定义属性,类型:Object。

示例:

// 为 click 事件添加自定义属性 name 值为点击。
sensors.track('click',{
	name: '点击'
});
JS

事件名和事件属性的格式规范,请参考数据格式

3. 调试查看事件信息

3.1. 事件的触发日志

setPara() 配置初始化参数时,通过 show_log: true 打开 Log 功能且 SDK 完成初始化后(即 init() 方法调用后),微信开发者工具 console 会打印采集的数据信息:

3.2. 事件的发送情况

事件数据发送成功时,可以在微信开发者工具的 Network 模块中,可以看到 sa 的请求:

4. SDK 可选配置

4.1. 设置用户属性

setProfile( properties ): 可以设定用户属性,同一个 key 多次设置时,value 值会进行覆盖替换:

sensors.setProfile({
	email:'xxx@xx',
	favoriteFruits: ['苹果', '油桃'],
	subscribers: 7277
});
JS

4.2. 渠道追踪

用户通过含有 utm 相关参数的路径访问小程序时,预置事件 $MPLaunch、$MPShow、$MPViewScreen 会解析启动路径中的 utm 相关参数作为自身的属性与属性值,并会设置 $latest_utm 相关属性到所有事件中,该特性在小程序的生命周期内有效。