1. 集成神策分析 SDK

1.1. 引入 SDK

  • GitHub 上获取京东小程序 SDK 源码;
  • taobao-mp.min.js 文件放入小程序项目中;
  • app.js 文件中通过 import 方式引入 SDK。
import sensors from './utils/mp-taobao/taobao-mp.min.js';

// 初始化 SDK 参数
sensors.init({
	server_url: '您的数据接收地址',
	// 是否允许控制台打印查看埋点数据(建议开启查看)
	show_log: true,
	autoTrack: {
    	appLaunch: true, //是否采集 $MPLaunch 事件,true 代表开启。
    	appShow: true, //是否采集 $MPShow 事件,true 代表开启。
    	appHide: true, //是否采集 $MPHide 事件,true 代表开启。
    	pageShow: true, //是否采集 $MPViewScreen 事件,true 代表开启。
    	mpClick: true, // 是否采集 $MPClick 事件,true 代表开启。
    	pageLeave: false //是否采集 页面停留时长
  	},
 	batch_send: false //是否开启批量数据上报
});
JS
  • batch_send 默认为 true。需要修改为 false。
    • 如果要设置成 true ,也就是开启批量发送的话,需要满足神策后端 Edge >= 0.4.2.125 ,请先检查清楚,不然数据上报会失败(请咨询技术顾问)。
    • 如果设置 false,也就是使用单条发送的话,没有要求。

1.2. 引入 SDK 数据发送插件

  • GitHub 上获取京东小程序 SDK 源码;
  • taobao-send-adapter.min.js 文件放入小程序项目中;
  • app.js 文件中通过 import 方式引入 SDK。
import sensors from './utils/mp-taobao/taobao-mp.min.js';
import sensors from './utils/mp-taobao/taobao-send-adapter.min.js';  

//云函数配置方式:
sensorsdata.use(TaobaoSendAdapter,{
  cloudFuncSend: true,     // 是否使用云函数进行数据发送,默认为 false
  cloudFuncName: '',      // 调用的云函数名称
  cloudFuncHandler: ''  // 指定云函数的 handler,默认为 main
});

//云应用配置方式:
sensors.use(TaobaoSendAdapter,{
  exts: {
    domain:'',
    xxx:''
  }, 
  cloudAppId:'',// 云应用 Id,无默认值
  path: '',  // 云应用数据接口,无默认值
});

sensors.init({...});
JS
  • 淘宝小程序 taobao-send-adapter 插件需要在 sensors.init() 之前注册。
  • 需要指定为云函数方式或者为云应用配置方式。

2. 上报方式

2.1. 使用云函数上报

淘宝小程序对使用云函数对外上报的方式要求严格,因此需要具体域名和字段需要与我们沟通确认后由开发主体申请白名单 参考文档

2.1.1. 云函数上报

这里我们给出云函数上报在代码中的调用实现:

官方使用示例

// 1、server目录中创建自定义云函数。注意该云函数名称需要在初始化时填写 cloudFuncName。
 
// 2、index.js
// 注意这里的 main 为示例,名称请自行确定,该名称需要在初始化时填写 cloudFuncHandler。
exports.main = async (context) => {
  const { params, body } = context.data;
  const result = await context.cloud.httpApi.invoke({
    method: 'POST',
    domain:'', // HTTP 请求参数,与申请通过的 HTTP 的白名单中请求域名必须一致
    headers: { 'Content-Type': 'application/json;charset=UTF-8' },
    path:'', // HTTP 请求 path
    params, // URL 参数
    body: body  // 放置在 BODY 中的参数
  });
  return { success: true, msg: result };
};
JS

2.2. 使用云应用上报

无需申请白名单。因为该功能是淘宝自己提供的云 API 的功能,神策不能保证淘宝提供的稳定性,上线前请先经过充分的测试,测试有问题及时与我们沟通。

3. SDK 基本配置

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

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

3.2. 设置事件公共属性

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

// 在需要使用 SDK 接口的页面逻辑文件中,需要通过 import 将 SDK 引入,再调用相应接口 
import sensors from './utils/mp-taobao/taobao-mp.min.js';
sensors.registerApp({
	userLever: 'VIP3',
	userSex: '男'
});
JS

3.3. 用户登录

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

// 在需要使用 SDK 接口的页面逻辑文件中,需要通过 import 将 SDK 引入,再调用相应接口
import sensors from './utils/mp-taobao/taobao-mp.min.js';  
sensors.login("登录 ID");
JS
  • 对于自动登录的用户,可以在 SDK 初始化前,获取登录 ID 并调用 login() 方法。

3.4. 代码埋点追踪事件

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

// 在需要使用 SDK 接口的页面逻辑文件中,需要通过 import 将 SDK 引入,再调用相应接口
import sensors from './utils/mp-taobao/taobao-mp.min.js';

Page({
	onShow: function(){
		sensors.track('pageview',{
			title: '首页'
		});
	}
});
JS

4. 调试查看事件信息

4.1. 事件的触发日志

5. SDK 可选配置

5.1. 设置用户属性

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

// 在需要使用 SDK 接口的页面逻辑文件中,需要通过 import 将 SDK 引入,再调用相应接口
import sensors from './utils/mp-taobao/taobao-mp.min.js';

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