1. 集成神策分析 SDK

1.1. 引入 SDK

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

// 初始化 SDK 参数
sensors.setPara({
	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:true //是否开启批量发送
});

// 初始化 SDK
sensors.init();
JS
  • 淘宝小程序 SDK 压缩文件 index.min.js 大小约为 43 KB
  • 需要在 App 实例化之前调用 setPara() init(),否则可能会造成部分预置事件丢失。
  • 在调用 init() 接口之前,采集的数据被缓存在内存中;调用 init() 接口后,会将缓存的数据通过网络发送出去。

1.2. 引入 SDK 数据发送插件

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

sensors.setPara({});

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

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

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

2. 上报方式

2.1. 使用云函数上报

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

2.1.1. 云函数上报

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

官方示例:https://miniapp.open.taobao.com/docV3.htm?docId=118444&docType=1&tag=dev

// 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. 使用云应用上报

无需申请白名单。使用前与我们进行沟通后再进行开发实践。

  • 淘宝小程序数据上报方式使用注意请与我们充分沟通需求后再实践

3. SDK 基本配置

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

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

3.2. 设置事件公共属性

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

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

3.3. 用户登录

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

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

3.4. 代码埋点追踪事件

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

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

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