1. 自定义埋点版小程序 SDK 说明

全埋点版本的 SDK 是通过代理小程序的 App 和 Page 方法实现的自动采集,但是因为代理这两个方法存在风险,另外可能某些用户不需要自动采集,这时候就强烈建议使用自定义采集的方法。 自定义埋点版小程序 SDK 提供了 quick() 方法来采集 $MPLaunch $MPShow $MPHide 三个预置事件,效果跟全埋点版本一致。

2. 使用方法

2.1. 下载文件

从 GitHub 上下载微信小程序 SDK,sensorsdata.custom.min.js 

2.2. 引入并配置参数

将 sensorsdata.custom.min.js 文件放到项目中,在 app.js 中通过 require() 方法引入,调用 setPara() 方法设置初始化参数;调用 setPara() 方法设置初始化参数;
注意:必须在 require() 之后,立即调用 setPara() 方法设置,server_url 需在 setPara() 中配置。

app.js

var sa= require('./utils/sensorsdata.min.js');
sa.setPara({
	server_url: '数据接收地址'
});
JS

2.3. 标志初始化完成

调用 init() 方法完成初始化。

app.js

var sa = require('./utils/sensorsdata.min.js');
sa.setPara({
	server_url: '数据接收地址'
});
sa.init();
JS

2.4. 赋值全局变量

在 onLuanch 生命周期函数中,将引入的 sa 赋值给一个全局变量,以便在小程序页面中可以调用。

app.js

var sa = require('./utils/sensorsdata.min.js');
sa.setPara({
	server_url: '数据接收地址'
});
sa.init();
App({
	onLaunch : function( options ){
		this.sensors = sa;
	}
});
JS

2.5. 设置预置事件采集

如需采集预置事件,可在小程序相应生命周期函数中调用 quick() 方法来采集预置事件。

app.js

var sa = require('./utils/sensorsdata.min.js');
sa.setPara({
	server_url: '数据接收地址'
});
sa.init();
App({
	onLaunch : function( options ){
		this.sensors = sa;
		sa.quick('appLaunch', options, {
			appName : '神策分析小程序'
		});
	},
	onShow : function( options ){
		sa.quick('appShow', options, {
			showTime : new Date()
		});
	},
	onHide : function(){
		sa.quick('appHide', {
			eventDuration : 5000
		});
	}
});
JS

3. 方法说明

3.1. quick(option, args, [props])

  • 说明:用来触发预置事件,为预置事件增加自定义属性
  • 参数:
    • option : string ,预置事件配置名称,可选值 'appLuanch' | 'appShow' | 'appHide' ;
    • args : object ,小程序生命周期函数原生参数,没有原生参数时可以设置为要添加的自定义属性对象;
    • props : object ,要添加的自定义属性对象,该参数可选填;

示例:

app.js

var sa = require('./utils/sensorsdata.min.js');
sa.setPara({
	server_url: '数据接收地址'
});
sa.init();
App({
	onLaunch : function( options ){
		sa.quick('appLaunch', options, {
			appName : '神策分析小程序'
		});
	}
	onHide : function(){
		sa.quick('appHide', {
			eventDuration : 5000
		});
	}
});
JS

3.2. track(eventName,[props])

  • 说明:用来采集自定义事件
  • 参数:
    • eventName : string ,自定义事件名称;
    • props : object ,自定义事件属性对象;

示例:

index.js

var app = getApp();
Page({	
	click : function(){
		// sensors 为在 app.js onLaunch 中设置的全局变量
		app.sensors.track('bannerClick',{
			bannerName : '顶部banner'
		});
	}
});
JS

4. 使用示例

app.js

var sa = require('./utils/sensorsdata.min.js');
sa.setPara({
	server_url: '数据接收地址'
});
sa.init();
//采集预置事件 $MPLaunch $MPShow $MPHide
App({
	onLaunch : function( options ){
		this.sensors = sa;
		sa.quick('appLaunch', options, {
			appName : '神策分析小程序'
		});
	},
	onShow : function( options ){
		sa.quick('appShow', options, {
			showTime : new Date()
		});
	},
	onHide : function(){
		sa.quick('appHide', {
			eventDuration : 5000
		});
	}
});
JS

index.js

var app = getApp();
Page({
	onShow : function(){
		//通过 track() 方法发送小程序页面浏览事件
		app.sensors.track('$MPViewScreen',{
			pageName : '首页'
		});
	}
});
JS