本文主要分为两部分:
第一部分,介绍的是用户分群管理相关的 API ,特别注意,本文不包括创建用户分群的 API 。
第二部分,介绍的是用户分群的规则描述,对应的是后台在创建用户群时可选配置的三种规则包括属性规则、事件规则、用户行为序列规则,这部分可帮助您理解用户群 API 返回的用户群规则信息。
用户群 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 | 规则创建的用户群 |
获取用户群列表
[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
,可缺省。缺省计算最近一次 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
,缺省则返回最新一个 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 计算结束时间
}
]
用户群规则描述
规则描述整体上可分为两部分:规则之间的关系以及用户群规则。其中用户群规则分为3类,用户属性规则,用户行为规则以及行为序列。
了解用户群规则描述后,可以更好地理解获取用户群的 API 返回信息中关于规则描述的内容(即 rule_content_list 参数信息)。
规则描述
不同的规则类型可通过 type 字段加以区分。
截图位置 | type 的取值 | 含义 |
---|---|---|
A | rules_relation | 规则之间逻辑关系 |
B | profile_rule | 用户属性 |
event_rule | 用户行为 | |
event_sequence_rule | 行为序列 |
rules_relation
示例展示{"type": "rules_relation",
"relation": "string", // and(且)/ or (或)
"rules": [ // 只允许 type 为 "rules_relation" 和三种规则节点,不允许为空
]
}profile_rule
示例展示{"type": "profile_rule",
"field": "string", // 属性、标签/用户群或属性和标签/用户群的组合
"function": "string", // 规则函数(指标约束)
"params": [ // 规则条件值。List
]
}event_rule
示例展示{
"type": "event_rule",
"measure": {
"type": "event_measure",
"event_name": "string", // 事件名
"aggregator": "string", // 时间区间参数
"field": "string" // optional. 某些指标统计方式对应的 field 可以为空
},
"time_function": "string", // 时间区间函数
"time_params": [ // 时间区间参数
],
"function": "string", // 规则函数 (指标约束)
"params": [ // 规则条件。不出现指标
],
"filters": [ // 筛选条件。可以为空列表,不为空时只有一个元素,filter_relation_node或filter_node
]
}event_sequence_rule
示例展示{"type": "event_sequence_rule",
"time_function": "string", // 行为序列的时间函数
"time_params": [ // 行为序列的时间区间参数
],
"steps":[
{
"event": "string", // 事件名1/虚拟事件1
"filters": [ // 筛选条件。可以为空列表,不为空时只有一个元素,filter_relation_node或filter_node
]
},
{
"event": "string", // 事件名2/虚拟事件2
"filters": [ // 筛选条件。可以为空列表,不为空时只有一个元素,filter_relation_node或filter_node
]
}
]
}
事件筛选条件
截图位置 | type 的取值 | 含义 |
---|---|---|
A | filters_relation | 筛选条件之间的关系 |
B | filter | 筛选条件 |
filters_relation
示例展示{
"type": "filters_relation", // 同一事件的筛选条件的逻辑关系
"relation": "string", // and(且)/ or (或)
"subfilters": [ // 只允许type为filters_relation或filter
]
}filter
示例展示{"type": "filter", // 事件或事件型指标的数据约束
"field": "string", // 事件属性
"function": "string", // 筛选条件的值
"params": [
]
}