统计数据导出API

anwei发表于:2019年12月09日 11:04:40更新于:2019年12月09日 13:19:18

一.概述


统计数据导出分类

统计数据导出分类

相关接口

使用限制

看板数据信息

获取看板列表

获取看板中的图表信息

事件分析下载

获取事件分析数据

  • 单图下载每秒限速2次

  • 单张图表单次下载数据量上限为20万条

漏斗分析下载

获取漏斗分析数据

单图下载每秒限速2次

留存分析下载

获取留存分析数据

单图下载每秒限速2次

分群下载

获取分群列表

获取特定分群的用户列表

  • 单图下载每秒限速2次;

  • 单张图表单次下载数据量上限为20万条;

  • 分群用户较多时建议降低下载频次。

规则逻辑

获取圈选元素定义

注意事项

  • 本章节中API 的 project_id(项目UID)、dashboard_id(看板ID)、chart_id(事件分析单图ID)、funnel_id(漏斗分析单图ID)、retention_id(留存分析单图ID) 字段,均可在项目页面url中找到,如:"https://www.growingio.com/admin/projects/nxog09md/dashboard/YoX28w7R" 中的 "nxog09md" 和 "YoX28w7R" 分别是 project_id 和dashboard_id。

    • 在项目URL中获取;

    • 通过获取看板中的图表信息API,根据dashboard_id获取当前看板的所有图表信息,返回的信息中会包含图表ID,图表类型等信息。

    • 在项目URL中获取;

    • 通过获取看板列表API根据project_id获取所有看板信息。

    • dashboard_id获取方式

    • chart_id、funnel_id、retention_id的获取方式

  • 在进行导出之前,请务必参考认证,完成接口认证获取认证码 。

  • 统计数据导出的延迟一般为 30 分钟,比如导出早上 8 点到 9 点之间的数据时,一般需要 9:30 才能统计完毕。另外,每天凌晨因为需要运行天级别的统计任务,此时前一天的统计数据大概有 3-4 小时的延迟,建议在早上6点后进行导出任务。


二.接口定义

1.获取看板列表


URL

https://www.growingio.com/projects/{project_uid}/dashboards.json

请求类型

GET

请求头部

请参考认证>公共请求参数获取。

参数说明与示例

请求参数


路径参数

类型

是否必传

说明

project_uid

string

项目UID。

响应示例

[  
    {    
        "id": "Dashboard Uid",    
        "name": "我的看板",    
        "type": "看板类型", // normal: 普通看板, realtimeV2: 实时看板    
        "createdAt": "2019-01-01",   
        "updatedAt": "2019-01-02",    
        "scope": "看板所属", // global: 全局, project: 项目, user: 个人    
        "updater": "Dashboard Last Updator",    
        "creator": "Dashboard Creator"  
      },  
      ...
]


2.获取看板中的图表信息


URL

https://www.growingio.com/projects/{project_uid}/dashboards/{dashboard_id}.json

请求类型

GET

请求头参数

请参考认证>公共请求参数获取。

参数说明与示例

请求参数


路径参数

类型

是否必传

说明

dashboard_id

string

看板ID。

project_uid

string

项目UID。

响应示例

{ 
     "id": "Dashboard Uid",  
     "name": "Dashboard Name",  
     "charts": [   
           {      
              "id": "Chart Uid",      
              "name": "Chart Name",      
              "createor": "Chart Creator",      
              "createdAt": "Created Time"    
            },    
            {     
               "id": "Chart Uid",      
               "name": "Chart Name",     
               "createor": "Chart Creator",      
               "createdAt": "Created Time"   
             }  
      ]
}


3.获取事件分析数据


URL

https://www.growingio.com/v2/projects/{project_uid}/charts/{chart_id}.json

请求类型

GET

请求头参数

请参考认证>公共请求参数获取。

参数说明与示例

请求参数

路径参数

类型

是否必传

说明

chart_id

string

事件分析单图ID。

project_uid

string

项目UID。

查询参数

类型

是否必传

说明

interval

integer

数据粒度,单位为毫秒。

  • 3600000(1小时)

  • 86400000(1天)

  • 604800000(1周)

  • 2592000000(1月)

默认值86400000(1天)。

startTime

integer

数据起始时间,unix毫秒时间戳。

需与endTime一起使用。

endTime

integer

数据结束时间,unix毫秒时间戳。

需与startTime一起使用。


响应示例

{    
     "id":  "Chart  Uid",    
     "name":  "Chart  Name",    
     "startTime":  1462118400000,    
     "endTime":  1462118400000,    
     "interval":  86400000,    
     "aggregator": {    // 当大数字图时返回该字段       
          "values": [            
              27557,    // 本周期聚合值            
              25409     // 上周期聚合值        
           ]    
      }   
     "meta":  [        
           {  "name":  "目标用户",  "dimension":  true},        
           {  "name":  "城市",  "dimension":  true  },        
           {  "name":  "浏览器",  "dimension":  true  },        
           {  "name":  "Metric  1",  "metric":  true  },        
           {  "name":  "Metric  2",  "metric":  true  }    
      ],   
      "data":  [        
           //  线图        
           [目标用户,  timestamp,  metric1,  metric2],        
           [目标用户,  timestamp,  metric1,  metric2]        
           //  横向柱图        
           [目标用户,  dimension_v1,  metric1],        
           [目标用户,  dimension_v2,  metric1]        
           //  纵向柱图        
           [目标用户,  timestamp,  metric1,  metrics2],        
           [目标用户,  timestamp,  metric1,  metrics2]        
           //  表格        
           [目标用户,  dimension1_v1,  dimension2_v1,  metric1,  metric2],        
           [目标用户,  dimension1_v2,  dimension2_v1,  metric1,  metric2]        
           //  大数字        
           [目标用户,  timestamp,  metric1]        
           //  气泡图        
           [目标用户,  dimension1_v1,  dimension2_v1,  metric1,  metric2]    
      ]
}


4.获取漏斗分析数据


URL

https://www.growingio.com/v2/projects/{project_uid}/funnels/{funnel_id}.json

请求类型

GET

请求头参数

请参考认证>公共请求参数获取。

参数说明与示例

请求参数

路径参数

类型

是否必传

说明

funnel_id

string

漏斗分析单图ID。

project_uid

string

项目UID。

查询参数

类型

是否必传

说明

conversionWindow

integer

转化周期

startTime

integer

数据起始时间,unix毫秒时间错。

需与endTime一起使用。

endTime

integer

数据结束时间,unix毫秒时间戳。

需与startTime一起使用。


响应示例

200:OK

{
"id":  "Funnel Uid",
"name":  "Funnel Name",
"conversionWindow":  1,
"startTime":  1571068800000,
"endTime":  1572278399999,
"interval":  86400000,
"meta":  [    
     {"name":"目标用户","dimension":true},    
     {"name":"时间","dimension":true},    
     {"name":"总转化率","metric":true},    
     {"name":"第一步人数","metric":true},    
     {"name":"第一步转化率","metric":true},    
     ...    
     {"name":"最后一步人数","metric":true},    
     {"name":"最后一步转化率","metric":true}
]
"data":  [    
     [目标用户, 时间, 总转化率, 第一步人数, ... , 最后一步转化率],    
     [目标用户, 时间, 总转化率, 第一步人数, ... , 最后一步转化率],    
     ...
]
}


5.获取留存分析数据

URL

https://www.growingio.com/v2/projects/{project_uid}/retentions/{retention_id}.json

请求类型

GET

请求头参数

请参考认证>公共请求参数获取。

参数说明与示例

请求参数

响应示例

路径参数

类型

是否必传

说明

retention_id

string

留存分析单图ID。

project_uid

string

项目UID。

查询参数

类型

是否必传

说明

range

integer

事件范围。

  • day(日留存)

  • week(周留存)

  • month(月留存)

startTime

integer

数据起始时间,unix毫秒时间错。

需与endTime一起使用。

endTime

integer

数据结束时间,unix毫秒时间戳。

需与startTime一起使用。


响应示例

200:OK

{   
       "id":  "Retention Uid",    
       "name":  "Retention Name",    
       "range":  "day",    
       "startTime":  1569686400000,   
       "endTime":  1572278399999,    
       "interval":  86400000,    
       "meta":  [       
             {"name":"目标用户","dimension":true},        
             {"name":"对比值","dimension":true},       
             {"name":"用户行为","dimension":true},        
             {"name":"时间","dimension":true},        
             {"name":"留存人数","metric":true},       
             {"name":"当日","metric":true},        
             {"name":"当日留存率","metric":true},        
             {"name":"次日","metric":true},        
             {"name":"次日留存率","metric":true},        
             {"name":"2日后","metric":true},        
             {"name":"2日后留存率","metric":true},       
              . . .        
             {"name":"29日后","metric":true},       
             {"name":"29日后留存率","metric":true}    
       ],   
       "data":  [       
             [目标用户,对比值,用户行为,时间,留存,...,29日后留存],       
              . . .,       
             [目标用户,对比值,用户行为,时间,留存,...,29日后留存]    
       ]
}


6.获取分群列表

URL

https://www.growingio.com/projects/{project_uid}/segmentations.json

请求类型

GET

请求头参数

请参考认证>公共请求参数获取。

参数说明与示例

请求参数

路径参数

类型

是否必传

说明

project_uid

string

项目UID。

响应示例

[  
     {   
          "id": "Segmentation Uid",    
          "name": "Segmentation Name",    
          "userType": 'u',    
          "userNum": 1230,    
          "updatedAt": "2016-08-03"  
     },  
     {    
          "id": "Segmentation Uid",    
          "name": "Segmentation Name",    
          "userType": 'cs1',    
          "userNum": 1230,   
          "updatedAt": "2016-08-03"  
      },  
      ...
]


7.获取特定分群的用户列表

URL

https://www.growingio.com/projects/{project_uid}/segmentations/{segmentation_id}/users.csv

请求类型

GET

请求头参数

请参考认证>公共请求参数获取。

参数说明与示例


请求参数

路径参数

类型

是否必传

说明

segmentation_id

string

分群ID。

project_uid

string

项目UID。


响应示例

以Tab分割的csv文件格式,内容为上传用户的用户属性。

200: OK

登录用户ID     登录用户变量1   
12249   GrowingIO

访问用户ID       访问用户变量1  
12249   GrowingIO


8.获取圈选元素定义

URL

https://www.growingio.com/projects/{project_uid}/rules.csv

请求类型

GET

请求头参数

请参考认证>公共请求参数获取。

参数说明与示例

请求参数

路径参数

类型

是否必传

说明

project_uid

string

项目UID。

响应示例

  • 200:OK

ruleId,eventName,eventType
f2503720,元素_注册按钮,clck
  • 401: Unauthorized

{  
    "message": "Unauthorized",  
    "errors": []
}
  • 500: Internal Server Error

{  
     "message": "Request timeout",  
     "errors": [   
          {      
              "code": "request_timeout",      
              "message": "Request timeout in 5000 milliseconds"    
           }  
      ]
}