4.6. API接口

优质
小牛编辑
140浏览
2023-12-01

获取试验信息和版本分配的API接口

1.获取试验变量

POST请求示例:

//请求访问服务器地址
POST  http://experiment.appadhoc.com/get_flags_async

Request Headers(请求头)
Content-Type: application/json
Body
{
  //平台获取的appKey
  "app_key": "ADHOC_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  //如果需要自定义clientId可以这样写,函数GetClientId需要提前定义好;这是必填项
  "client_id": GetClientId(),
  //默认为空,如果需要在这个字段上传数据请联系客户成功经理要具体字段内容规范
  "summary":{},
  //受众定向条件,默认为空,如果需要使用该功能,请联系客户成功经理要具体字段内容规范
  "custom": {}
}

该请求返回的json数据结构示例:

Response 200 Headers(响应头)
Content-Type: application/json
Body {
  "experiments": [{
    "id": " the-experimentId-ABServer-give-to-a-cilent ",
    //试验版本名称
    "name":试验版本1
    //试验变量名称
    "flags": [
      "flag1" ],
    "stats":[
      "empty" ]
    }],
  //试验变量返回值
  "flags": {
    "flag1": 1,
    "flag2": 2
  }
}

2.上报自定义指标

//请求访问服务器地址
POST  http://tracker.appadhoc.com/tracker   
Request Headers(请求头)
Content-Type: application/json
Body
{
  //平台获取的appkey
  "app_key": "ADHOC_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  //如果需要自定义clientId可以这样写,函数GetClientId需要提前定义好;这是必填项
  "client_id": GetClientId(),
  //系统预采集的字段
  "summary": {},
  //自定义用户标签
  "custom": {},
  //指标信息
  "stats": [{
    "key": "your_stat_name",
    "value": 1,
    "timestamp": 1514365098,
    "experiment_ids": ["版本id"]
  }]
}

3.上报样本

样本上报的json示例:

{
  //平台获取的appKey
  "app_key": "ADHOC_14adc920-5b6d-4d5a-a8ab-e37d08309155",
  //如果需要自定义clientId可以这样写,函数GetClientId需要提前定义好;这是必填项
  "client_id": GetClientId(),

  //系统预采集的字段
  "summary": {},
  //受众定向条件
  "custom": {},
  "stats": [{
    "key": "Event-GET_EXPERIMENT_FLAGS",
    "value": 1,
    "timestamp": 1514365098,
    "experiment_ids": ["版本id"]
  }]
}

集成调试

SDK请求API集成完毕,可以在不开启试验的环境下测试数据正常上报,需要用到调试功能,确保线上试验的正常运行。

POST请求示例:

POST  http://experiment.appadhoc.com/force_clients
Request Headers(请求头)
Content-Type: application/json

Body
{
  "client_id": "your-clientId-maybe-imei-or-something",
  "experiment_id": "your-experiment_id"
}

ClientID用于标识用户ID,需要开发者根据自己的用户系统传入。对于同一台设备或同一位用户,应当保持其每次访问时ClientID不变。

“experiment_id”即“版本id“,应与控制台中获取到的ID保持一致。获取到版本id后,开发者可以根据不同的id值,强制进入某个版本。

注意:“experiment_id”请不要带debug字符,不然无法找到试验。

该请求返回的json数据结构:

Response 200 Headers(响应头)
Content-Type: application/json

Body
{
  "client_id": "your-clientId-maybe-imei-or-something",
  "experiment_id": "your-experiment_id",
  "experiment_name": "原始版本"
}

authkey

POST请求示例:

POST  https://auth.appadhoc.com/auth/login

Request Headers(请求头)
Content-Type: application/json
Body
{
  "email":"xxx@email.com", // 您的账号
  "password":"xxxx" // 密码
}

该请求返回的json数据结构示例:

Response 200 Headers(响应头)
Content-Type: application/json
Body
{
  "auth_key": "365303ba-b776-464b-8cc1-fcf127b1xxxx"
}

Resource

GET:https://experiment-control.appadhoc.com/apps/aeafe012-4c72-4752-99fc-72243d9d4c88/groups

Authorization

在参数列表里添加两个固定参数:

名字类型描述示例
appidString应用appKey,请在A/B测试后台“应用列表 ”页面获取,去掉ADHOC_后作为appid拼接在参数中appKey=aeafe012-4c72-4752-99fc-72243d9d4c88
groupsString试验集合606f249a-54a0-4a7c-a0a7-08e936b44f32
Auth-keyString登录时获得的Auth-key有效期七日Head中加入Auth-Key 606f249a-54a0-4a7c-a0a7-08e936b44f32

groups参数说明

名字类型描述
idString0219e26f-7050-4dfc-bb69-1408b33b4aa2试验集合id
nameStringtrace试验名称
typStringCode试验类型
appidString0219e26f-7050-4dfc-bb69-1408b33b4aa2appKey

control参数说明

名字类型描述
idString0219e26f-7050-4dfc-bb69-1408b33b4aa2试验集合id
nameString原始版本原始版本变量名称
descriptionString对照组
trafficString99流量
flagsStringpara“a”原始版本对应的flag和值
statusStringRunning试验状态
statsStringstat优化指标名称
typStringCode试验类型

experiments参数说明

名字类型描述
idString0219e26f-7050-4dfc-bb69-1408b33b4aa2试验集合id
nameString试验版本_1_trace试验版本名称
descriptionString版本1变体组
typeStringCode试验类型
trafficString0流量
flagsStringpara“a”原始版本对应的flag和值
statusStringRunning试验状态
statsStringstat优化指标名称