云开发 /getStatistics # cloudbase.getStatistics > 本接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。 > 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0` 获取云开发数据接口 调用方式: - [HTTPS 调用](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/cloudbase/cloudbase.getStatistics.html#method-http) - [云调用](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/cloudbase/cloudbase.getStatistics.html#method-cloud) ## HTTPS 调用 ### 请求地址 ```text POST https://api.weixin.qq.com/tcb/getstatistics?access_token=TOKEN ``` ### 请求参数 | 属性 | 类型 | 默认值 | 必填 | 说明 | | :------------------------------------ | :-------- | :----- | :--- | :----------------------------------------------------------- | | access_token / cloudbase_access_token | string | | 是 | [接口调用凭证](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html) | | action | string | | 是 | 获取动作,目前支持(smsMarketingOverviewData:短信营销概览数据;smsMarketingConversionData:短信营销转化数据;smsMarketingRealTimeData:短信营销实时数据) | | begin_date | number | | 是 | 开始时间戳 | | end_date | number | | 是 | 结束时间戳 | | page_offset | number | | 是 | 分页 offset【action 取 smsMarketingOverviewData、smsMarketingConversionData 时必填】 | | page_limit | number | | 是 | 分页 limit【action 取 smsMarketingOverviewData、smsMarketingConversionData 时必填】 | | condition | Condition | | 是 | 查询条件 | ### 返回值 ### Object 返回的 JSON 数据包 | 属性 | 类型 | 说明 | | :------------ | :------------- | :----------------------------------------------------------- | | env_id | string | [环境 ID](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/quickstart.html#_2-开通云开发、创建环境) | | activity_id | string | 活动 ID | | by_channel_id | string | 是否按渠道划分(0:返回概览数据;1:返回各个渠道的数据,可以用于饼图)【action 取 smsMarketingOverviewData 时必填】 | | channel_id | string | 渠道 ID(云开发 CMS 使用 `_cms_sms_`)【action 取 smsMarketingConversionData、smsMarketingRealTimeData 时必填】 | | act_type | string | 行为数据(h5:打开 H5;wxapp:跳转小程序)【action == smsMarketingRealTimeData 时必填】 | | errcode | number | 错误码 | | data_column | Array.<Object> | 数据列定义 | | data_value | Array.<Object> | 数据行 | | total_num | number | 总行数 | **errcode 的合法值** | 值 | 说明 | 最低版本 | | :---- | :----------------------------- | :------- | | 0 | 请求成功 | | | -1 | 系统繁忙,此时请开发者稍候再试 | | | 10011 | 没有数据 | | **data_column 的结构** | 属性 | 类型 | 说明 | | :------------ | :----- | :--------------------------------------- | | col_id | string | 列 id | | col_name | string | 列名 | | col_data_type | string | 数据类型(0:string;1:number;2:double) | **data_value 的结构** | 属性 | 类型 | 说明 | | :--------- | :------------- | :----- | | data_value | Array.<string> | 数据值 | ### 请求概览数据示例 ```json { "action":"smsMarketingOverviewData", "begin_date": 1614182400, "end_date": 1614268800, "page_offset":0, "page_limit":1000, "condition": { "env_id":"xxx", "activity_id":"xxx", "by_channel_id":"0" } } ``` ### 请求概览数据(按渠道)示例 ```json { "action":"smsMarketingOverviewData", "begin_date": 1614182400, "end_date": 1614268800, "page_offset":0, "page_limit":1000, "condition": { "env_id":"xxx", "activity_id":"xxx", "by_channel_id":"1" } } ``` ### 请求漏斗图数据示例 ```json { "action":"smsMarketingConversionData", "begin_date": 1614182400, "end_date": 1614268800, "page_offset":0, "page_limit":1000, "condition": { "env_id":"xxx", "activity_id":"xxx", "channel_id":"xxx" } } ``` ### 请求打开 H5 实时数据示例 ```json { "action":"smsMarketingRealTimeData", "begin_date": 1614182400, "end_date": 1614268800, "condition": { "env_id":"xxx", "activity_id":"xxx", "channel_id":"xxx", "act_type":"h5" } } ``` ### 返回漏斗数据示例 ```json { "data_column":[ { "col_id":"appid", "col_name":"小程序id", "col_data_type":"0" }, { "col_id":"env_id", "col_name":"环境id", "col_data_type":"0" }, { "col_id":"activity_id", "col_name":"活动id", "col_data_type":"0" }, { "col_id":"channel_id", "col_name":"渠道", "col_data_type":"0" }, { "col_id":"h5_open_uercnt", "col_name":"h5打开人数", "col_data_type":"1" }, { "col_id":"jump_wxapp_uercnt", "col_name":"小程序跳转人数", "col_data_type":"1" }, { "col_id":"sms_send_uercnt", "col_name":"短信下发人数", "col_data_type":"1" }, { "col_id":"sms_send_list", "col_name":"下发记录数组", "col_data_type":"0" }, { "col_id":"jump_wxapp_uercnt_percent", "col_name":"跳转人数渠道占比", "col_data_type":"2" }, { "col_id":"h5_open_uercnt_percent", "col_name":"h5打开人数渠道占比", "col_data_type":"2" }, { "col_id":"h5_sms_rate", "col_name":"短信到h5转化率", "col_data_type":"2" }, { "col_id":"jump_h5_rate", "col_name":"h5到跳转转化率", "col_data_type":"2" } ], "data_value":[ { "data_value":[ "xxxxxxxxxxxxxxxxxx", "wedcvfr", "21ded5cb6001691405171ba161c603d1", "_cms_sms_", "5000", "3000", "10000", "[task1:5000,task2:5000]", "0.535714", "0.625", "0.5", "0.6" ] } ], "total_num":1 } ``` ## 云调用 > [云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)是微信云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 `wx-server-sdk` 使用。 ### 接口方法 ```js openapi.cloudbase.getStatistics ``` > 需在 `config.json` 中配置 `cloudbase.getStatistics` API 的权限,[详情](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html#usage-3) ### 请求参数 | 属性 | 类型 | 默认值 | 必填 | 说明 | | :--------- | :-------- | :----- | :--- | :----------------------------------------------------------- | | action | string | | 是 | 获取动作,目前支持(smsMarketingOverviewData:短信营销概览数据;smsMarketingConversionData:短信营销转化数据;smsMarketingRealTimeData:短信营销实时数据) | | beginDate | number | | 是 | 开始时间戳 | | endDate | number | | 是 | 结束时间戳 | | pageOffset | number | | 是 | 分页 offset【action 取 smsMarketingOverviewData、smsMarketingConversionData 时必填】 | | pageLimit | number | | 是 | 分页 limit【action 取 smsMarketingOverviewData、smsMarketingConversionData 时必填】 | | condition | Condition | | 是 | 查询条件 | ### 返回值 ### Object 返回的 JSON 数据包 | 属性 | 类型 | 说明 | | :---------- | :------------- | :----------------------------------------------------------- | | envId | string | [环境 ID](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/quickstart.html#_2-开通云开发、创建环境) | | activityId | string | 活动 ID | | byChannelId | string | 是否按渠道划分(0:返回概览数据;1:返回各个渠道的数据,可以用于饼图)【action 取 smsMarketingOverviewData 时必填】 | | channelId | string | 渠道 ID(云开发 CMS 使用 `_cms_sms_`)【action 取 smsMarketingConversionData、smsMarketingRealTimeData 时必填】 | | actType | string | 行为数据(h5:打开 H5;wxapp:跳转小程序)【action == smsMarketingRealTimeData 时必填】 | | errCode | number | 错误码 | | dataColumn | Array.<Object> | 数据列定义 | | dataValue | Array.<Object> | 数据行 | | totalNum | number | 总行数 | **errCode 的合法值** | 值 | 说明 | 最低版本 | | :--- | :--- | :------- | | 0 | 成功 | | **dataColumn 的结构** | 属性 | 类型 | 说明 | | :---------- | :----- | :--------------------------------------- | | colId | string | 列 id | | colName | string | 列名 | | colDataType | string | 数据类型(0:string;1:number;2:double) | **dataValue 的结构** | 属性 | 类型 | 说明 | | :-------- | :------------- | :----- | | dataValue | Array.<string> | 数据值 | ### 异常 ### Object 抛出的异常 | 属性 | 类型 | 说明 | | :------ | :----- | :----- | | errCode | number | 错误码 | **errCode 的合法值** | 值 | 说明 | 最低版本 | | :---- | :----------------------------- | :------- | | -1 | 系统繁忙,此时请开发者稍候再试 | | | 10011 | 没有数据 | | ### 请求概览数据示例 ```js const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event, context) => { try { const result = await cloud.openapi.cloudbase.getStatistics({ "action": 'smsMarketingOverviewData', "condition": { "envId": 'xxx', "activityId": 'xxx', "byChannelId": '0' }, "beginDate": 1614182400, "endDate": 1614268800, "pageOffset": 0, "pageLimit": 1000 }) return result } catch (err) { return err } } ``` ### 请求概览数据(按渠道)示例 ```js const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event, context) => { try { const result = await cloud.openapi.cloudbase.getStatistics({ "action": 'smsMarketingOverviewData', "condition": { "envId": 'xxx', "activityId": 'xxx', "byChannelId": '1' }, "beginDate": 1614182400, "endDate": 1614268800, "pageOffset": 0, "pageLimit": 1000 }) return result } catch (err) { return err } } ``` ### 请求漏斗图数据示例 ```js const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event, context) => { try { const result = await cloud.openapi.cloudbase.getStatistics({ "action": 'smsMarketingConversionData', "condition": { "envId": 'xxx', "activityId": 'xxx', "channelId": 'xxx' }, "beginDate": 1614182400, "endDate": 1614268800, "pageOffset": 0, "pageLimit": 1000 }) return result } catch (err) { return err } } ``` ### 请求打开 H5 实时数据示例 ```js const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event, context) => { try { const result = await cloud.openapi.cloudbase.getStatistics({ "action": 'smsMarketingRealTimeData', "condition": { "envId": 'xxx', "activityId": 'xxx', "channelId": 'xxx', "actType": 'h5' }, "beginDate": 1614182400, "endDate": 1614268800 }) return result } catch (err) { return err } } ``` ### 返回漏斗数据示例 ```json { "dataColumn": [ { "colId": "appid", "colName": "小程序id", "colDataType": "0" }, { "colId": "env_id", "colName": "环境id", "colDataType": "0" }, { "colId": "activity_id", "colName": "活动id", "colDataType": "0" }, { "colId": "channel_id", "colName": "渠道", "colDataType": "0" }, { "colId": "h5_open_uercnt", "colName": "h5打开人数", "colDataType": "1" }, { "colId": "jump_wxapp_uercnt", "colName": "小程序跳转人数", "colDataType": "1" }, { "colId": "sms_send_uercnt", "colName": "短信下发人数", "colDataType": "1" }, { "colId": "sms_send_list", "colName": "下发记录数组", "colDataType": "0" }, { "colId": "jump_wxapp_uercnt_percent", "colName": "跳转人数渠道占比", "colDataType": "2" }, { "colId": "h5_open_uercnt_percent", "colName": "h5打开人数渠道占比", "colDataType": "2" }, { "colId": "h5_sms_rate", "colName": "短信到h5转化率", "colDataType": "2" }, { "colId": "jump_h5_rate", "colName": "h5到跳转转化率", "colDataType": "2" } ], "dataValue": [ { "dataValue": [ "xxxxxxxxxxxxxxxxxx", "wedcvfr", "21ded5cb6001691405171ba161c603d1", "_cms_sms_", "5000", "3000", "10000", "[task1:5000,task2:5000]", "0.535714", "0.625", "0.5", "0.6" ] } ], "totalNum": 1, "errMsg": "openapi.cloudbase.getStatistics:ok" } ```