# 实验 API
自基础库版本2.14.4 起支持实验能力。
1.wx.getExptInfoSync(keys?: string[]) => Object
给定实验参数数组,获取对应的实验参数值
返回值为对象,对象的 key 为传入的 keys 中的各项,value 为参数值( 请注意是字符串 );没命中任何实验返回空对象。
请在真正要用到参数的时候去调用 API 获取参数。每次要使用参数时,都需要重新调用 API 获取最新的值,不要记录历史结果。原因是参数的取值可能会发生变化,旧的值很可能已经过期,导致实验结果不准确。
'wxapp_expt_test'为 mp 上创建实验的实验参数,参数值 '0' 表示'对照组'、 '1' 表示'实验组1'、'2' 表示'实验组2',可支持最多 20 个实验组
const res = wx.getExptInfoSync(['wxapp_expt_test'])
if (res.wxapp_expt_test === undefined) {
// 返回空对象;未命中实验、实验待发布(白名单除外)或者实验结束后会命中该分支
/* 业务逻辑,可对齐线上 */
} else if (res.wxapp_expt_test == '0') {
/* 对照组业务逻辑 */
} else if (res.wxapp_expt_test == '1') {
/* 实验组1业务逻辑 */
} else if (res.wxapp_expt_test == '2') {
/* 实验组2业务逻辑 */
} else {
/* 异常分支逻辑 */
}
2.wx.reportEvent(eventId: string, data?: Object)
事件上报
eventId 为在小程序后台实验系统中设置的 事件英文名 。
data 可选,为可被 JSON.stringify 的对象,将被一起上报至系统。
wx.reportEvent('事件英文名', {expt_data: num})
其中expt_data固定;num由业务决定且只支持整数,可上报停留时长或者金额。
需注意的是 wx.reportEvent('事件英文名') 与 wx.reportEvent('事件英文名', {expt_data: 1}) 等价。