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

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

更新日志

1. 概述

支付宝小程序 SDK 通用于蚂蚁开放生态,可以相同引入方法应用于淘宝、钉钉、高德等应用平台,可参考多端支持

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

2.1. 安装方法

2.1.1. 下载 SDK

从 GitHub 上下载支付宝小程序 SDKsensorsdata.min.js 和 sensorsdata_conf.js;

2.1.2. 配置参数

配置 sensorsdata.conf.js 文件中的数据接收地址 server_url 参数;

2.1.3. 引入 SDK 并设置全局变量

把这两个文件放在小程序项目中,然后在 app.js 中通过 import 引入; 在 App 函数中设置一个值为 sensors 的全局变量。

app.js

import sa from './util/sensorsdata.min.js'
App({ 
	onLaunch : function(){ 
		this.sensors = sa 
	}
})
JS

2.1.4. 预置事件采集

如需采集预置事件,可在注册小程序时的 onLaunch、 onShow、 onHide 生命周期函数中分别调用 quick(‘appLaunch’)、 quick('appShow')、 quick('appHide') 方法来采集预置事件。其中,quick(‘appLaunch’)、 quick('appShow') 第二个参数需要填入相应生命周期回调函数使用的参数;quick('appHide') 不需要传入生命周期回调函数使用的参数。

app.js

import sa from './util/sensorsdata.min.js'
App({
	onLaunch : function( options ){
		this.sensors = sa;
		sa.quick('appLaunch', options);
	},
	onShow : function( options ){
		sa.quick('appShow', options);
	},
	onHide : function(){
		sa.quick('appHide');
	}
});
JS

2.1.5. 页面采集自定义事件

现在在其他 Page 里就可以通过 getApp 来使用神策的追踪了

index.js

var app = getApp();
Page({
	onShow: function(){

	},
	click: function(){
		// 第一个参数事件名 字符串类型,第二个参数 属性值 对象类型
		app.sensors.track('clickBanner', {
			productName: 'xxx'
		})
	}
});
JS

2.2. sensorsdata_conf.js 参数配置

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

3. 标识用户

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

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

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

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

3.1. 修改匿名 ID

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

app.js

import sa from './util/sensorsdata.min.js'
sa.identify('匿名ID', true);
App({
	onLaunch: function( options ){
		this.sensors = sa;
		sa.quick('appLaunch', options, {
			appName : '神策分析小程序'
		})
	}
});
JS

3.2. 用户关联

  1. 可以通过调用login("userID") 方法来标识真实用户;
  2. 通过 `login("userID")` 来把 SDK 自动生成的 uuid 现在传入的 userID 关联。且以后会一直使用这个 userID

app.js

import sa from './util/sensorsdata.min.js'
sa.login('userID');
App({
	onLaunch: function( options ){
		this.sensors = sa;
		sa.quick('appLaunch', options, {
			appName : '神策分析小程序'
		})
	}
});
JS

4. 自定义事件追踪

4.1. track(eventName,[properties])

采集自定义事件。

  • eventName:`string`,必填,事件名称;
  • properties:`object`,选填,为该事件设置的事件属性;

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

index.js

// 追踪浏览商品事件。 
var app = getApp();
app.sensors.track('ViewProduct', {
	ProductId: '123456',
	ProductCatalog: "Laptop Computer",
	ProductName: "MacBook Pro",
	ProductPrice: 12345
}); 
JS

4.2. registerApp(properties)

事件公共属性:可以在 app.js 文件引入 sensorsdata.min.js 文件之后, 使用 registerApp() 方法设置公共属性。

  • properties:`object`,必填,要为该方法调用后的所有事件设置的公共事件属性; 

app.js

// 注册事件公共属性。 
import sa from './util/sensorsdata.min.js'
sa.registerApp({
	userLever: 'VIP3',
	userSex: '男'
}); 
JS

5. 设置用户属性

5.1. setProfile(properties)

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

  • properties:`object`,必选。

app.js

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

5.2. setOnceProfile(properties)

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

  • properties:`object`,必选。

app.js

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

6. 实际案例使用

app.js

import sa from './util/sensorsdata.min.js'
//设置公共属性
sa.registerApp({
	platform: 'AliPayMini'
});
//做用户关联
sa.login('13390987783');
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',{
			pageTitle: '首页'
		});
	}
});
JS

7. 预置属性

7.1. 所有事件都有的预置属性

字段名称类型说明SDK 版本
$lib字符串SDK 类型
$lib_version字符串SDK 版本
$user_agent字符串'SensorsAnalytics AlipayMini SDK'1.0.1 版本之后不再采集
$screen_height数值小程序屏幕高度
$screen_width数值小程序屏幕宽度
$model字符串设备型号
$manufacturer字符串设备制造商
$network_type字符串网络类型
$os字符串操作系统
$os_version字符串操作系统版本1.0.1 版本之后新增
$is_first_day布尔类型是否首日访问
$ip字符串SDK 发送数据请求携带的属性
$country字符串由 IP 解析得到
$province字符串由 IP 解析得到
$city字符串由 IP 解析得到
$browser字符串由 UA 解析得到1.0.1 版本之后新增
$browser_version字符串由 UA 解析得到1.0.1 版本之后新增

8. 渠道追踪

支付宝小程序 SDK 目前支持解析启动参数中的 utm 参数信息,该功能需要支付宝小程序 SDK 按照 2.1.4 标题 中的步骤能够采集预置事件。

当启动参数中有 utm 相关参数且开启预置事件采集功能后,用户在访问支付宝小程序时,支付宝小程序 SDK 会解析启动参数中的 utm 相关参数,并将解析出来的参数与参数值作为预置事件 $MPLaunch、$MPShow 事件的 $utm 相关属性与属性值。客户在使用神策分析系统时,可以通过查询 $MPLaunch、$MPShow 事件的 $utm 相关属性分组数据来查看不同的渠道数据。

以小程序二维码为例,要使用渠道追踪功能,只需在支付宝小程序管理后台,在小程序详情 > 码管理 > 小程序码中创建二维码时,在启动参数中添加上 utm 相关参数即可

采集后的数据为

9. 常见问题

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