菜单

分布分析模型API

一、分布分析查询

接口URL

/api/open_api/v1/analysis/distribution?token=xxx

请求方式

POST

Content-Type

application/json

请求Query参数

参数名
参数类型
是否必填
参数描述
token
String
查询token

请求Body参数

分布分析的请求参数由用户参与的事件参数(events)分组项参数(eventsGroup)时间粒度参数(eventsView)时区参数(timeZoneOffset)分析主体参数(entity),特殊地,在分布分析中如果使用"同时展示"功能,则会额外传入同时展示参数(alsoShow),如图所示

用户参与的事件参数

参数名
参数类型
是否必填
说明
events
Object
用户参与的事件参数
intervalType
String

分布区间支持以下类型

默认类型(default)会根据查询数据的最大值,最小值自动计算出一个合理的区间划分

离散类型(discretely)会根据查询的数据最大值,最小值加1递增划分区间

自定义类型(customized)会根据quotaIntervalArr参数传递的区间划分查询数据

quotaIntervalArr
List

intervalType参数为customized是需要传递划分查询数据的区间

其他字段
其他字段与事件分析模型API中关于分析指标参数(eventsSelect)一致,具体说明可翻阅事件分析模型API参考

同时展示参数

当您在分布分析中想要使用“同时展示”的功能时,还需要额外传入同时展示参数,从页面操作来看,同时展示是一个分析指标,故它的参数除了以下表格列出的intervalType, quotaIntervalArr两个参数以外,其他参数与事件分析模型API的分析指标是一致的。

如上图所示的同时展示计算方式,可用如下的示例表示

{
  "alsoShow": {
    "eventType": "default",
    "relation": "and",
    "filters": [],
    "intervalType": "default",
    "quotaIntervalArr": [
      0
    ],
    "analysis": [
      "A100"
    ],
    "displayName": "app安装(服务端)",
    "eventName": "$app_install",
    "eventDisplayName": "app安装(服务端)的总次数",
    "presetEventDisplayName": "app安装(服务端)的总次数",
    "eventID": 9213
  }
}

参数说明

参数名
参数类型
是否必填
说明
alsoShow
Object
用户参与的事件参数
intervalType
String

分布区间支持以下类型

默认类型(default)会根据查询的数据最大值,最小值自动计算出一个合理的区间划分

离散类型(discretely)会根据查询的数据最大值,最小值加1递增划分区间

自定义类型(customized)会根据quotaIntervalArr参数传递的区间划分查询数据

quotaIntervalArr
List

intervalType参数为customized是需要传递划分查询数据的区间

其他字段
其他字段与事件分析模型API中关于分析指标参数(eventsSelect)一致,具体说明可翻阅事件分析模型API参考

全局筛选、分组项与计算时间、分析主体参数


参数名
参数类型
是否必填
说明
eventsFilter
Object
通用参数,见"如何表示一个筛选项"
eventsGroup
Object

通用参数,其中globalization为计算所使用的分组项构成的列表,每一项为一个分组,每一个分组项见"如何表示一个分组项"

globalization
List[Object]
eventsView
Object

通用参数,见"如何表示计算时间范围以及计算粒度"

timeZoneOffset
Number 

计算时区,如8,-8

若未填,表示0时区

entity
Object

分析主体,分布分析支持计算不同的分析主体,例如用户、国家等,一般我们以$uid作为分析主体计算,分析主体的表示见"如何表示分析主体"

 

请求响应结果

示例

我们以下图所示的分析场景,进行API查询,那么最终返回结果如下示例

返回结果示例:

{
  "union_groups_name": [],
  "union_groups_col_name": [],
  "event_name_desc": "#app_install的次数",
  "axis_x": [
    "2024-12-21",
    "2024-12-22",
    "2024-12-23",
    "2024-12-24",
    "2024-12-25",
    "2024-12-26",
    "2024-12-27"
  ],
  "axis_y": {
    "2024-12-21": [
      {
        "group_cols": [
          "all"
        ],
        "is_total": 1,
        "total_user_num": 7736,
        "values": [
          7648,
          79,
          4,
          3,
          1,
          1,
          0
        ]
      }
    ],
    "2024-12-22": [
      {
        "group_cols": [
          "all"
        ],
        "is_total": 1,
        "total_user_num": 9636,
        "values": [
          9511,
          113,
          5,
          4,
          2,
          1,
          0
        ]
      }
    ],
    "2024-12-23": [
      {
        "group_cols": [
          "all"
        ],
        "is_total": 1,
        "total_user_num": 8351,
        "values": [
          8251,
          86,
          12,
          1,
          1,
          0,
          0
        ]
      }
    ],
    "2024-12-24": [
      {
        "group_cols": [
          "all"
        ],
        "is_total": 1,
        "total_user_num": 4325,
        "values": [
          4233,
          72,
          15,
          2,
          1,
          0,
          2
        ]
      }
    ],
    "2024-12-25": [
      {
        "group_cols": [
          "all"
        ],
        "is_total": 1,
        "total_user_num": 5295,
        "values": [
          5200,
          78,
          11,
          3,
          1,
          1,
          1
        ]
      }
    ],
    "2024-12-26": [
      {
        "group_cols": [
          "all"
        ],
        "is_total": 1,
        "total_user_num": 4037,
        "values": [
          3942,
          81,
          7,
          5,
          1,
          1,
          0
        ]
      }
    ],
    "2024-12-27": [
      {
        "group_cols": [
          "all"
        ],
        "is_total": 1,
        "total_user_num": 907,
        "values": [
          895,
          10,
          2,
          0,
          0,
          0,
          0
        ]
      }
    ]
  },
  "axis_z": [
    ",3",
    "3,6",
    "6,9",
    "9,12",
    "12,15",
    "15,18",
    "18,"
  ],
  "quota_unit": "times",
  "particle": "day",
  "entity": {
    "id": 154,
    "name": "用户ID1",
    "entity_type": "PRIMARY",
    "column_desc": "DataTower.ai 后台唯一 id,由服务端生成,区分唯一事件流",
    "column_name": "$uid",
    "column_type": "varchar",
    "data_type": "string",
    "display_name": "DT用户ID",
    "table_type": "user",
    "type": 1
  },
  "also_show_format": null,
  "date_list": [
    "2024-12-21",
    "2024-12-27"
  ],
  "is_cached": false
}

响应结果说明

字段名 字段类型 字段说明
axis_x
List[String]

由计算时间构成的字符串列表,时间表示的粒度取决于计算时传入的timeParticleSize

如果按天计算,列表长度则计算范围内的天数

axis_y
List[Object]

各个分布区间内用户参与事件以及参与同时展示事件人数构成列表

also_show_values
List[Object]

各个分布区间内用户同时参与同时展示事件人数构成的列表

group_cols
List[String]

选择分组时的数据

is_total
Number

标识是否返回了所有数据,默认返回1000个分组数据

total_also_show_value
Number

参与同时展示事件总人数

total_user_num
Number

用户参与事件总人数

values
List[Number]

各个分布区间内用户参与事件以及参与同时展示事件具体人数

axis_z
List[String]

不同分布区间构成的列表

date_list
List[String]

选择的时间范围

quota_unit
String

指明当前分布分析计算的属性分析角度

times: 次数
day: 天数
hours: 小时数
“”: 具体属性的分析角度,比如账号ID的去重数
event_name_desc
String
用户参与的事件的显示名
union_groups_col_name
List[String]

本次计算使用的分组项属性构成的数组,长度等于计算时用的分组项个数

union_groups_name
List[List[String]]

分组值构成的二维列表,即使用请求参数中的分组,最终可以将结果分成哪些组,外层长度 = 分组结果的个数,内层列表的长度 = 计算时所用的分组项个数,在使用多个分组时,分组值的顺序与union_groups_name的顺序是一致的

 

二、分布分析用户列表查询

在分布分析中,我们可以看到不同分布区间人数

接口URL

/api/open_api/v1/analysis/distribution_user_list?token=xxx

请求方式

POST

Content-Type

application/json

请求Query参数

参数名
参数类型
是否必填
参数描述
token
String
查询token

请求Body参数

请求的body参数在对应完整使用的分布分析的参数外,额外增加一项details和properties字段,来指明是需要查看查看什么时间什么分组的在什么分布区间人数

参数名
参数类型
是否必填
参数描述
details Object 查询详情
eventModel String 分布分析固定为"distribution"
interval
String
查询的分布区间, 默认为参数intervalType与quotaIntervalArr确定的第一个分布区间
sliceDate String

查询具体时间点,如"2024-01-01",注意时间一定要在eventsView表示的时间范围内

若不传,则表示查询的是总计

sliceGroup List[Object]

当计算用了分组时,需要指明最终查询的是哪个分组的列表详情,长度 = 分组项的个数

groupName String

分组属性名

groupValue String

具体分组值

tableType String

分组属性类型

sliceType String 固定传"user"
properties List[Obejct]

要查询的用户属性列表,即最终计算结果需要返回的属性

若未传,默认会查询"$uid"、"#dt_id"和"#acid"

column_name String
属性名

示例

下述示例,即表示在分布分析完成计算后,想要查看12-18这天,分组是"中国"、"ios"的当天分布区间在0到300之间的人数

{
  "firstEvent": {...},
  "returnEvent": {...},
  "alsoShow": {...},
  "eventsFilter":{...},
  "eventsGroup":{...},
  "eventsView": {...},
  "entity":{...},
  "timeZoneOffset": 8,
  "details": {
    "eventModel:"distribution",
    "interval": "0,300"
    "sliceType": "user",
    "sliceDate": "2024-12-18",
    "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"
    },
  ],
}

 

上一个
漏斗分析模型API
下一个
间隔分析模型API
最近修改: 2024-12-30