用户群规则
规则描述部分是可嵌套的结构,较为复杂,此处单独进行描述。
在 “添加” 用户群时,会用到规则描述。
rules\_relation\_node: 规则之间的逻辑关系
// 规则间逻辑关系 { "type": "rules_relation" "relation": string; // and/or "rules":[] // 只允许 type 为 "rules_relation" 和三种规则节点,不允许为空 }
rule\_node: 规则节点,分三种
// 属性规则 { "type": "profile_rule", "field": string, // 属性、用户群或属性和用户群的组合 "function": string, // 规则函数(指标约束) "params": [] // 规则条件值。List
filter\_realtion\_node: 同一事件的筛选条件的逻辑关系
{ "type": "filters_relation", "relation": string; // and/or "subfilters":[] // 只允许type为filters_relation或filter }
filter\_node: 事件或事件型指标的数据约束
{ "type": "filter" "field": string, // 事件属性 "function": string, // 筛选条件函数 "params": [] // 筛选条件的值 }
分群 API
以下接口的 request 和 response 都是 application/json 格式
公共字段 字段名、字段含义、字段类型及可选值:
字段名 | 字段含义 | 字段类型 | 是否必填 | 可选值 | 其他说明 |
---|---|---|---|---|---|
name | 用户群英文名 | string | 否 | 创建时不填写则不校验(默认给个不冲突的 name),如果填写了则会进行重名校验 | |
cname | 用户群中文名 | string | 是 | ||
comment | 用户群备注 | string | 否 | ||
cron | 调度周期 | string | 否 | cron 表达式 如:0 0 0 ? * 表示每天 0 点计算,如果是单次用户群则可缺省 | |
is_routine | 是否是例行用户群 | boolean | 否 | 如果是例行用户群,则上面的 cron 必填 | |
app_push_list | app push 配置列表 | list | 否 | ||
base_time | 用户群计算的基准时间 | string | 否 | 创建时不需填写(填写也无效)格式如:"2019-03-05 00:00:00" | |
unit | 用户群更新周期 | string | 是 | DAY | 目前只支持 DAY |
data_type | 用户群数据类型 | string | 是 | BOOL | |
source_type | 用户群类型 | string | 是 | 1 | 规则创建的用户群 |
limit | 人群数量限制 | integer | 否 | 100 | 设置人群数量限制,会在计算用户群时随机取 limit 数值的人群 注:仅支持手动分群 |
获取用户群列表
GET /v2/user_groups 获取用户群列表
- Responses 200
[ { "id": 0, "name": "string", "cname": "string", "user_name": "string", "create_time": "string", // 创建时间 "data_type": "BOOL", "unit": "HOUR", "source_type": 0, "is_routine": true, "status": "PENDING", "comment": "string", "cron": "string", "app_push_list": [ 0 ], "rule_content_list": [ // 规则创建的用户群信息, list size 为 1 { "type": "string", "relation": "string", "rules": [ {} ] } ], "failed_partition_count": 0, // 失败的 partition 数, Type:int "last_succeed_partition": { // 最后一次计算成功的 partition 信息,如果没有则不传 "base_time": "string", "finished_time": "string", // 计算的结束时间 "user_count": 0, // 计算的用户数 "status": "SUCCEED", // partition 的状态 "rule_content_list": [ { "type": "string", "relation": "string", "rules": [ {} ] } ] }, "last_partition_info": { "base_time": "string", "start_time": "string", "finished_time": "string", "user_count": 0, "status": "NEW", "next_partition_base_time": "string" // 下次计算的 base_time,单次用户群不返回 } } ]
执行用户群
POST /v2/user_groups/{id}/execute 执行用户群
- Request(In Path):
- base_time_list:Partition 的 base_time。 Type :List
,可缺省。缺省计算最近一次 Partition
- base_time_list:Partition 的 base_time。 Type :List
- Response 200
{}
获取用户群信息
GET /v2/user_groups/{id} 获取用户群信息
- Response 200
{ "id": 0, "name": "string", "cname": "string", "user_name": "string", "create_time": "string", // 创建时间 "data_type": "BOOL", "unit": "HOUR", "source_type": 0, "is_routine": true, "status": "PENDING", "comment": "string", "cron": "string", "app_push_list": [ 0 ], "rule_content_list": [ // 规则创建的用户群信息, list size 为 1 { "type": "string", "relation": "string", "rules": [ {} ] } ], "failed_partition_count": 0, // 失败的 partition 数, Type:int "last_succeed_partition": { // 最后一次计算成功的 partition 信息,如果没有则不传 "base_time": "string", "finished_time": "string", // 计算的结束时间 "user_count": 0, // 计算的用户数 "status": "SUCCEED", // partition 的状态 "rule_content_list": [ { "type": "string", "relation": "string", "rules": [ {} ] } ] }, "last_partition_info": { "base_time": "string", "start_time": "string", "finished_time": "string", "user_count": 0, "status": "NEW", "next_partition_base_time": "string" // 下次计算的 base_time,单次用户群不返回 } }
删除用户群
DELETE /v2/user_groups/{id} 删除用户群
- Response 200
{}
检查用户群执行状态
GET /v2/user_groups/{id}/status 检查用户群执行状态
- Request(In Path):
- base_time_list:用户群的 Partition 对应的 base_time,Type:List
,缺省则返回最新一个 Partition 的状态
- base_time_list:用户群的 Partition 对应的 base_time,Type:List
- Response 200
[ { "base_time": "string", "user_count": 0, // 对应 partition 的人数 "status": "NEW", // partition 的状态 "start_time": "string", // partition 计算开始时间 "finished_time": "string" // partition 计算结束时间 } ]