4.6. API接口
优质
小牛编辑
145浏览
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
在参数列表里添加两个固定参数:
名字 | 类型 | 描述 | 示例 |
---|---|---|---|
appid | String | 应用appKey,请在A/B测试后台“应用列表 ”页面获取,去掉ADHOC_后作为appid拼接在参数中 | appKey=aeafe012-4c72-4752-99fc-72243d9d4c88 |
groups | String | 试验集合 | 606f249a-54a0-4a7c-a0a7-08e936b44f32 |
Auth-key | String | 登录时获得的Auth-key有效期七日 | Head中加入Auth-Key 606f249a-54a0-4a7c-a0a7-08e936b44f32 |
groups参数说明
名字 | 类型 | 值 | 描述 |
---|---|---|---|
id | String | 0219e26f-7050-4dfc-bb69-1408b33b4aa2 | 试验集合id |
name | String | trace | 试验名称 |
typ | String | Code | 试验类型 |
appid | String | 0219e26f-7050-4dfc-bb69-1408b33b4aa2 | appKey |
control参数说明
名字 | 类型 | 值 | 描述 |
---|---|---|---|
id | String | 0219e26f-7050-4dfc-bb69-1408b33b4aa2 | 试验集合id |
name | String | 原始版本 | 原始版本变量名称 |
description | String | 对照组 | |
traffic | String | 99 | 流量 |
flags | String | para | “a”原始版本对应的flag和值 |
status | String | Running | 试验状态 |
stats | String | stat | 优化指标名称 |
typ | String | Code | 试验类型 |
experiments参数说明
名字 | 类型 | 值 | 描述 |
---|---|---|---|
id | String | 0219e26f-7050-4dfc-bb69-1408b33b4aa2 | 试验集合id |
name | String | 试验版本_1_trace | 试验版本名称 |
description | String | 版本1 | 变体组 |
type | String | Code | 试验类型 |
traffic | String | 0 | 流量 |
flags | String | para | “a”原始版本对应的flag和值 |
status | String | Running | 试验状态 |
stats | String | stat | 优化指标名称 |