一、间隔分析查询
接口URL
/api/open_api/v1/analysis/interval?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
参数描述
|
token
|
String
|
是
|
查询token
|
请求Body参数
间隔分析的请求参数由分析主体参数(entity)、起点事件/终点事件参数(events)、间隔上限参数(windowPeriod)、全局筛选参数(eventsFilter)、分组项参数(eventsGroup)、时间粒度参数(eventsView)和时区参数(timeZoneOffset),特殊地,在间隔分析中如果打开"使用关联属性"开关,则会在起点事件/终点事件参数(events)里额外传入关联属性参数(relationProp),如图所示:
起点事件/终点事件参数
起点事件与终点事件参数用于描述在间隔分析中使用到的事件,同时可以对其每个事件单独做筛选,参数说明如下:
参数名
|
参数类型
|
是否必填
|
说明
|
events
|
List[Object]
|
是
|
[{起始事件}, {终点事件}]
|
eventName
|
String
|
是
|
事件名 特殊情况:当您想要计算“任意事件”时,该值填入“_any_” |
eventID
|
Number|String
|
否
|
事件唯一id,均为Number 特殊地,当您想要计算“任意事件”时,值为"_any_" |
eventDisplayName
|
String
|
否
|
初始事件自定义显示名,默认可以设置为事件显示名 |
relation
|
String
|
否
|
当想要对该事件进行筛选时,需要传入这三个字段,具体说明可见通用的API查询参数说明中“如何表示一个筛选” |
filterType
|
String
|
否
|
|
filters
|
List[Object]
|
否
|
|
type
|
Number
|
是
|
区分起点与终点事件
0:起点事件
1: 终点事件
|
使用关联属性参数
如上图所示的关联属性计算方式,可用如下的示例表示
{
"relationProp": {
"columnName": "#acid",
"columnType": "string",
"tableType": "event",
"columnDesc": "应用内的用户账号 ID,用户在登录状态下的唯一标识",
"extra": {
"original_column_type": "varchar",
"parent_column_type": null
}}}
参数说明
参数名
|
参数类型
|
是否必填
|
说明
|
relationProp
|
Object
|
否
|
当需要使用关联属性时,需要传入该参数
|
columnName | String | 是 |
关联属性名称
|
columnType |
String
|
是
|
关联属性数据类型
|
columnDesc
|
String
|
否
|
关联属性描述
|
tableType
|
String
|
是
|
关联属性来源类型
|
extra
|
Object
|
是
|
维度属性相关, 可以传递为{}
特别的,当存在维度属性时需要保持这个参数不为空
|
bound_prop | String | 否 |
维度属性对应原始属性名称,选择维度属性时必填
|
dimension_id |
Number
|
否 |
维度id,选择维度属性时必填
|
bound_prop_id |
Number
|
否 |
维度属性对应原始属性id,选择维度属性时必填
|
dimension_type |
String
|
否
|
|
dimension_app_id | String | 否 |
后端预制的属性为conf,其他项目特有的为项目id
|
bound_parent_prop | String | 否 |
对象子属性原始属性名称,选择对象子属性时必填
|
dimension_table_type_code | String | 否 |
区别事件属性,用户属性等
|
original_column_type | String | 是 |
子属性原始数据类型,选择子属性时必填
|
parent_column_type
|
String | 是 |
子属性的父属性类型,选择子属性时必填
|
全局筛选、分组项与计算时间、分析主体参数
参数名
|
参数类型
|
是否必填
|
说明
|
eventsFilter
|
Object
|
否
|
通用参数,见"如何表示一个筛选项" |
eventsGroup
|
Object
|
否
|
通用参数,其中globalization为计算所使用的分组项构成的列表,每一项为一个分组,每一个分组项见"如何表示一个分组项"
|
globalization |
List[Object]
|
否
|
|
eventsView
|
Object
|
是
|
|
timeZoneOffset
|
Number
|
否
|
计算时区,如8,-8 若未填,表示0时区 |
entity
|
Object
|
是
|
分析主体,间隔分析支持计算不同的分析主体,例如用户、国家等,一般我们以$uid作为分析主体计算,分析主体的表示见"如何表示分析主体" |
请求响应结果
示例
我们以下图所示的分析场景,进行API查询,那么最终返回结果如下示例
返回结果示例:
{
"union_groups_name": [
[
"100028"
],
[
"10055"
]
],
"union_groups_col_name": [
"应用版本号(event)"
],
"particle": "day",
"axis_x": [
"2024-12-25",
"2024-12-26"
],
"axis_z": [
"0, 300",
"300, 600",
"600, 900",
"900, 1200",
"1200, 1500",
"1500, 1800",
"1800, 2100",
"2100, 2400",
"2400, 2700",
"2700, 3000",
"3000, 3300",
"3300, 3600"
],
"axis_y": {
"date_entities": [
{
"date_string": "2024-12-25",
"interval_agg_value": {
"user_num": 103,
"event_num": 372,
"average": 467,
"minimum": 1,
"quarter": 24,
"median": 133,
"three_quarter": 664,
"maximum": 3060
},
"interval_distributions": [
{
"distribution": "0, 300",
"value": {
"user_num": 69,
"event_num": 230
}
},
{
"distribution": "300, 600",
"value": {
"user_num": 32,
"event_num": 42
}
},
{
"distribution": "600, 900",
"value": {
"user_num": 27,
"event_num": 38
}
},
{
"distribution": "900, 1200",
"value": {
"user_num": 14,
"event_num": 15
}
},
{
"distribution": "1200, 1500",
"value": {
"user_num": 10,
"event_num": 10
}
},
{
"distribution": "1500, 1800",
"value": {
"user_num": 10,
"event_num": 10
}
},
{
"distribution": "1800, 2100",
"value": {
"user_num": 7,
"event_num": 7
}
},
{
"distribution": "2100, 2400",
"value": {
"user_num": 6,
"event_num": 6
}
},
{
"distribution": "2400, 2700",
"value": {
"user_num": 6,
"event_num": 6
}
},
{
"distribution": "2700, 3000",
"value": {
"user_num": 6,
"event_num": 7
}
},
{
"distribution": "3000, 3300",
"value": {
"user_num": 1,
"event_num": 1
}
},
{
"distribution": "3300, 3600",
"value": {
"user_num": 0,
"event_num": 0
}
}
],
"group_entities": [
{
"groups": [
"100028"
],
"interval_agg_value": {
"user_num": 103,
"event_num": 369,
"average": 471,
"minimum": 1,
"quarter": 25,
"median": 138,
"three_quarter": 664,
"maximum": 3060
},
"interval_distributions": [
{
"distribution": "0, 300",
"value": {
"user_num": 68,
"event_num": 227
}
},
{
"distribution": "300, 600",
"value": {
"user_num": 32,
"event_num": 42
}
},
{
"distribution": "600, 900",
"value": {
"user_num": 27,
"event_num": 38
}
},
{
"distribution": "900, 1200",
"value": {
"user_num": 14,
"event_num": 15
}
},
{
"distribution": "1200, 1500",
"value": {
"user_num": 10,
"event_num": 10
}
},
{
"distribution": "1500, 1800",
"value": {
"user_num": 10,
"event_num": 10
}
},
{
"distribution": "1800, 2100",
"value": {
"user_num": 7,
"event_num": 7
}
},
{
"distribution": "2100, 2400",
"value": {
"user_num": 6,
"event_num": 6
}
},
{
"distribution": "2400, 2700",
"value": {
"user_num": 6,
"event_num": 6
}
},
{
"distribution": "2700, 3000",
"value": {
"user_num": 6,
"event_num": 7
}
},
{
"distribution": "3000, 3300",
"value": {
"user_num": 1,
"event_num": 1
}
},
{
"distribution": "3300, 3600",
"value": {
"user_num": 0,
"event_num": 0
}
}
]
},
{
"groups": [
"10055"
],
"interval_agg_value": {
"user_num": 1,
"event_num": 3,
"average": 10,
"minimum": 3,
"quarter": 3,
"median": 3,
"three_quarter": 24,
"maximum": 24
},
"interval_distributions": [
{
"distribution": "0, 300",
"value": {
"user_num": 1,
"event_num": 3
}
},
{
"distribution": "300, 600",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "600, 900",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "900, 1200",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "1200, 1500",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "1500, 1800",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "1800, 2100",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "2100, 2400",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "2400, 2700",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "2700, 3000",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "3000, 3300",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "3300, 3600",
"value": {
"user_num": 0,
"event_num": 0
}
}
]
}
]
},
{
"date_string": "2024-12-26",
"interval_agg_value": {
"user_num": 88,
"event_num": 365,
"average": 538,
"minimum": 1,
"quarter": 35,
"median": 237,
"three_quarter": 708,
"maximum": 3566
},
"interval_distributions": [
{
"distribution": "0, 300",
"value": {
"user_num": 63,
"event_num": 197
}
},
{
"distribution": "300, 600",
"value": {
"user_num": 36,
"event_num": 66
}
},
{
"distribution": "600, 900",
"value": {
"user_num": 23,
"event_num": 34
}
},
{
"distribution": "900, 1200",
"value": {
"user_num": 13,
"event_num": 14
}
},
{
"distribution": "1200, 1500",
"value": {
"user_num": 12,
"event_num": 14
}
},
{
"distribution": "1500, 1800",
"value": {
"user_num": 10,
"event_num": 11
}
},
{
"distribution": "1800, 2100",
"value": {
"user_num": 7,
"event_num": 7
}
},
{
"distribution": "2100, 2400",
"value": {
"user_num": 5,
"event_num": 5
}
},
{
"distribution": "2400, 2700",
"value": {
"user_num": 4,
"event_num": 5
}
},
{
"distribution": "2700, 3000",
"value": {
"user_num": 4,
"event_num": 5
}
},
{
"distribution": "3000, 3300",
"value": {
"user_num": 5,
"event_num": 5
}
},
{
"distribution": "3300, 3600",
"value": {
"user_num": 2,
"event_num": 2
}
}
],
"group_entities": [
{
"groups": [
"100028"
],
"interval_agg_value": {
"user_num": 88,
"event_num": 365,
"average": 538,
"minimum": 1,
"quarter": 35,
"median": 237,
"three_quarter": 708,
"maximum": 3566
},
"interval_distributions": [
{
"distribution": "0, 300",
"value": {
"user_num": 63,
"event_num": 197
}
},
{
"distribution": "300, 600",
"value": {
"user_num": 36,
"event_num": 66
}
},
{
"distribution": "600, 900",
"value": {
"user_num": 23,
"event_num": 34
}
},
{
"distribution": "900, 1200",
"value": {
"user_num": 13,
"event_num": 14
}
},
{
"distribution": "1200, 1500",
"value": {
"user_num": 12,
"event_num": 14
}
},
{
"distribution": "1500, 1800",
"value": {
"user_num": 10,
"event_num": 11
}
},
{
"distribution": "1800, 2100",
"value": {
"user_num": 7,
"event_num": 7
}
},
{
"distribution": "2100, 2400",
"value": {
"user_num": 5,
"event_num": 5
}
},
{
"distribution": "2400, 2700",
"value": {
"user_num": 4,
"event_num": 5
}
},
{
"distribution": "2700, 3000",
"value": {
"user_num": 4,
"event_num": 5
}
},
{
"distribution": "3000, 3300",
"value": {
"user_num": 5,
"event_num": 5
}
},
{
"distribution": "3300, 3600",
"value": {
"user_num": 2,
"event_num": 2
}
}
]
}
]
}
],
"group_entities": [
{
"groups": [
"100028"
],
"interval_agg_value": {
"user_num": 144,
"event_num": 734,
"average": 504,
"minimum": 1,
"quarter": 27,
"median": 192,
"three_quarter": 675,
"maximum": 3566
},
"interval_distributions": [
{
"distribution": "0, 300",
"value": {
"user_num": 105,
"event_num": 424
}
},
{
"distribution": "300, 600",
"value": {
"user_num": 53,
"event_num": 108
}
},
{
"distribution": "600, 900",
"value": {
"user_num": 45,
"event_num": 72
}
},
{
"distribution": "900, 1200",
"value": {
"user_num": 25,
"event_num": 29
}
},
{
"distribution": "1200, 1500",
"value": {
"user_num": 19,
"event_num": 24
}
},
{
"distribution": "1500, 1800",
"value": {
"user_num": 19,
"event_num": 21
}
},
{
"distribution": "1800, 2100",
"value": {
"user_num": 14,
"event_num": 14
}
},
{
"distribution": "2100, 2400",
"value": {
"user_num": 11,
"event_num": 11
}
},
{
"distribution": "2400, 2700",
"value": {
"user_num": 10,
"event_num": 11
}
},
{
"distribution": "2700, 3000",
"value": {
"user_num": 10,
"event_num": 12
}
},
{
"distribution": "3000, 3300",
"value": {
"user_num": 6,
"event_num": 6
}
},
{
"distribution": "3300, 3600",
"value": {
"user_num": 2,
"event_num": 2
}
}
]
},
{
"groups": [
"10055"
],
"interval_agg_value": {
"user_num": 1,
"event_num": 3,
"average": 10,
"minimum": 3,
"quarter": 3,
"median": 3,
"three_quarter": 24,
"maximum": 24
},
"interval_distributions": [
{
"distribution": "0, 300",
"value": {
"user_num": 1,
"event_num": 3
}
},
{
"distribution": "300, 600",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "600, 900",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "900, 1200",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "1200, 1500",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "1500, 1800",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "1800, 2100",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "2100, 2400",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "2400, 2700",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "2700, 3000",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "3000, 3300",
"value": {
"user_num": 0,
"event_num": 0
}
},
{
"distribution": "3300, 3600",
"value": {
"user_num": 0,
"event_num": 0
}
}
]
}
],
"interval_agg_value": {
"user_num": 144,
"event_num": 737,
"average": 502,
"minimum": 1,
"quarter": 27,
"median": 188,
"three_quarter": 664,
"maximum": 3566
},
"interval_distributions": [
{
"distribution": "0, 300",
"value": {
"user_num": 106,
"event_num": 427
}
},
{
"distribution": "300, 600",
"value": {
"user_num": 53,
"event_num": 108
}
},
{
"distribution": "600, 900",
"value": {
"user_num": 45,
"event_num": 72
}
},
{
"distribution": "900, 1200",
"value": {
"user_num": 25,
"event_num": 29
}
},
{
"distribution": "1200, 1500",
"value": {
"user_num": 19,
"event_num": 24
}
},
{
"distribution": "1500, 1800",
"value": {
"user_num": 19,
"event_num": 21
}
},
{
"distribution": "1800, 2100",
"value": {
"user_num": 14,
"event_num": 14
}
},
{
"distribution": "2100, 2400",
"value": {
"user_num": 11,
"event_num": 11
}
},
{
"distribution": "2400, 2700",
"value": {
"user_num": 10,
"event_num": 11
}
},
{
"distribution": "2700, 3000",
"value": {
"user_num": 10,
"event_num": 12
}
},
{
"distribution": "3000, 3300",
"value": {
"user_num": 6,
"event_num": 6
}
},
{
"distribution": "3300, 3600",
"value": {
"user_num": 2,
"event_num": 2
}
}
]
},
"entity": {
"id": 107,
"name": "用户ID",
"entity_type": "PRIMARY",
"column_desc": "DT 系统的用户唯一 ID;区分唯一事件流",
"column_name": "$uid",
"column_type": "varchar",
"data_type": "string",
"display_name": "DT 用户 ID",
"table_type": "user",
"type": 1
}
}
响应结果说明
字段名 | 字段类型 | 字段说明 |
union_groups_col_name
|
List[String] |
本次计算使用的分组项属性构成的数组,长度等于计算时用的分组项个数 |
union_groups_name
|
List[List[String]] |
分组值构成的二维列表,即使用请求参数中的分组,最终可以将结果分成哪些组,外层长度 = 分组结果的个数,内层列表的长度 = 计算时所用的分组项个数,在使用多个分组时,分组值的顺序与union_groups_col_name的顺序是一致的 |
particle
|
String |
计算聚合的时间粒度 |
axis_x
|
List[String] |
由计算时间构成的字符串列表, 如果间隔按天计算,列表长度则计算范围内的天数,按周计算则长度等于计算范围内的周数 |
axis_z
|
List[String] |
分布间隔区间 |
axis_y
|
List[Object] |
聚合数据结果 |
date_entities | List[Object] |
按日期间隔区间数据
|
date_string |
String
|
日期
|
group_entities | List[Object] |
按日期分组数据
|
interval_agg_value |
Object
|
间隔区间聚合值
|
interval_distributions | List[Object] |
间隔区间列表
|
group_entities | List[Object] | 按总计的分组数据 |
groups | List | 分组值 |
interval_agg_value | Object |
同上 |
interval_distributions | List[Object] | 同上 |
interval_agg_value
|
Object | 总计结果 |
interval_distributions
|
List[Object] |
同上 |
二、间隔分析用户列表查询
接口URL
/api/open_api/v1/analysis/interval_user_list?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
参数描述
|
token
|
String
|
是
|
查询token
|
请求Body参数
请求的body参数在对应完整使用的间隔分析的参数外,额外增加一项details和properties字段,来指明是
参数名
|
参数类型
|
是否必填
|
参数描述
|
details | Object | 是 | 查询详情 |
eventModel | String | 是 | 留存分析固定为"interval" |
sliceDate | String | 是 |
查询具体那一天的数据,对应页面表格的日期列 |
sliceGroup | List[Object] | 否 |
当计算用了分组时,需要指明最终查询的是哪个分组的列表详情,长度 = 分组项的个数 |
groupName | String | 是 |
分组属性名 |
groupValue | String | 是 |
具体分组值 |
tableType | String | 是 |
分组属性类型 |
sliceType | String | 是 | 固定传"user" |
interval |
String
|
否 |
间隔区间
|
properties | List[Obejct] | 否 |
要查询的用户属性列表,即最终计算结果需要返回的属性 若未传,默认会查询"$uid"、"#dt_id"和"#acid" |
示例
上述示例,即表示在间隔分析完成计算后,想要查看12月25号这天,分组是"100028"的当天留存人数
{
"events": [...],
"eventsFilter": {...},
"eventsGroup": {...},
"eventsView": {
"timeParticleSize": "day",
"dateList": [
"2024-12-25",
"2024-12-26"
],
"recentDay": "",
"dynamicDate": ""
},
"windowPeriod": {...},
"debugQuery": false,
"entity": {...},
"timeZoneOffset": 8,
"details": {
"sliceType": "user",
"eventModel": "interval",
"sliceDate": "2024-12-25",
"sliceGroup": [
{
"groupName": "应用版本号",
"groupValue": "100028",
"tableType": "event"
}
],
"interval": ""
},
"properties": [
{
"column_name": "$uid"
},
{
"column_name": "#dt_id"
},
{
"column_name": "#acid"
}
]
}
请求响应结果
字段名 | 字段类型 | 字段说明 |
columnMeta
|
Object |
所查询的properties的属性映射,键值对的个数 = 请求参数中properties的长度, 键名为属性名,值为属性显示名 |
data_list
|
List[Object] | 用户列表详情,长度 = 计算的结果数,对象中为属性名:属性值的键值对 |
total
|
Number | 总数,最多返回1000条 |
示例
{
"columnMeta": {
"#acid": "账号 ID",
"#app_id": "应用唯一标识",
"#app_version": "应用版本",
"#bundle_id": "应用包名",
"#carrier": "运营商",
"#city": "城市",
"#country": "国家",
"#dt_id": "访客ID",
"$uid": "DT 用户 ID"
},
"total": 1,
"data_list": [
{
"#acid": "0@5IZJI4YUWZcard_games",
"#app_id": "dt_xxxx",
"#app_version": "app2.0.1",
"#bundle_id": null,
"#carrier": "移动",
"#city": "纽约",
"#country": "中国",
"#dt_id": "dddddd",
"$uid": "123232455"
},
],
}