分群API
使用者群規則描述
規則描述部分是可嵌套的結構,較為複雜,此處單獨進行描述。
在 「新增」 使用者群時,會用到規則描述。
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 計算結束時間 } ]