一.概述
统计数据导出分类 | 相关接口 | 使用限制 |
看板数据信息 | 无 | |
事件分析下载 |
| |
漏斗分析下载 | 单图下载每秒限速2次 | |
留存分析下载 | 单图下载每秒限速2次 | |
分群下载 |
| |
规则逻辑 | 无 |
本章节中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.获取看板列表
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.获取看板中的图表信息
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.获取事件分析数据
https://www.growingio.com/v2/projects/{project_uid}/charts/{chart_id}.json
GET
请求参数
路径参数 | 类型 | 是否必传 | 说明 |
chart_id | string | 是 | 事件分析单图ID。 |
project_uid | string | 是 | 项目UID。 |
查询参数 | 类型 | 是否必传 | 说明 |
interval | integer | 否 | 数据粒度,单位为毫秒。
默认值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.获取留存分析数据
https://www.growingio.com/v2/projects/{project_uid}/retentions/{retention_id}.json
请求类型
GET
请求头参数
参数说明与示例
请求参数
响应示例
路径参数 | 类型 | 是否必传 | 说明 |
retention_id | string | 是 | 留存分析单图ID。 |
project_uid | string | 是 | 项目UID。 |
查询参数 | 类型 | 是否必传 | 说明 |
range | integer | 否 | 事件范围。
|
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.获取分群列表
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.获取圈选元素定义
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"
}
]
}