集成神策分析 SDK

引入 SDK

  • GitHub 上获取微信小程序 SDK 源码
  • sensorsdata.min.js 文件放入小程序项目中
  • app.js 文件中通过 require() 引入 SDK
var sa = require('./utils/sensorsdata.min.js');
JS
  • 通过 npm i sa-sdk-miniprogram 安装 SDK
  • main.js 中通过 import 引入 SDK
import sa from 'sa-sdk-miniprogram'
JS
  • 通过 npm i sa-sdk-miniprogram 安装 SDK
  • app.jsx 中通过 import 引入 SDK
import sa from 'sa-sdk-miniprogram'
JS
  • 通过 npm i sa-sdk-miniprogram 安装 SDK
  • main.js 中通过 import 引入 SDK,注意需要在 vue 之前引入
import sa from 'sa-sdk-miniprogram'
JS
  • 通过 npm i sa-sdk-miniprogram 安装 SDK
  • app.wpy 中通过 import 引入 SDK
import sa from 'sa-sdk-miniprogram'
JS
  • 微信小程序 SDK 压缩文件 sensorsdata.min.js 大小约为 28 KB
  • 需要在 App 实例化之前调用 setPara() init(),否则可能会造成部分预置事件丢失

配置初始化参数

引入 SDK 后,可通过 setPara() 进行 SDK 初始化参数配置:

sa.setPara({
	name: 'sensors',
	server_url: '您的数据接收地址',
	// 全埋点控制开关
	autoTrack: {},
	// 自定义渠道追踪参数,如source_channel: ["custom_param"]
	source_channel: [],
	// 是否允许控制台打印查看埋点数据(建议开启查看)
	show_log: true,
	// 是否允许修改 onShareAppMessage 里 return 的 path,用来增加(登录 ID,分享层级,当前的 path),在 app onShow 中自动获取这些参数来查看具体分享来源、层级等
	allow_amend_share_path: true
});
JS

初始化 SDK

setPara() 配置初始化参数后,可调用 init() 方法来初始化 SDK:

// 初始化 SDK
sa.init();
JS
  • 在调用 init() 接口之前,采集的数据被缓存在内存中;调用 init() 接口后,会将缓存的数据通过网络发送出去。

SDK 基本配置

配置项目数据接收地址

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

获取到数据接收地址之后在 setPara 接口中设置 server_url,server_url 的域名需要按照微信小程序要求(https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html)配置到微信后台 request 合法域名列表中。

开启全埋点

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

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

	/**
	 * 其他配置
	 */
});
JS
  • 全埋点采集时机,可参考全埋点采集逻辑
  • 使用框架开发小程序时,如果框架编译后使用 Component 构造器形成页面,$MPViewScreen$MPShare 事件的自动采集需要使用 1.13.6 及以上版本的 SDK
  • $MPLaunch$MPShow$MPHide$MPViewScreen$MPShare 需要  0.9 及以上版本 SDK
  • $MPClick 需要 1.13.18 及以上版本 SDK
  • $MPAddFavorites 需要 1.13.27 及以上版本 SDK

设置事件公共属性

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

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

用户登录

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

sa.login("登录 ID");
JS

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

代码埋点追踪事件

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

getApp().sensors.track('click',{
	name: '点击'
});

JS

调试查看事件信息

事件的触发日志

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


事件的发送情况

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

SDK 可选配置

设置用户属性

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

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

渠道追踪

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