一、路径分析查询
接口URL
/api/open_api/v1/analysis/trace?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
说明
|
token
|
String
|
是
|
查询token
|
请求Body参数
请求的body参数主要由分析条件参数(events)、全局筛选参数(eventsFilter)、会话间隔时长参数(windowPeriod)、时间粒度参数(eventsView)和时区参数(timeZoneOffset)构成,各个参数与页面上的对应关系如下图所示。其中全局筛选、时间粒度和时区等参数为通用参数,可见通用参数列表。
分析条件参数
分析条件参数用于描述在路径分析中用户的操作路径,指定选中的某事件作为初始或结束事件分析用户操作行为,并可对选中事件进行拆分,参数说明如下:
参数名
|
参数类型
|
是否必填
|
说明
|
events
|
Object | 是 | 分析条件 |
byFields
|
List[Object]
|
否 |
事件拆分列表,列表中每个对象表示拆分的事件及属性说明
列表中对象结构参见通用的API查询参数说明中的“如何表示一个分组项”
注:对象结构中区别于分组项参数多出eventName参数,表示拆分的事件名称,为String类型,且为必填
|
eventNames |
List[String]
|
是 |
路径事件列表,列表中每个元素表示选择的参与分析的事件
|
sourceEvent
|
Object
|
是 |
源头事件
|
eventName
|
String
|
是
|
事件名称,特别的任意事件为“_any_”
|
relation
|
String
|
否
|
当想要对该事件进行筛选时,需要传入这三个字段,具体说明可见通用的API查询参数说明中“如何表示一个筛选”
|
filters
|
List
|
否
|
|
filterType
|
String
|
否
|
|
sourceType
|
Number
|
是 |
枚举源头事件的事件类型
开始事件:0
结束事件:1
|
基于上述说明,设定场景:查询参与app安装和app打开事件并按照app安装事件的gaid进行拆分,且以app安装为初始事件且时间位于2024年12月27号。
给予参数示例如下:
{
"events": {
"eventNames": [
"#app_install",
"#session_start"
],
"byFields": [
{
"eventName": "#app_install",
"name": "#gaid",
"display_name": "gaid",
"describe": "Google 的广告设备 ID;不同 app 在同一个设备上gaid 一样,但是因为权限可能无法获取",
"data_type": "string",
"type": 1,
"table_type": "event",
"extra": {
"original_column_type": "varchar",
"parent_column_type": null
},
"columnName": "#gaid",
"columnType": "string",
"tableType": "event",
"columnDesc": "gaid",
"propertyRangeType": 1,
"propertyRange": [
0
],
"timeGroupType": "daily",
"displayName": "gaid"
}
],
"sourceEvent": {
"eventName": "#app_install",
"relation": "and",
"filters": [
{
"filterType": "SIMPLE",
"relation": "and",
"filters": [
{
"name": "#event_time",
"display_name": "事件时间",
"describe": "事件发生时的客户端时间,获取时间戳,精确到毫秒",
"data_type": "dateTime",
"type": 1,
"table_type": "event",
"extra": {
"original_column_type": "timestamp",
"parent_column_type": null
},
"columnName": "#event_time",
"columnDesc": "事件时间",
"columnType": "dateTime",
"comparator": "C08",
"filterValue": [
{
"timeCalcMode": "static",
"dateList": [
"2024-12-27 00:00:00",
"2024-12-27 23:59:59"
]
}
],
"tableType": "event"
}
]
}
]
},
"sourceType": 0
}
}
会话间隔时长参数
会话间隔时长参数用于描述用户操作之间的间隔窗口时间,参数说明如下:
参数名
|
参数类型
|
是否必填
|
说明
|
windowPeriod
|
Object
|
是
|
分析窗口时间
|
gapMs
|
Number
|
是
|
分析窗口时间范围
|
gapTu
|
String
|
是
|
枚举起始事件与结束事件间隔时间精度
按小时:hour
按分钟:minute
按秒:second
|
基于上述说明,设定场景:设定会话间隔时长为30分钟。
给予参数示例如下:
{
"windowPeriod": {
"gapTu": "minute",
"gapMs": 30
}
}
全局筛选、时间粒度和时区
此部分参数为通用参数。
参数名
|
参数类型
|
是否必填
|
说明
|
eventsFilter
|
Object
|
否
|
通用参数,见"如何表示一个筛选项" |
eventsView
|
Object
|
是
|
|
timeZoneOffset
|
Number
|
否
|
通用参数,表示计算时区,如8、-8,若未传递,则默认表示0时区 |
请求响应结果
示例
以下图所示的分析场景,进行API查询
那么最终返回结果如下示例:
{
"by_field_format": {
"#event_time": "事件时间"
},
"event_name_format": {
"#app_install": "app安装",
"#session_start": "app打开"
},
"links": [
[
{
"source": "0_2024-12-06_#app_install",
"target": "1_#session_start",
"times": 13
},
{
"source": "0_2024-12-07_#app_install",
"target": "1_#session_start",
"times": 12
},
{
"source": "0_2024-12-09_#app_install",
"target": "1_#session_start",
"times": 12
},
{
"source": "0_2024-12-10_#app_install",
"target": "1_#session_start",
"times": 12
},
{
"source": "0_2024-12-08_#app_install",
"target": "1_#session_start",
"times": 7
},
{
"is_wastage": true,
"source": "0_2024-12-08_#app_install",
"target": "2_wastage",
"times": 93
},
{
"is_wastage": true,
"source": "0_2024-12-07_#app_install",
"target": "2_wastage",
"times": 88
},
{
"is_wastage": true,
"source": "0_2024-12-09_#app_install",
"target": "2_wastage",
"times": 88
},
{
"is_wastage": true,
"source": "0_2024-12-10_#app_install",
"target": "2_wastage",
"times": 88
},
{
"is_wastage": true,
"source": "0_2024-12-06_#app_install",
"target": "2_wastage",
"times": 87
}
],
[
{
"is_wastage": true,
"source": "1_#session_start",
"target": "3_wastage",
"times": 56
}
]
],
"source_event": "#app_install",
"source_type": 0,
"nodes": [
[
{
"event_name": "#app_install",
"id": "0_2024-12-08_#app_install",
"times": 100,
"by_value": "2024-12-08"
},
{
"event_name": "#app_install",
"id": "0_2024-12-07_#app_install",
"times": 100,
"by_value": "2024-12-07"
},
{
"event_name": "#app_install",
"id": "0_2024-12-09_#app_install",
"times": 100,
"by_value": "2024-12-09"
},
{
"event_name": "#app_install",
"id": "0_2024-12-10_#app_install",
"times": 100,
"by_value": "2024-12-10"
},
{
"event_name": "#app_install",
"id": "0_2024-12-06_#app_install",
"times": 100,
"by_value": "2024-12-06"
}
],
[
{
"event_name": "#session_start",
"id": "1_#session_start",
"times": 56
}
]
]
}
响应结果说明
参数名
|
参数类型
|
参数描述
|
by_field_format
|
Object
|
拆分字段格式化,key表示拆分时选择属性的name,value为display_name
|
event_name_format
|
Object
|
事件名格式化,key表示拆分时选择的属性的name,value为display_name
|
links
|
List[Object]
|
连接线
|
source
|
String
|
开始事件
|
target
|
String
|
结束事件
|
times
|
Number
|
会话数
|
nodes
|
List[List[Object]]
|
节点
|
by_value
|
String
|
拆分值
|
event_name
|
String
|
事件名
|
id
|
String
|
节点id
|
times
|
Number
|
会话数
|
source_event
|
String
|
源头事件
|
source_type
|
Number
|
枚举源头事件类型
开始事件:0
结束事件:1
|
二、路径分析用户列表查询
在路径分析中,我们可以在某个节点的节点详情中看到节点的具体信息,当我们想查看这些节点具体的用户列表时,可以使用路径分析的用户列表查询API。
接口URL
/api/open_api/v1/analysis/trace_user_list?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
说明
|
token
|
String
|
是
|
查询token
|
请求Body参数
请求的body参数在对应完整使用的路径分析的参数外,额外加多details和properties字段,来指明需要查看哪个节点的用户列表,参数说明如下:
参数名
|
参数类型
|
是否必填
|
说明
|
details
|
Object
|
是
|
查询详情
|
eventModel
|
String
|
是
|
分析模型,此处为路径分析故固定为“track”
|
sliceType
|
String
|
是
|
枚举列表数据类型(这个里接口为用户列表,固定为user)
用户列表:user
事件列表:event
|
sessionLevel
|
Number
|
否
|
节点所处的路径层级(从0开始计数)
|
sliceIsMore
|
bool
|
否
|
当前节点是否是 more 节点
|
nextSliceIsMore
|
String
|
否
|
要查看的下一层级节点是否是 more 节点
|
sliceEvent
|
List[Object]
|
否
|
节点的事件
|
nextSliceEvent
|
|
否
|
下一个节点事件
|
traceType
|
Number
|
否
|
枚举节点详情类型
合计:1
后续事件合计:2
流失:3
后续事件:4
|
properties
|
List[Object]
|
否
|
需要获取的用户属性,该参数默认返回"#acid"、"#dt_id"、"$uid"
|
column_name
|
String | 否 |
属性名
|
示例
下述示例,即表示在路径分析完成计算后,查看第一个节点中的用户详情。
{
"events": { ... },
"eventsFilter": { ... },
"eventsView": { ... },
"windowPeriod": { ... },
"timeZoneOffset": 2,
"details": {
"eventModel": "trace",
"sliceType": "user",
"sessionLevel": 0,
"sliceIsMore": false,
"nextSliceIsMore": false,
"sliceEvent": [
{
"sliceEventName": "#app_install"
}
],
"nextSliceEvent": [],
"traceType": 1
},
"properties": [
{
"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"
},
],
}