一、事件分析查询
接口URL
/api/open_api/v1/analysis/events?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
参数描述
|
token
|
String
|
是
|
查询token
|
请求Body参数
请求的body参数主要由分析指标参数(eventsSelect)、全局筛选参数(eventsFilter)、分组项参数(eventsGroup)、时间粒度参数(eventsView)和时区参数(timeZoneOffset)构成,各个参数与页面上的对应关系如下图所示。其中全局筛选、分组项和时区参数为通用参数,可见通用参数列表
分析指标参数
参数名
|
参数类型
|
是否必填
|
说明
|
eventsSelect
|
List[Object]
|
是
|
|
1️⃣ 默认事件类型
默认事件指的是形如上图的分析对象,即计算“某事件的某某值“,当前DataTower支持计算事件的总次数、事件的触发用户数、事件的人均次数,以及事件某个具体属性的聚合值。其中聚合值会基于属性的类型不同而有所差异。详细参考:分析API中使用到的枚举聚合类型枚举
属性类型 | 支持的聚合值 |
文本 | 去重数 |
数值 | 总和、平均值、人均值、最大值、中位数、最小值、去重数以及多种分位数 |
布尔 | 去重数、为真数、为假数、为空数、不为空数 |
日期与时间 | 去重数 |
列表 | 列表去重数、集合去重数、元素去重数 |
对象 | 去重数、为空数、不为空数 |
对象组 | 去重数、为空数、不为空数 |
对于默认事件类型的分析指标对象,我们可以如下述示例表示:
{
"eventDisplayName": "默认事件类型" // 默认为"xxx事件的xxx值",可根据需要修改为有意义的字符串
"eventName": "#ad_show",
"eventID": 4671,
"eventType": "default",
"analysis": ["A100"],
"boundProp": [],
"relation": "and",
"filters": [],
"filterType": "SIMPLE",
}
参数说明:
参数名
|
参数类型
|
是否必填
|
说明
|
eventDisplayName
|
String
|
是
|
分析指标的名称,可自定义,用来表示这个指标的名字,与返回结果会一一对应 |
eventName
|
String
|
是
|
事件名 特殊情况:当您想要计算“任意事件”时,该值填入“_any_” |
eventID
|
Number|String
|
是
|
事件唯一id,均为Number 特殊地,当您想要计算“任意事件”时,值为"_any_" |
eventType
|
String
|
是
|
默认事件类型下,该值固定为"default" |
analysis
|
List[String]
|
是
|
计算类型,长度最多两位
具体每个计算值类型所对应的枚举可见表 |
boundProp
|
List[Object]
|
否
|
聚合计算所用的属性说明,即描述本指标计算所需要用的属性
|
relation
|
String
|
否
|
当想要对该事件进行筛选时,需要传入这三个字段,该部分的传参与全局筛选参数一致,详见全局筛选参数 |
filterType
|
String
|
否
|
|
filters
|
List[Object]
|
否
|
2️⃣ 自定义公式类型
自定义公式类型指的是由多个默认事件类型通过四则运算组成的一个复杂分析对象,对于上图所示自定义公式类型的分析指标对象,我们可以如下述示例表示:
{
"eventDisplayName": "自定义事件1",
"eventType": "customized",
"customEvents": "#app_install.#acid.A109 / #session_start.A100",
"format": "TWO DECIMALS",
"filterType": "SIMPLE",
"relation": "and",
"filters": [],
"customFilters": [
{ "filterType": "SIMPLE", "relation": "and","filters": [ ]},
{ "filterType": "SIMPLE","relation": "and","filters": [ ]}
],
"boundProp": [
{
"id": 1443086,
"table_type": 0,
"name": "#acid",
"display_name": "账号 ID",
"type": 1,
"data_type": "string"
},
null
],
}
参数说明:
参数名
|
参数类型
|
是否必填
|
说明
|
eventDisplayName
|
String
|
是
|
分析指标的名称,可自定义,用来表示这个指标的名字,与返回结果会一一对应 |
eventType
|
String
|
是
|
自定义公式类型,该值固定为"customized" |
customEvents
|
String
|
是
|
自定义公式的字符串表示,每一个运算因子可简单表示为"事件.属性.聚合值"的形式 其中:事件需要事件名;如果需要计算属性聚合值,则需要书写属性名,计算总次数、触发用户数和人均次数则不需要属性;聚合值则直接写枚举值即可。 |
format | String | 是 |
计算结果的精度,包括: 两位小数:'TWO DECIMALS' 三位小数:'THREE DECIMALS' 四位小数:'FOUR DECIMALS' 五位小数:'FIVE DECIMALS' 六位小数:'SIX DECIMALS' 百分比:'PERCENTAGE' 取整:'ROUND' |
relation
|
String
|
否
|
对公式中用到的所有事件做筛选时,需要用到 与全局筛选参数一致,详见全局筛选参数 |
filterType
|
String
|
否
|
|
filters
|
List[Object]
|
否
|
|
customFilters
|
List[Object]
|
否
|
公式中每个事件独立的筛选,每个都是一条筛选,与公式中的事件顺序需要一一对应 |
boundProp
|
List[Object]
|
否
|
聚合计算所用的属性说明,即表明本指标计算所需要用的属性,长度与公式中所用到的默认事件类型指标的个数一致。 其中计算“总次数”、“触发用户数”和“人均次数”的位置,需要用null占位 |
全局筛选、分组项与计算时间参数参数
参数名
|
参数类型
|
是否必填
|
说明
|
eventsFilter
|
Object
|
否
|
通用参数,见"如何表示一个筛选项" |
eventsGroup
|
Object
|
否
|
通用参数,其中globalization为计算所使用的分组项构成的列表,每一项为一个分组,每一个分组项见"如何表示一个分组项"
|
globalization |
List[Object]
|
否
|
|
eventsView
|
Object
|
是
|
通用参数,见"如何表示计算时间范围以及计算粒度" |
timeZoneOffset
|
Number
|
否
|
计算时区,如8,-8 若未填,表示0时区 |
请求响应结果
示例
我们以下图所示的分析场景,进行API查询,那么最终返回结果如下示例
返回结果示例:
{
"axis_x": ["2024-12-18","2024-12-19","2024-12-20","2024-12-21","2024-12-22","2024-12-23","2024-12-24"],
"total_amount": [[5507,3.64],[5407,3.76],[5371,3.7],[5371,3.71],[5353,3.71],[5345,3.74],[5290,3.68],[5198,3.74]],
"overview": [
[
{
"method": "phase_total",
"data": [5507,5407,5371,5371,5353,5345,5290,5198]
},
{
"method": "phase_mean",
"data": [786.71,772.43, 767.29,767.29,764.71,763.57,755.71,742.57]
}
],
[
{
"method": "phase_mean",
"data": [0.52,0.54,0.53,0.53,0.53,0.53,0.53,0.53]
},
{
"method": "phase_total",
"data": [3.64,3.76,3.7,3.71,3.71,3.74,3.68,3.74
]
}
]
],
"particle": "day",
"hasMore": false,
"indicators_name": ["默认事件类型指标","自定义事件1"],
"union_groups_name": ["国家(event)"],
"union_groups": [
["中国"],["朝鲜"],["越南"],["韩国"],["美国"],["印度"],["日本"],["新加坡"]
],
"union_groups_col_name": ["国家(event)"],
"axis_y": [
{
"默认事件类型指标": [
{
"group_cols_name": ["国家(event)"],
"group_cols": ["中国"],
"group_num": 8,
"values": [1089,1272,936,1320,600,253,37],
"masked": [false]
},
{
"group_cols_name": [ "国家(event)"],
"group_cols": ["朝鲜"],
"group_num": 8,
"values": [1051,1258,945,1275,597,239,42],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["越南"],
"group_num": 8,
"values": [1017,1235,956,1292,584,250,37],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["韩国"],
"group_num": 8,
"values": [1056,1272,919,1310,552,234,28],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["美国"],
"group_num": 8,
"values": [1048,1253,918,1298,570,226,40],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["印度"],
"group_num": 8,
"values": [1046,1264,932,1274,569,227,33],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["日本"],
"group_num": 8,
"values": [1011,1226,953,1264,573,236,27],
"masked": [ false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["新加坡"],
"group_num": 8,
"values": [1019,1221,900,1227,566,226,39],
"masked": [false]
}
]
},
{
"自定义事件1": [
{
"group_cols_name": ["国家(event)"
],
"group_cols": ["中国"],
"group_num": 8,
"values": [0.12,0.22,0.46,0.4,0.54,0.94,0.97],
"masked": [false]
},
{"group_cols_name": ["国家(event)"],
"group_cols": ["朝鲜"],
"group_num": 8,
"values": [0.12,0.24,0.46,0.39,0.57,0.97,1],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["越南"],
"group_num": 8,
"values": [0.11,0.23,0.44,0.4,0.57,0.95,1],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["韩国"],
"group_num": 8,
"values": [0.11,0.22,0.48,0.38,0.55,0.96,1],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["美国"],
"group_num": 8,
"values": [0.12,0.22,0.48,0.4,0.56,0.94,1],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["印度"],
"group_num": 8,
"values": [0.13,0.23,0.46,0.39,0.58,0.94,1],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["日本"],
"group_num": 8,
"values": [0.11,0.24,0.44,0.39,0.58,0.92,1],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["新加坡"],
"group_num": 8,
"values": [0.14,0.23,0.46,0.4,0.55,0.96,1],
"masked": [false]
}
]
}
],
"comparedValue": [
{
"particle": "day",
"hasMore": false,
"total_amount": [[6697,1.62],[6617,1.63],[6530,1.54],[6568,1.65],[6529,1.65],[6558,1.62],[6550,1.58],[6369,1.67]],
"overview": [
[
{
"method": "phase_total",
"data": [6697,6617,6530,6568,6529,6558,6550,6369]
},
{
"method": "phase_mean",
"data": [956.71,945.29,932.86,938.29,932.71,936.86,935.71,909.86]
}
],
[
{
"method": "phase_mean",
"data": [0.23,0.23,0.22,0.24,0.24,0.23,0.23,0.24]
},
{
"method": "phase_total",
"data": [1.62,1.63,1.54,1.65,1.65,1.62,1.58,1.67]
}
]
],
"indicators_name": ["默认事件类型指标","自定义事件1"],
"union_groups_name": ["国家(event)"],
"union_groups": [["中国"],["朝鲜"],["越南"],["韩国"],["美国"],["印度"],["日本"],["新加坡"]],
"union_groups_col_name": ["国家(event)"],
"axis_x": ["2024-12-11","2024-12-12","2024-12-13","2024-12-14","2024-12-15","2024-12-16","2024-12-17"],
"axis_y": [
{
"默认事件类型指标": [
{
"group_cols_name": ["国家(event)"],
"group_cols": ["中国"],
"group_num": 8,
"values": [809,1159,1138,551,1139,1201,700],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": [ "朝鲜"],
"group_num": 8,
"values": [817,1146,1106,537,1106,1175,730],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["越南"],
"group_num": 8,
"values": [801,1128,1081,546,1107,1160,707],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["韩国"],
"group_num": 8,
"values": [795,1150,1110,517,1142,1191,663],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["美国"],
"group_num": 8,
"values": [790,1140,1122,516,1109,1195,657],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["印度"],
"group_num": 8,
"values": [770,1137,1097,537,1125,1189,703],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["日本"],
"group_num": 8,
"values": [815,1125,1075,566,1094,1160,715],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["新加坡"],
"group_num": 8,
"values": [761,1079,1064,521,1094,1176,674],
"masked": [false]
}
]
},
{
"自定义事件1": [
{
"group_cols_name": ["国家(event)"],
"group_cols": ["中国"],
"group_num": 8,
"values": [0.38,0.15,0.13,0.13,0.34,0.17,0.31],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["朝鲜"],
"group_num": 8,
"values": [0.38,0.16,0.13,0.12,0.32,0.18,0.34],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["越南"],
"group_num": 8,
"values": [0.36,0.15,0.12,0.1,0.33,0.17,0.3],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["韩国"],
"group_num": 8,
"values": [0.42,0.15,0.11,0.15,0.32,0.17,0.33],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["美国"],
"group_num": 8,
"values": [0.41,0.15,0.12,0.15,0.32,0.18,0.32],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["印度"],
"group_num": 8,
"values": [0.37,0.15,0.11,0.13,0.34,0.18,0.33],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": ["日本"],
"group_num": 8,
"values": [0.37,0.14,0.13,0.12,0.32,0.2,0.31],
"masked": [false]
},
{
"group_cols_name": ["国家(event)"],
"group_cols": [ "新加坡"],
"group_num": 8,
"values": [0.4,0.17,0.11,0.14,0.35,0.19,0.32],
"masked": [false]
}
]
}
]
}
],
}
响应结果说明
字段名 | 字段类型 | 字段说明 |
axis_x
|
List[String] |
由计算时间构成的字符串列表,时间表示的粒度取决于计算时传入的timeParticleSize 如果按天计算,列表长度则计算范围内的天数 |
total_amount
|
List[List[Number|String]] |
表示每一个分组在计算之间范围各个指标的合计值,是一个二维列表。外层长度 = 分组的长度(即按照所选的分组,一共可以分多少个组,与union_groups的长度和顺序一致),内层长度 = 分析指标的个数(即请求参数中eventsSelect的长度,顺序与分析指标的顺序一一对应) 特殊地,如果没有使用分组,则外层长度 = 1 |
overview
|
List[List[Object]] |
表示每一个分组在计算之间范围各个指标的阶段值,是一个二维列表。外层长度 = 分析指标的个数(即请求参数中eventsSelect的长度,顺序与分析指标的顺序一一对应),内层长度2,分别表示阶段总值和阶段均值,"phase_total"表示阶段总值,"phase_mean"表示阶段均值,data为每天的阶段值列表,长度等于axis_x的长度,顺序一一对应 |
indicators_name
|
List[String] |
分析指标名列表,长度 = 分析指标的个数,即请求参数中eventsSelect的长度,顺序和值与请求参数中的顺序以及值一一对应, |
union_groups_name
|
List[String] |
本次计算使用的分组项属性构成的数组,长度等于计算时用的分组项个数 |
union_groups
|
List[List[String]] |
分组值构成的二维列表,即使用请求参数中的分组,最终可以将结果分成哪些组,外层长度 = 分组结果的个数,内层列表的长度 = 计算时所用的分组项个数,在使用多个分组时,分组值的顺序与union_groups_name的顺序是一致的 |
axis_y
|
Object |
每个指标的计算结果详细数据,是一个对象,表示每一个分析指标在各个分组结果中,每个时间下的结果 键值队的个数 = 分析指标的个数(即请求参数中eventsSelect的长度),键名 = 分析指标的显示名,值就是该指标的在每个分组下每个时间的计算结果,是一个List[Object],长度 = 分组值的个数,与union_groups的外层长度一致,列表中的每一项就是描述该分组的详细数据,其中最重要的是两个字段: - group_cols:分组值构成的列表,长度 = 所用分组项个数 - values:该分组下每个时间下的计算结果构成的列表,长度 = axis_x的长度
|
compared_value
|
List[Object] |
当使用了对比时段时,会额外返回的结果,长度 = 所用的对比时段个数,可以看到每一项就是一个完整的data,就不再额外赘述 |
进阶功能使用
1️⃣ 在事件分析中使用复合指标
复合指标类型指的是,通过【数据管理】中的【分析指标】创建的事件或留存类型的复合指标。
复合指标可以用在默认事件类型和自定义公式中,如下图所示,为复合指标的默认事件分析计算,和在自定义公式中使用复合指标的示例:
对应的参数的变化就是:将原本使用事件名的字段,填入指标名(可在【分析指标】中查询对应的指标的指标名)即可,由于复合指标已经包括属性聚合值计算,故不再需要填写对应的内容,同时有额外字段来描述复合指标的类型以及其他详细信息。
如果在默认事件类型的中使用复合指标进行分析计算时,如图中第一个指标,我们可以用如下示例来表示:
{
"displayName": "复合指标计算",
"eventName": "MC@active_user_above", // 事件名使用指标名,另外也不需要analysis字段
"eventDisplayName": "活跃用户(前台)",
"relation": "and",
"filters": [],
"filterType": "SIMPLE",
"isMetrics":2, // 表明指标最终计算的类型,1表示该复合指标是计算总次数,2表示该复合指标计算的是触发用户数,0表示该复合指标是计算其他类型的聚合值
}
如果在自定义公式事件类型的中使用复合指标进行分析计算时,如图中第二个指标,我们可以用如下示例来表示:
{
"eventType": "customized",
"customEvents": "MC@new_day1_retention_above + 1", // 公式中指标占位处用指标名替换
"format": "TWO DECIMALS",
"eventDisplayName": "复合指标自定义公式",
"filterType": "SIMPLE",
"relation": "and",
"customFilters": [],
"boundProp": [null],
"retention_metrics": [
{
"gapMs": 1,
"gapTu": "DAY",
"metric": "RETENTION_RATE"
}
] // 留存类指标,需要指明留存类型,同时因为是自定义公式,需要按公式顺序进行列表展示
}
2️⃣使用事件拆分功能
当我们使用自定义公式计算时,如果有多个事件进行参与,但是我们只想对其中某一个事件进行分组时,就会使用到事件拆分的功能。例如,我们想计算"广告点击的总次数"/ "app启动的总次数",其中分子的"广告点击"事件想按国家分组,如图所示
此时请求参数有如下调整:
参数名
|
参数类型
|
说明
|
eventsSelect |
List[Number],当指标类型为自定义公式时,且使用到拆分时,必填 表明公式中第几个事件需要进行拆分 |
|
eventSplitIndex | ||
eventsSpliter
|
Object | 使用事件拆分时,必填,表述拆分项 |
eventsToSplit
|
List[Object] |
参与拆分的事件列表
|
splitPriority
|
String |
对于图中的"首先"/"最后",表示拆分与分组的优先级,其中: "first":先拆分事件再对所有事分组; "last":先分组再对事件拆分 |
propertyGroup | List[Object] | 拆分的属性列表,每一项表示一个属性,与分组项一致,可见"如何表示一个分组项" |
如图所示的例子下,我们用如下参数完整表示:
{
"eventsSelect": [
{
"eventType": "customized",
"customEvents": "ad_click.A100 / #app_start.A100",
"format": "TWO DECIMALS",
"eventDisplayName": "自定义事件1",
"boundProp": [null, null],
"eventSplitIndex": [0]
}
],
"eventsView": ...,
"eventsSpliter": {
"eventsToSplit": [
{
"eventName": "ad_click",
"eventID": 6313
}
],
"splitPriority": "first",
"propertyGroup": [
{
"type": 0,
"columnType": "string",
"columnName": "#country",
"displayName": "国家",
"tableType": "event"
}
]
},
"timeZoneOffset": 8
}
3️⃣使用日期对比功能
在事件分析中,您还可以添加对比日期,来进行多个时间段的对比计算,如图:
此时您只需要在计算时间参数中,补充相关参数即可
参数名
|
参数类型
|
说明
|
eventsView | 当需要使用日期对比功能时,需要在eventsView中补充compareDate字段 | |
compareDate | List[Object] | 对比时间段,为一个列表,支持多个对比时间,每一个就是一个计算时间参数(不含timeParticleSize) |
如上图中,我们添加了两个对比时段,则计算时间的参数如下:
{
"eventsView": {
"timeParticleSize": "day",
"recentDay": "0$$6", // 原始时间,即最近7天
"comparedDate": [
{
"recentDay": "7$$13" // 第一个对比时间,13天前到7天前
},
{
"recentDay": "2024-12-04@@17" // 第二个对比时间,2024-12-04到17天前
}
]
}
}
二、事件列表与用户列表查询
在事件分析中,我们使用默认事件类型进行计算事件的"总次数"和"触发用户数"后,还可以点击表格中的数值,查询对应列表
接口URL
事件列表:/api/open_api/v1/analysis/event_list?token=xxx
用户列表:/api/open_api/v1/analysis/event_user_list?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
参数描述
|
token
|
String
|
是
|
查询token
|
请求Body参数
请求的body参数在对应完整使用的事件分析的参数外,额外增加一项details和properties字段,来指明是需要查看什么时间什么分组什么指标的事件/用户列表
参数名
|
参数类型
|
是否必填
|
参数描述
|
details | Object | 是 | 查询详情 |
eventModel | String | 是 | 事件分析固定为"events" |
eventNumer | Number | 否 |
指明要查询的分析指标为eventSelects中的第几个, 若不传,则默认为第一个指标 |
sliceDate | String | 否 |
查询具体时间点,如"2024-01-01",注意时间一定要在eventsView表示的时间范围内 若不传,则表示查询的是总计 |
sliceGroup | List[Object] | 否 |
当计算用了分组时,需要指明最终查询的是哪个分组的列表详情,长度 = 分组项的个数 |
groupName | String | 是 |
分组属性名 |
groupValue | String | 是 |
具体分组值 |
tableType | String | 是 |
分组属性类型 |
sliceType | String | 是 |
指明查询事件列表还是用户列表 "event":事件列表,当计算的是事件“总次数”时使用 "user":用户列表,当计算的是事件“触发用户数”时使用 |
properties | List[Obejct] | 否 |
要查询的事件/用户属性列表,即最终计算结果需要返回的属性 若未传,默认会查询"$uid"、"#dt_id"和"#acid" |
column_name | String | 否 |
属性名
|
示例
下述示例,即表示在事件分析完成计算后,想要查看12-18这天,分组是"中国"、"ios"的事件列表,另外要看事件的一些属性
{
"eventsSelect": [...],
"eventsFilter": {...},
"eventsGroup": {...},
"eventsView": {...},
"timeZoneOffset": 8,
"details": {
"sliceType": "event",
"sliceDate": "2024-12-18",
"sliceGroup": [
{
"groupName": "国家",
"groupValue": "中国",
"tableType": "event",
"masked": false
},
{
"groupName": "操作系统",
"groupValue": "ios",
"tableType": "event",
"masked": false
}
],
},
"properties": [
{"column_name": "#acid"},
{"column_name": "#app_id"},
{"column_name": "#app_version"},
{"column_name": "#bundle_id"},
{"column_name": "#carrier"},
{"column_name": "#city"},
{"column_name": "#dt_id"},
{"column_name": "$uid"},
{"column_name": "#country"}]
}
请求响应结果
字段名 | 字段类型 | 字段说明 |
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": "dtd_demo_casual",
"#app_version": "app2.0.1",
"#bundle_id": null,
"#carrier": "移动",
"#city": "纽约",
"#country": "中国",
"#dt_id": "723f89f2db7502131316c191529e8ec893YlhRL7",
"$uid": "1610816377009717410"
},
],
}
三、全量查询
如果您想查询全量数据,可以通过全量查询的open-api进行,需要注意的是:全量查询是异步操作,调用api不会直接返回查询结果,而是创建一个查询任务,您需要通过其他接口查询任务的执行状态,当任务执行成功后,查询结果会以文件的形式返回
其中:全量下载任务的接口频率限定为:1分钟最多10次。如果超过该频次,请求都会被视为恶意请求,而被拦截
3.1 创建全量查询任务
接口URL
/api/open_api/v1/analysis/events_create_download?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
参数描述
|
token
|
String
|
是
|
open-api的查询token
|
请求Body参数
响应示例
{
"code": 2000,
"message": "OK",
"data": {
"taskId": "7b989c56-02fa-11f0-8085-916bc5d74ea3" // 本次全量查询的任务id
}
}
3.2 查询全量计算任务的状态
接口URL
/api/open_api/v1/analysis/events_fetch_data?token={token}&taskId={task_id}
请求方式
GET
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
参数描述
|
token
|
String
|
是
|
open-api的查询token
|
taskId
|
String
|
否
|
查询任务 uuid, 缺省时获取完整列表
|
请求响应
响应示例
{
"code": 2000,
"message": "OK",
"data": [
{
"runningMs": 1,
"progress": 100,
"name": "events-analysis_全量数据.csv",
"projectId": "dt_app_id",
"status": "SUCCESS",
"createTime": "2025-03-20 02:55:45",
"fileSize": 48,
"taskId": "xxxxxxxxxx",
"filePath": "https://dt.dleverything.com/full_data_download/xxxxxx.csv"
}
]
}
字段名 | 字段类型 | 字段说明 |
data
|
List[Object]
|
计算任务详情组成的列表 |
-runningMs
|
int
|
执行耗时 |
-progress
|
int |
当前执行进度 |
-name
|
string
|
下载目标文件的文件名
|
-projectId
|
string
|
DT项目ID
|
-status
|
string
|
任务当前状态
|
-createTime
|
string
|
文件创建时间
|
-fileSize
|
int |
文件大小
|
-taskId
|
string
|
查询任务 uuid
|
-filePath
|
string
|
下载生成的全量数据文件的获取地址
|