快应用 A/B Testing SDK 依赖于神策分析快应用 SDK v0.9.0 及以上版本,在使用前请确保已经成功集成依赖于神策快应用 SDK,并进行了 SDK 初始化,详情可参考 SDK 集成 (快应用 SDK)

集成方式

  • 集成神策分析快应用 SDK

  • 集成快应用 A/B Testing SDK,在快应用 SDK 初始化时需要传入请求分流试验的地址,请联系运营人员获取(创建具体的试验后,可下载 SDK 说明文档/复制具体代码示例)。

    // app.ux
    import sensors from './utils/sensorsdata.min.js';
    import abtest from './utils/abtest.esm.min.js';
    
    export default {
      onCreate() {
        // 完成快应用 SDK 的初始化必须传入this,不然在Page中无法引用sensors。
    	var that = this;
    	// 快应用 A/B Testing 插件集成
    	sensors.usePlugin(abtest, {
    		app: that,
      		url: "分流试验请求地址"
    	})     
    	sensors.init(that)
      }
    }
    JS

A/B Testing SDK  API

获取试验变量 API

初始化 SDK 之后,通过 API 获取具体试验的变量值,根据获取试验变量值的方式,可分为下面三种策略:

  • fetchCacheABTest :读取本地缓存,缓存不存在时使用默认值
  • asyncFetchABTest 忽略本地缓存,从服务端获取数据
  • fastFetchABTest 优先读取本地缓存,缓存不存在时从服务端获取数据

请确保对A/B分流返回的 result 结果 & 接口中使用的默认值,都做了正常的业务逻辑处理!

以 fastFetchABTest 为例,可在相应的业务逻辑中添加如下代码:

// 页面中使用 abtest 接口
// Number 类型试验(第二个参数 0,表示未命中试验时,会返回此默认值,请根据业务需要更改此处的值)

this.$app.sensorsABTest.fastFetchABTest({
    param_name:"具体的试验参数",
    default_value:0,
    value_type:"Number",
    callback: function(result){
     // TODO 请根据 result 进行自己的试验
    }
});
JS

代码示例

// 神策埋点 SDK 初始化
// import 从 GitHub 中下载的最新的 sensorsdata.min.js,及 abtest.esm.min.js 文件
import sensors from './utils/sensorsdata.min.js';
import abtest from './utils/abtest.esm.min.js';

sensors.setPara({
  server_url: '数据接收地址',
})

export default {
  onCreate() {
  	var that = this;
	// 快应用 A/B Testing 插件集成
	sensors.usePlugin(abtest, {
		app: that,
  		url: "分流试验请求地址"
	});
    // 完成快应用 SDK 的初始化必须传入this,不然在Page中无法引用sensors。
    sensors.init(that);
  },
  onShow(){
	// 获取试验结果,abtest 对象在页面中使用时需要像 app.js 页面中一样先引入此对象
	abtest.fastFetchABTest({
  	  param_name: "具体的试验参数",
  	  default_value: 0,
  	  value_type: "Number",
  	  callback: function(result){
        // 获取用户命中的试验结果,针对用户可能命中的试验进行处理
    	switch(result) {
      	  case 0:
            break;
      	  case 1:
            // 试验组 1 的处理逻辑
            break;
      	  case 2:
        	// 试验组 2 的处理逻辑
        	break;
      	  // ……
      	  // ……
     	  default:
      		// 其他情况的处理逻辑
        	break;
    	}
  	  }
    });
  } 
}
JS

调试试验

可以通过录入白名单的方式,把小程序用户加入白名单;加入白名单后,会强制命中当前试验指定的分组(白名单只在试验调试状态有效)。

集成神策分析快应用 SDK 后,在开发者工具控制台中查看任意一条数据,可以获取当前用户的 distinct_id。在开发版及体验版中,通过手机打开控制台也可以通过类似方式获取到 distinct_id。

将此 distinct_id 对应的值复制录入试验白名单


版本要求和兼容性

  • 快应用 SDK v0.9.0
  • 快应用 A/B Testing SDK v0.0.3
  • 快应用 App 的 onShow 生命周期钩子是在 1070 版本中添加的,所以此方法的调用需要保证保证使用的版本在 1070 以上