在使用前,请先阅读数据模型的介绍。

在使用前,可先了解数据校验的介绍。

更新日志

1. 获取和引入神策分析 SDK

1.1. 下载 sdk

app.js

// 引入 sdk
var sensors = require('./sa-sdk-smartprogram/sensorsdata.min.js')

App({ 
	onLaunch : function(){ 
		// 设置全局变量,以便于在 Page 里访问到 
		this.sensors = sensors 
	}
})
JS
  • 现在在其他 Page 里就可以通过 getApp 来使用神策的追踪了

index.js

var app = getApp();
app.sensors.track(eventName, properties) // 第一个参数事件名 字符串类型,第二个参数 属性值 对象类型
JS

1.2. sensorsdata_conf.js 参数配置

  • server_url: 数据接收地址。注意: 请在“小程序详情/设置”中添加 httpRequest 接口请求域名白名单,把这个地址加上。

2. 标识用户

在进行任何埋点之前,都应当先确定如何标识用户。**distinct_id** 是神策用来标识用户的一段唯一的字符串。

在小程序中,会有下面 2 种 id

  1. 默认情况下,我们会生成一个随机数 uuid ,保存在本地缓存中,我们暂时称这个为 uuid
  2. 数据库中保存的,用户真实 id 。我们暂时称为 "你们服务端分配给用户具体的登录 ID"

如果不做任何操作,小程序会使用 uuid 作为 distinct_id 。注意: uuid 在换了设备,或者删除小程序后,会重新生成

2.1. 调用sensors.login("你们服务端分配给用户具体的登录 ID") 来标识真实用户

通过 `sensors.login("你们服务端分配给用户具体的登录 ID")` 来把 SDK 自动生成的 **uuid** 关联成现在传入的 **"你们服务端分配给用户具体的登录 ID"**。且以后会一直使用这个 **"你们服务端分配给用户具体的登录 ID"**。

app.js

sensors.login('user1312312123');
JS

2.2. 使用 sensors.identify() 来修改匿名 id

默认情况下,是把 uuid 作为 distinct_id 的。如果想使用其他匿名 id(比如你们自己生成的 uuid),可以用 `identify(id,true)` 方法来改变当前的 distinct_id。

3. 预置事件追踪

从 0.2.0 版本开始小程序支持采集 $MPLaunch、$MPShow、$MPHide 这三个预置事件,需要在小程序的 onLaunch、 onShow、 onHide 生命周期函数中分别调用 sensors.quick('appLaunch', options,[properties])、sensors.quick('appShow', options,[properties])、sensors.quick('appHide',[properties])。

  • options:必填,onLaunch、onShow 生命周期回调函数使用的参数;
  • properties:`object`,选填,为预置事件增加的自定义属性

app.js

var sensors = require('./sa-sdk-smartprogram/sensorsdata.min.js')
App({
	onLaunch : function( options ){
		this.sensors = sensors;
		sensors.quick('appLaunch', options,{
			ProductId: '123456'
		});
	},
	onShow : function( options ){
		sensors.quick('appShow', options,{
			ProductCatalog: "Laptop Computer"
		});
	},
	onHide : function(){
		sensors.quick('appHide',{
			ProductName: "MacBook Pro"
		});
	}
});
JS

4. 自定义事件追踪 sensors.track()

第一次接入神策分析时,建议使用 sensors.track() 先追踪 3~5 个关键的事件,只需要几行代码,便能体验神策分析的分析功能。例如:电商产品,可以追踪用户注册、浏览商品和下订单等事件。

index.js

// 追踪浏览商品事件。 
var app = getApp();
app.sensors.track('ViewProduct', {
	ProductId: '123456',
	ProductCatalog: "Laptop Computer",
	ProductName: "MacBook Pro",
	ProductPrice: 12345
}); 
JS
  • 事件公共属性:可以在小程序页面 Page() 执行前使用 registerApp() 方法注册事件公共属性,这样在后续的所有事件都会添加这些公共属性。例如:

app.js

// 注册事件公共属性。 
var app = getApp();
app.sensors.registerApp({
	userLever: 'VIP3',
	userSex: '男'
}); 
JS

5. 设置用户属性

5.1. sensors.setProfile(properties)

直接设置用户的属性,如果存在则覆盖。

  • properties:`object`,必选。

app.js

sensors.setProfile({email:'xxx@xx'});
JS

5.2. sensors.setOnceProfile(properties)

如果不存在则设置,存在就不设置。

  • properties:`object`,必选。

app.js

sensors.setOnceProfile({email:'xxx@xx'});
JS

6. 实际案例使用

先把下载下来的 sensorsdata.js 和 sensorsdata_conf.js 放在目录 until 目录下

6.1. 在根目录的 app.js 中加入 SDK ,采集预置事件

app.js

// 这行是必须加入的
var sensors = require('./sa-sdk-smartprogram/sensorsdata.min.js');

App({
	onLaunch: function () {
		// 设置全局变量
		this.sensors = sensors;
		//采集预置事件 $MPLaunch
		sensors.quick('appLaunch', options,{
			ProductId: '123456'
		});
		// 如果获取到了用户的信息,可以给这个用户设置 profile
		sensors.setProfile({name:'tiantian',age:18});
	},
	onShow : function( options ){
		//采集预置事件 $MPShow
		sensors.quick('appShow', options,{
			ProductCatalog: "Laptop Computer"
		});
	},
	onHide : function(){
		//采集预置事件 $MPHide
		sensors.quick('appHide',{
			ProductName: "MacBook Pro"
		});
	}
	......
});
JS

6.2. 在 Pages 里的 js 中可以通过 getApp() 来获取 sensors

index.js

var app = getApp();
//下面模拟某个用户在浏览一张桃花的图片,当用户点击这张图片时,我们发送一个 clickImage 事件
Page({
	bindTapImage: function(){
		app.sensors.track('clickImage',{name:'桃花'});
	},
	onLoad: function(){

	}
});
JS

7. 常见问题

  1. 采集的数据默认使用客户端时间标识。
  2. 获取 distinct_id

app.js

sensors.store.getDistinctId()
JS