菜单

漏斗分析模型API

一、漏斗分析查询

接口URL

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

请求方式

POST

Content-Type

application/json

请求Query参数

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

请求Body参数

漏斗分析的请求参数由漏斗步骤(eventsSelect)分析窗口期(windowPeriod)全局筛选参数(eventsFilter)分组项参数(eventsGroup)时间粒度参数(eventsView)时区参数(timeZoneOffset)分析主体参数(entity)

漏斗步骤参数

漏斗分析中使用的漏斗步骤,即由参与漏斗的事件构成的事件列表,参数说明如下:

参数名
参数类型
是否必填
说明
eventsSelect
List[Object]
由参与漏斗的事件构成的事件列表,DataTower最多支持30个漏斗步骤
eventName
String

事件名

特殊情况:当您想要计算“任意事件”时,该值填入“_any_”

eventID
Number|String

事件唯一id,均为Number

特殊地,当您想要计算“任意事件”时,值为"_any_"

eventDisplayName
String

初始事件自定义显示名,默认可以设置为事件显示名

relation
String

当想要对该事件进行筛选时,需要传入这三个字段,具体说明可见“如何表示一个筛选”

filterType
String
filters
List[Object]

分析窗口期参数

在漏斗分析中,我们需要指明漏斗的分析窗口

参数名
参数类型
是否必填
说明
windowPeriod
List[Object]
由参与漏斗的事件构成的事件列表,DataTower最多支持30个漏斗步骤
gapTu
String

分析窗口期单位,支持"day"、"hour"、"minute"、"second"、"month"

gapMs
Number

分析窗口时间范围

全局筛选、分组项、计算时间、分析主体参数
参数名
参数类型
是否必填
说明
eventsFilter
Object
通用参数,见"如何表示一个筛选项"
eventsGroup
Object

通用参数,其中globalization为计算所使用的分组项构成的列表

注:漏斗分析只支持一个分组项

globalization
List[Object]
eventsView
Object

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

timeZoneOffset
Number 

计算时区,如8,-8

若未填,表示0时区

entity
Object

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

 

请求响应结果

示例

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

返回结果示例:

{
  "axis_x": [
    "2024-12-20",
    "2024-12-21",
    "2024-12-22",
    "2024-12-23",
    "2024-12-24",
    "2024-12-25",
    "2024-12-26"
  ],
  "axis_z": ["#ad_to_show(Step1)","#ad_show(Step2)","#ad_conversion(Step3)","#ad_close(Step4)"],
  "indicators_name": ["广告预展示(Step1)","广告展示(Step2)","广告收益转化(Step3)","广告关闭(Step4)"],
  "union_groups_name": ["应用版本号"]
  "axis_y": {
    "12042": {
      "col1": [7713,6291,1952,1591],
      "cols": [
        [1272,1064,412,326],
        [1282,1091,431,355],
        [1864,1565,435,348],
        [1759,1457,400,317],
        [808,577,145,126],
        [1443,1107,225,202],
        [294,215,32,23]
      ]
    },
    ....   // 其他分组
    "Totality": {
      "col1": [10758,8606,3084,2428],
      "cols": [
        [1852,1506,622,487],
        [1908,1595,681,529],
        [2600,2132,719,562],
        [2408,1962,614,467],
        [1114,782,254,211],
        [1722,1289,315,270],
        [361,264,47,33]
      ]
    }
  },
}

响应结果说明

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

由计算时间构成的字符串列表,长度等于计算时间范围内的天数

indicators_name
List[String]

由参与漏斗的各个事件自定义显示名后成的显示名列表,同时会注明是第几个步骤

axis_z
List[String]

 

由参与漏斗的各个事件的事件名构成的列表,同时会注明是第几个步骤

 

union_groups_name
List[String]

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

axis_y
Object

漏斗结果构成的对象,键值对的个数 = 分组结果数 + 1 (默认会有一个Totality的分组,表示合计值,当没有使用分组时,必然会返回一个Totality的键值对)

键名为分组值,值为该分组的漏斗结果,见上述结果示例

每一个分组的值是一个对象,由col1和cols组成,如上述结果,具体说明如下:

字段名 字段类型 字段说明
Totality Object 对应axis_y上面的必然会返回一个Totality的键值对
col1  List[Number]

表示该分组在所选日范围内每个步骤的合计人数,长度等于漏斗步骤数

cols List[List[Number]] 表示该分组每天每个步骤的人数,外层长度 = 分组数,内层长度 = 漏斗步骤数

 

二、漏斗分析用户列表查询

在漏斗分析中,我们可以看到在某个步骤某个分组的留存/流失人数

接口URL

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

请求方式

POST

Content-Type

application/json

请求Query参数

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

请求Body参数

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

参数名
参数类型
是否必填
参数描述
details Object 查询详情
eventModel String 漏斗分析固定为"funnel"
sliceGroup List[Object]

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

groupName String

分组属性名

groupValue String

具体分组值

tableType String

分组属性类型

sliceType String 固定传"user"
isLost Number 查看留存/流失人数,0为留存,1为流失
funnelStep Number 查看的第几个步骤
properties List[Obejct]

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

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

column_name String
属性名

示例

下述示例,即表示在漏斗分析完成计算后,想要查看分组是"ios"的第一个漏斗(选择的第一个事件)的留存人数

{
  "eventsSelect": {...},
  "eventsFilter":{...},
  "eventsGroup":{...},
  "eventsView": {...},
  "entity":{...},
  "windowPeriod":{...}
  "timeZoneOffset": 8,
  "details": {
    "eventModel":"funnel",
    "sliceType": "user",
    "sliceGroup": [
      {
        "groupName": "操作系统",
        "groupValue": "ios",
        "tableType": "event",
      }
    ],
   "funnelStep":1,
   "isLost":0 
  },
  "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