@gaoding/gd-abtest

Gaoding ABTest SDK

Usage no npm install needed!

<script type="module">
  import gaodingGdAbtest from 'https://cdn.skypack.dev/@gaoding/gd-abtest';
</script>

README

gd-abtest 稿定 ABTest SDK

安装

npm install @gaoding/gd-abtest

使用

import gdABTest from '@gaoding/gd-abtest';

SDK Methods

init()

js SDK 初始化

gdABTest.init({
  app_key: 'application appkey', //应用对应的 appkey,必填
  app_name: 'application appName', // 应用对应的 appName,必填
  user_id:  '', // 客户端能唯一标识用户的ID,必填
  device_id: '', // 用户设备id,必填 
  is_login: '' // 用户是否登录,必填  0:未登陆,1:登陆
})

getExps()

获取所有匹配的版本信息,并缓存到本地,缓存时间为30分钟

const exps = gdABTest.getExps()

getValue()

根据变量名称获取所匹配的版本信息的变量值

gdABTest.getValue(variableName, defaultVaule).then(flag => {
  console.log(flag);
})

// 例如输出:
// sdjjkxx_0

当需要获取多个变量,可入参一个变量名数组,相应的 defaultVaule 也需要设置为数组

gdABTest.getValue(['variableName_1', 'variableName_2'], ['defaultVaule_1', 'defaultVaule_1']).then(flag => {
  console.log(flag);
})

// 例如输出:
// 匹配情况 ['sdjjkxx_0', 'sdjjkxx_1']
// 部分不匹配情况 ['sdjjkxx_0', 'defaultVaule_1']
// 不匹配情况 ['defaultVaule_1', 'defaultVaule_1']

setUserId()

设置 userId

gdABTest.setUserId(userId)

setDeviceId()

设置 deviceId

gdABTest.setDeviceId(deviceId)

on('fetch', () => {})

网络请求钩子。 监听 fetch 事件,当sdk发起网络请求会触发该钩子事件

gdABTest.on('fetch', (data: object[]) =>{
  console.log(data); // 返回所有版本信息
})

on('windTrack', () => {})

无垠埋点钩子,监听 windTrack 事件,当 this.getValue() 后触发一次埋点上报

gdABTest.on('windTrack', (data: object) =>{
  console.log(data); // 埋点信息
})

// 埋点信息如:
{
  event: 'abtest_track',
  event_id: 125,
  ab_tags: ['xxx_1']
}

getAbTags(eventId)

根据 eventId 获取 abtags

const abTags = getAbTags('event_id')
// 输出:null 或  [mdamday_1]