一、属性分析查询
接口URL
/api/open_api/v1/analysis/composition?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
参数描述
|
token
|
String
|
是
|
查询token
|
请求Body参数
属性分析的请求参数由分析属性参数(composition)、全局筛选参数(filters)、分组统计参数(groups)、时区参数(timeZoneOffset)组成,特殊地,分组统计的方式有两种,分别为按分组项进行分组统计以及按人群对比进行分组统计
分析属性参数
参数名
|
参数类型
|
是否必填
|
说明
|
composition
|
Object
|
是
|
用户参与的事件参数 |
analysis
|
String
|
是
|
计算类型,具体每个计算值类型所对应的枚举可见表,特别的,用户数对应表中的出发用户数
|
analysisDesc
|
List
|
否
|
分析属性的描述 |
boundProp
|
Object
|
否
|
聚合计算所用的属性说明,即描述本指标计算所需要用的属性
|
extra
|
Object
|
否
|
参考下面extra参数解释 |
compositionDisplay
|
String
|
否
|
分析属性显示名 |
property
|
String
|
否
|
属性的分析角度的属性名称,比如账户ID的去重数时,需要必传这个属性名称,特别的当算事件的“用户数”时,可不传 |
propertyDesc
|
String
|
否
|
属性的分析角度的属性描述 |
extra参数解释
由于对象属性以及维度属性等存在父属性等关联属性,所以需要extra参数标识,为其他属性时,extra可以保持为空对象即{},使用过程中,有参数疑问时,请联系DT团队
当为维度属性时
字段
|
字段类型
|
说明
|
bound_prop
|
String
|
属性名称
|
dimension_id
|
Number
|
维度id
|
bound_prop_id
|
Number
|
维度属性对应原始属性id
|
bound_parent_prop
|
String
|
属性对应父属性名称
|
original_column_type
|
String
|
本身属性在数据库中的类型
‘varchar’、'int'、'array' 等
|
当为子属性(包含对象子属性,对象组子属性,列表子属性等)时
字段
|
字段类型
|
说明
|
original_column_type
|
String
|
本身属性在数据库中的类型
‘varchar’、'int'、'array' 等
|
bound_parent_prop
|
String
|
属性对应父属性名称
|
parent_column_type
|
String
|
子属性父属性数据类型
'string'、'number'、'boolean'、'dateTime'、'cluster'、'tag'、'array'、 'object'、'objectArray'
|
分组统计参数
按不同方式进行分组统计功能如下图所示,
参数名
|
参数类型
|
是否必填
|
说明
|
groups
|
Object
|
是
|
分组统计相关参数 |
groupType
|
String
|
是
|
分组统计的方式有两种 crowds: 表示按人群对比进行分组统计 normal: 表示按分组项进行分组统计 |
1️⃣ 按照分组项进行分组统计
当您选择按照表示按分组项进行分组统计即groupType为normal时, 分组项是一个用户相关的属性,故它的参数除了tableType不能为event以外,与通用的API查询参数说明中分组项一致
参数说明
参数名
|
参数类型
|
是否必填
|
说明
|
groups | Object | 是 | 分组统计相关参数 |
userGroups
|
除了tableType不能为event以外,与通用的API查询参数说明中分组项一致 |
2️⃣ 按照人群对比进行分组统计
参数说明
参数名
|
参数类型
|
是否必填
|
说明
|
groups | Object | 是 | 分组统计相关参数 |
crowdFilter
|
不是必填,传入三个字段relation、filterType、filters,该部分的传参与全局筛选参数一致,详见全局筛选参数 | ||
crowdName
|
String
|
否 | 人群对比显示名 |
serialNumber
|
int
|
是 | 指明当前人群对比参数是第几个 |
全局筛选与计算时区参数
参数名
|
参数类型
|
是否必填
|
说明
|
filters
|
Object
|
否
|
通用参数,见"如何表示一个筛选项" |
timeZoneOffset
|
Number
|
否
|
计算时区,如8,-8 若未填,表示0时区 |
请求响应结果
示例
我们以按照人群对比分组统计分析场景,进行API查询,那么最终返回结果如下示例
返回结果示例:
{
"propertyDesc": "用户数",
"values": [
{
"groupCol": [
"人群1"
],
"value": 13
},
{
"groupCol": [
"人群2"
],
"value": 1461650
}
],
"groupDetail": {
"groupType": "crowds",
"groupNumber": 1,
"groupCols": [],
"groupColumns": [
[
"人群1",
"人群2"
]
]
}
}
响应结果说明
字段名 | 字段类型 | 字段说明 |
propertyDesc
|
String
|
分析属性描述 |
groupDetail
|
Object |
分析属性返回的具体数据 |
groupCols
|
List[String] |
分组显示名称列表
|
groupColumns
|
List[List[String]]
|
分组具体数据列表
|
groupNumber
|
Number
|
分组数
|
groupType
|
String
|
分组统计的方式有两种 crowds: 表示按人群对比进行分组统计 normal: 表示按分组项进行分组统计 |
values
|
List[Object]
|
分析属性具体数据构成的列表
|
groupCol
|
List[String]
|
分组名称列表列表
|
value
|
Number
|
指标值
|
示例
我们以按照分组项分组统计分析场景,进行API查询,那么最终返回结果如下示例
返回结果示例:
{
"propertyDesc": "用户数",
"compositionDisplay": "",
"values": [
{
"groupCol": [
"总体"
],
"value": 51709609
}
],
"groupDetail": {
"groupType": "normal",
"groupNumber": 1,
"groupCols": [],
"groupColumns": [
[
"总体"
]
]
}
}
响应结果说明
响应结果说明
字段名 | 字段类型 | 字段说明 |
propertyDesc
|
String
|
分析属性描述 |
groupDetail
|
Object |
分析属性返回的具体数据 |
groupCols
|
List[String] |
分组显示名称列表
|
groupColumns
|
List[List[String]]
|
分组具体数据列表
|
groupNumber
|
Number
|
分组数
|
groupType
|
String
|
分组统计的方式有两种 crowds: 表示按人群对比进行分组统计 normal: 表示按分组项进行分组统计 |
values
|
List[Object]
|
分析属性具体数据构成的列表
|
groupCol
|
List[String]
|
分组名称列表列表
|
value
|
Number
|
指标值
|
二、属性分析用户列表查询
在属性分析中, 我们可以查看按分组项或者人群对比进行分组统计的用户数
接口URL
/api/open_api/v1/analysis/composition_user_list?token=xxx
请求方式
POST
Content-Type
application/json
请求Query参数
参数名
|
参数类型
|
是否必填
|
参数描述
|
token
|
String
|
是
|
查询token
|
请求Body参数
请求的body参数在对应完整使用的属性分析的参数外,额外增加一项details和properties字段,来指明是按照什么进行分组统计的用户数
参数名
|
参数类型
|
是否必填
|
参数描述
|
details | Object | 是 | 查询详情 |
eventModel | String | 是 | 漏斗分析固定为"composition" |
sliceGroup | List[Object] | 否 |
当计算用了分组时,需要指明最终查询的是哪个分组的列表详情,长度 = 分组项的个数 |
groupName | String | 是 |
分组属性名 |
groupValue | String | 是 |
具体分组值 |
tableType | String | 是 |
分组属性类型 |
sliceType | String | 是 | 固定传"user" |
properties | List[Obejct] | 否 |
要查询的用户属性列表,即最终计算结果需要返回的属性 若未传,默认会查询"$uid"、"#dt_id"和"#acid" |
column_name | String | 否 |
属性名
|
示例
下述示例,即表示在属性分析完成计算后,想要查看分组是"中国"、"ios"的用户数
示例
下述示例,即表示在分布分析完成计算后,想要查看12-18这天,分组是"中国"、"ios"的当天分布区间在0到300之间的人数
{
"firstEvent": {...},
"returnEvent": {...},
"alsoShow": {...},
"eventsFilter":{...},
"eventsGroup":{...},
"eventsView": {...},
"entity":{...},
"timeZoneOffset": 8,
"details": {
"eventModel":"distribution",
"sliceType": "user",
"sliceGroup": [
{
"groupName": "国家",
"groupValue": "中国",
"tableType": "event",
},
{
"groupName": "操作系统",
"groupValue": "ios",
"tableType": "event",
}
]
},
"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": "dt_xxxx",
"#app_version": "app2.0.1",
"#bundle_id": null,
"#carrier": "移动",
"#city": "纽约",
"#country": "中国",
"#dt_id": "dddddd",
"$uid": "123232455"
},
],
}