s

集成神策分析 SDK

引入 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,也就是使用单条发送。

引入插件进行数据上报

因为淘宝小程序只能通过云函数或者云应用来上报数据,我们 SDK 本身不能发送。SDK 提供了云函数和云应用的配置插件。

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

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

云函数上报

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

import sensors from './utils/mp-taobao/taobao-mp.min.js';
import TaobaoSendAdapter from './utils/mp-taobao/taobao-send-adapter.min.js';  

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

sensors.init({...});
JS

云应用上报上报

无需申请白名单。

import sensors from './utils/mp-taobao/taobao-mp.min.js';
import TaobaoSendAdapter from './utils/mp-taobao/taobao-send-adapter.min.js';  

//云应用配置方式:
sensors.use(TaobaoSendAdapter,{
  cloudAppId: '',  // 云应用 Id,无默认值
  path: '/sa?project=xx'',  // 数据接收地址后面的 path
  exts: {
    domain:'https://sc.xxx.cn',  // 数据接收地址前面的 doamain。 这里的 domain + 上面的 path 就是 server_url
  }
});

sensors.init({...});
JS

如果在调用淘宝云应用 cloud.application.httpRequest 时候,还有其他额外的参数,可以直接加在  exts 中。

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

SDK 基本配置

配置项目数据接收地址

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

设置事件公共属性

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

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

用户登录

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

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

代码埋点追踪事件

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

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

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

调试查看事件信息

事件的触发日志

SDK 可选配置

设置用户属性

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