用户群规则
规则描述部分是可嵌套的结构,较为复杂,此处单独进行描述。
在 “添加” 用户群时,会用到规则描述。
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<Object>
}
// 事件规则
{
"type": "event_rule",
"measure": {
"type": "event_measure",
"event_name": string, // 事件名
"aggregator": string, // 指标统计方式,如count, sum之类
"field": string // optional. 某些指标统计方式对应的 field 可以为空
},
"time_function": string, // 时间区间函数
"time_params": [], // 时间区间参数
"function": string, // 规则函数 (指标约束)
"params": [], // 规则条件。不出现指标
"filters": [] // 筛选条件。可以为空列表,不为空时只有一个元素,filter_relation_node或filter_node
}
// 行为序列规则
{
"type": "event_sequence_rule",
"time_function": string, // 行为序列的时间函数
"time_params": [], // 行为序列的时间区间参数
"steps":
[
{
"event": string, // 事件名1/虚拟事件1
"filters": [] // 筛选条件,同上
},
{
"event": string, // 事件名2/虚拟事件2
"filters": [] // 筛选条件,同上
}
]
}
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",
"start_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<String>,可缺省。缺省计算最近一次 Partition
- 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",
"start_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<String>,缺省则返回最新一个 Partition 的状态
- Response 200
[
{
"base_time": "string",
"user_count": 0, // 对应 partition 的人数
"status": "NEW", // partition 的状态
"start_time": "string", // partition 计算开始时间
"finished_time": "string" // partition 计算结束时间
}
]