A javascript ABTest lib running in browser
npm install modest-abtestjavascript
// CJS 模式
// const ABTest = require('modest-abtest');
// ESM 模式
// import ABTest from 'modest-abtest';
// IIFE 模式
// html 中以script标签的形式引入 modest-abtest.iife.min.js
var abtest = new ABTest('yourAppId',[{
layer_id:'yourLayerId',
hit:1,
version:1,
exp_set:[
{id:1,weight:0.5,data:'planA'},
{id:2,weight:0.5,data:'planB'}
]
}]);
var abtest_result = abtest.run();
console.log(abtest_result);
// 打印结果
{
"layer": {
"yourLayerId": {
"hit_exp_data": "planB",
"hit_exp_id": "2",
"version": 1
}
},
"trace_id": "yourAppId_yourLayerId_2_1",
"uid": "7f65cb09-51ba-48b1-9622-fc698141b1dd"
}
`
3 初始化配置说明
`
var abtest = new ABTest(appId,config)
`
| 字段 | 描述 | 类型 | 是否必填 | 其他
| -:| :- | :-: | :-:| :-:|
| appId | 应用标识 | string | 是 | - |
| config | 实验数据配置 | Array\`
var result = abtest.run(layer_id);
`
run 方法参数说明
| 字段 | 描述 | 类型 | 是否必填 | 其他
| -:| :- | :-: | :-:| :-:|
| layer_id | 场景标识 | string | 否 | 允许只运行指定场景下的实验,不传入则默认多场景实验同时进行 |
result 运行结果说明
| 字段 | 描述 | 类型 | 其他
| -:| :- | :-: | :-:|
| layer | 场景集合 | object | 已进行实验的场景集合 |
| trace_id | 实验结果标识(含多场景实验) | string | 命中对应场景实验下的标识组合${app_id}_${layer_id}_${exp_id}_${version}。 如果有多场景实验进行了实验,trace_id会以\|的形式分割:${app_id}_${layer_id}_${exp_id}_${version}\|${app_id}_${layer_id}_${exp_id}_${version} |
| uid | 用户UUID标识 | string | - |
$3
1. trace_id、uid 均会被追加到cookie上,设置于二级域名上,有效期为1年。
2. trace_id 在cookie中的key为 abtest-trace-id-${trace_id}
3. uid 在cookie中的key为 abtest-uid-${uid}
layer 字段说明
| 字段 | 描述 | 类型 | 其他
| -:| :- | :-: | :-:|
| [key]` | 初始化配置中自定义的场景标识 | object | -