支付宝小程序 SDK 在 v1.1.8 及以上版本兼容钉钉小程序。

sa-sdk-alipaymini 仓库升级至 sa-sdk-mini 仓库进行代码统一迭代管理。

  • sa-sdk-mini 仓库支持 ID3 全域用户关联,下线 sa.appLaunch、sa.appShow、sa.appHide、sa.pageShow、sa.pageLoad API。
  • sa-sdk-alipaymini 仓库不再更新维护,如需使用老版 SDK,请前往老版SDK
  • init 需要立即调用,不要设置 setTimeout 延迟调用。否则会导致全埋点事件不触发。

1. 集成神策分析 SDK

1.1. 引入 SDK

  • GitHub 上获取支付宝小程序 SDK 源码;
  • index.esm.js 文件放入小程序项目中;
  • app.js 文件中通过 import 引入 SDK。
// 此处 index.esm.js 文件路径需要根据项目实际情况设置
import sensors from 'index.min.js'
sensors.init({
	name: 'sensors',
	server_url: '数据接收地址',
});
JS

1.2. 设置初始化参数,开启全埋点

// 此处 index.esm.js 文件路径需要根据项目实际情况设置
import sensors from 'index.esm.js' 
sensors.init({
	name: 'sensors',
	server_url: '数据接收地址',
	// 预置事件采集配置开关,默认为 true
	autoTrack:{
		appLaunch: true, //是否采集 $MPLaunch 事件,true 代表采集,false 不采集。
		appShow: true,   //是否采集 $MPShow 事件,true 代表采集,false 不采集。
		appHide: true,   //是否采集 $MPHide 事件,true 代表采集,false 不采集。
		pageShow: true,  //是否采集 $MPViewScreen 事件,true 代表采集,false 不采集。
		mpClick: true    //是否采集 $MPClick 事件,true 代表采集,false 不采集。
	}
})
JS

如果使用 Taro 框架开发小程序,需要在 sensors.setPara 中配置 framework 参数:sensors.init({ framework: {taro:  Taro} })

1.3. 初始化 SDK

// 此处 index.esm.js 文件路径需要根据项目实际情况设置
import sensors from 'index.esm.js'
sensors.init({
	name: 'sensors',
	server_url: '数据接收地址',
	// 预置事件采集配置开关,默认为 true
	autoTrack:{
		appLaunch: true, //是否采集 $MPLaunch 事件,true 代表采集,false 不采集。
		appShow: true,   //是否采集 $MPShow 事件,true 代表采集,false 不采集。
		appHide: true,   //是否采集 $MPHide 事件,true 代表采集,false 不采集。
		pageShow: true,  //是否采集 $MPViewScreen 事件,true 代表采集,false 不采集。
		mpClick: true    //是否采集 $MPClick 事件,true 代表采集,false 不采集。
	}
})
JS
  • 详细的的初始化配置参数可参考小程序 SDK API 文档
  • init 需要立即调用,不要延迟使用,否则会导致 全埋点事件不触发

2. SDK 基本配置

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

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

获取到数据接收地址之后在 setPara 接口中设置 server_url,server_url 的域名需要按照支付宝小程序要求(https://opensupport.alipay.com/support/knowledge/39202/201602409638?ant_source=zsearch)配置服务器域名白名单。

2.2. 设置事件公共属性

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

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

需要在 App 实例化之前调用 registerApp() 方法完成公共属性的注册,否则会导致部分数据采集不到注册的公共属性

2.3. 用户关联

用户关联是为了对用户进行唯一标识,提高用户行为分析的准确性。目前神策提供了简易用户关联和全域用户关联分为用于支撑不同的业务场景。

2.4. 代码埋点追踪事件

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 会解析启动路径中的 utm 相关参数作为自身的属性与属性值,并会设置 $latest_utm 相关属性到所有事件中,该特性在小程序的生命周期内有效;
  • 支付宝小程序 SDK 支持解析除 utm_* 以外的自定义参数。

5. SDK API

更多小程序 API,可参考 SDK API (小程序)