本文主要分为两部分:

第一部分,介绍的是用户分群管理相关的 API ,特别注意,本文不包括创建用户分群的 API 。

第二部分,介绍的是用户分群的规则描述,对应的是后台在创建用户群时可选配置的三种规则包括属性规则、事件规则、用户行为序列规则,这部分可帮助您理解用户群 API 返回的用户群规则信息。

1. 用户群 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_listapp push 配置列表list

base_time用户群计算的基准时间string
创建时不需填写(填写也无效)格式如:"2019-03-05 00:00:00"
unit用户群更新周期stringDAY目前只支持 DAY
data_type用户群数据类型stringBOOL参考 数据格式
source_type用户群类型string1规则创建的用户群

1.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,单次用户群不返回
    }
    }
    ]

1.2. 执行用户群

[POST /v2/user_groups/{id}/execute 执行标签]

  • Request(In Path):
    • base_time_list:Partition 的 base_time。 Type :List<String>,可缺省。缺省计算最近一次 Partition

  • Response 200

    {}

1.3. 获取用户群信息

[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,单次用户群不返回
    }
    }

1.4. 删除用户群

[DELETE /v2/user_groups/{id} 删除用户群]

  • Response 200

    {}

1.5. 检查用户群执行状态

[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 计算结束时间
    }
    ]

2. 用户群规则描述

规则描述整体上可分为两部分:规则之间的关系以及用户群规则。其中用户群规则分为3类,用户属性规则,用户行为规则以及行为序列。

了解用户群规则描述后,可以更好地理解获取用户群的 API 返回信息中关于规则描述的内容(即 rule_content_list 参数信息)。


2.1. 规则描述

不同的规则类型可通过 type 字段加以区分。

截图位置type 的取值含义
Arules_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<Object>

    ]
    }
  • 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

    ]
    }
    ]
    }

2.2. 事件筛选条件

截图位置type 的取值含义
Afilters_relation筛选条件之间的关系
Bfilter筛选条件


  • filters_relation

    示例展示
    {
    "type": "filters_relation", // 同一事件的筛选条件的逻辑关系
    "relation": "string", // and(且)/ or (或)
    "subfilters": [ // 只允许type为filters_relation或filter
    ]
    }
  • filter

    示例展示
     {
      "type": "filter",                   // 事件或事件型指标的数据约束
    "field": "string", // 事件属性
    "function": "string", // 筛选条件的值
    "params": [

    ]
    }