# 获取用户小程序访问分布数据

[调试诊断](https://developers.weixin.qq.com/console/devtools/debug?utm_source=api_tools)

> 接口应在服务器端调用，不可在前端（小程序、网页、APP等）直接调用，具体可参考[接口调用指南](/doc/oplatform/developers/dev/guide.md)。

接口英文名：getVisitDistribution

该接口用于获取用户小程序访问分布数据。

## 1. 调用方式

### HTTPS 调用

```bash
POST https://api.weixin.qq.com/datacube/getweanalysisappidvisitdistribution?access_token=ACCESS_TOKEN
```

> **支持加密请求：** 本接口支持服务通信二次加密和签名，可有效防止数据篡改与泄露。[查看详情](/miniprogram/dev/server/getting_started/api_signature)

### 云调用

- 调用方法：analysis.getVisitDistribution

- 出入参和 HTTPS 调用相同，调用方式可查看 [云调用](/doc/oplatform/developers/dev/cloudCall.md) 说明文档。

### 第三方调用

- 本接口支持第三方平台代商家调用。

- 该接口所属的权限集 id 为：18

- 服务商获得其中之一权限集授权后，可通过使用 [authorizer_access_token](/doc/oplatform/developers/dev/AuthorizerAccessToken.md) 代商家进行调用，具体可查看 [第三方调用](/doc/oplatform/Third-party_Platforms/2.0/Before_Develop/call_interface.md) 说明文档。

## 2. 请求参数

### 查询参数 `Query String Parameters`

```json
[
  {
    "参数名": "access_token",
    "类型": "string",
    "必填": "是",
    "说明": "接口调用凭证，可使用 [access_token](/miniprogram/dev/server/API/mp-access-token/api_getaccesstoken)、[authorizer_access_token](/doc/oplatform/openApi/ticket-token/api_getauthorizeraccesstoken.md)"
  }
]
```

### 请求体 `Request Payload`

```json
[
  {
    "参数名": "begin_date",
    "类型": "string",
    "必填": "是",
    "说明": "开始日期。格式为 yyyymmdd"
  },
  {
    "参数名": "end_date",
    "类型": "string",
    "必填": "是",
    "说明": "结束日期，限定查询 1 天数据，允许设置的最大值为昨日。格式为 yyyymmdd"
  }
]
```

## 3. 返回参数

### 返回体 `Response Payload`

```json
[
  {
    "参数名": "ref_date",
    "类型": "string",
    "说明": "日期，格式为 yyyymmdd"
  },
  {
    "参数名": "list",
    "类型": "objarray",
    "说明": "数据列表"
  }
]
```

">

### Res.list(Array) `Object Payload`

数据列表

```json
[
  {
    "参数名": "index",
    "类型": "string",
    "说明": "分布类型。枚举值为：access_source_session_cnt（访问来源分布）、access_staytime_info（访问时长分布）、access_depth_info（访问深度的分布\t）"
  },
  {
    "参数名": "item_list",
    "类型": "objarray",
    "说明": "分布数据列表"
  }
]
```

__item_list">

### Res.list(Array).item_list `Object Payload`

分布数据列表

```json
[
  {
    "参数名": "key",
    "类型": "number",
    "说明": "场景 id，定义在各个 index 下不同，具体参见下方表格"
  },
  {
    "参数名": "value",
    "类型": "number",
    "说明": "该场景 id 访问 pv"
  }
]
```

## 4. 注意事项

#### index 的合法值

| 值 | 说明 | 
| -- | ---- | 
| access_source_session_cnt | 访问来源分布 |  
| access_staytime_info | 访问时长分布 |  
| access_depth_info | 访问深度的分布 |  

#### 访问来源 key 对应关系（index='access_source_session_cnt')，场景值说明参见[场景值](/miniprogram/dev/reference/scene-list.md)

| key  | 访问来源            | 对应场景值                              |
| :--- | :------------------ | :-------------------------------------- |
| 1    | 小程序历史列表      | 1001 1002 1004                          |
| 2    | 搜索                | 1005 1006 1027 1042 1053 1106 1108 1132 |
| 3    | 会话                | 1007 1008 1044 1093 1094 1096           |
| 4    | 扫一扫二维码        | 1011 1025 1047 1105 1124 1150           |
| 5    | 公众号主页          | 1020                                    |
| 6    | 聊天顶部            | 1022                                    |
| 7    | 系统桌面            | 1023 1113 1114 1117                     |
| 8    | 小程序主页          | 1024 1135                               |
| 9    | 附近的小程序        | 1026 1033 1068                          |
| 11   | 模板消息            | 1014 1043 1107 1162                     |
| 12   | 客服消息            | 1021                                    |
| 13   | 公众号菜单          | 1035 1102 1130                          |
| 14   | APP分享             | 1036                                    |
| 15   | 支付完成页          | 1034 1060 1072 1097 1109 1137 1149      |
| 16   | 长按识别二维码      | 1012 1048 1050 1125                     |
| 17   | 相册选取二维码      | 1013 1049 1126                          |
| 18   | 公众号文章          | 1058 1091                               |
| 19   | 钱包                | 1019 1057 1061 1066 1070 1071           |
| 20   | 卡包                | 1028 1128 1148                          |
| 21   | 小程序内卡券        | 1029 1062                               |
| 22   | 其他小程序          | 1037                                    |
| 23   | 其他小程序返回      | 1038                                    |
| 24   | 卡券适用门店列表    | 1052                                    |
| 25   | 搜索框快捷入口      | 1054                                    |
| 26   | 小程序客服消息      | 1073 1081                               |
| 27   | 公众号下发          | 1074 1076 1082 1152                     |
| 28   | 系统会话菜单        | 1080 1083 1088                          |
| 29   | 任务栏-最近使用     | 1089                                    |
| 30   | 长按小程序菜单圆点  | 1085 1090 1147                          |
| 31   | 连wifi成功页        | 1064 1078                               |
| 32   | 城市服务            | 1092                                    |
| 33   | 微信广告            | 1045 1046 1067 1084 1095                |
| 34   | 其他移动应用        | 1065 1069 1111 1140                     |
| 35   | 发现入口-我的小程序 | 1003 1103                               |
| 36   | 任务栏-我的小程序   | 1104                                    |
| 37   | 微信圈子            | 1138 1163                               |
| 38   | 手机充值            | 1098                                    |
| 39   | H5                  | 1018 1055                               |
| 40   | 插件                | 1040 1041 1099                          |
| 41   | 大家在用            | 1118 1145                               |
| 42   | 发现页              | 1112 1141 1142 1143                     |
| 43   | 浮窗                | 1131                                    |
| 44   | 附近的人            | 1075 1134                               |
| 45   | 看一看              | 1115                                    |
| 46   | 朋友圈              | 1009 1110 1154 1155                     |
| 47   | 企业微信            | 1119 1120 1121 1122 1123 1156           |
| 48   | 视频                | 1136 1144                               |
| 49   | 收藏                | 1010                                    |
| 50   | 微信红包            | 1100                                    |
| 51   | 微信游戏中心        | 1079 1127                               |
| 52   | 摇一摇              | 1039 1077                               |
| 53   | 公众号导购消息      | 1157                                    |
| 54   | 识物                | 1153                                    |
| 55   | 小程序订单          | 1151                                    |
| 56   | 小程序直播          | 1161                                    |
| 57   | 群工具              | 1158 1159 1160                          |
| 10   | 其他                | 除上述外其余场景值                      |

#### 访问来源 key 对应关系（index='access_staytime_info')

| key  | 访问时长 |      
| :--- | :------- | 
| 1    | 0-2s     |      
| 2    | 3-5s     |      
| 3    | 6-10s    |      
| 4    | 11-20s   |      
| 5    | 20-30s   |      
| 6    | 30-50s   |      
| 7    | 50-100s  |      
| 8    | >100s    |      

#### 平均访问深度 key 对应关系（index='access_depth_info'）

| key  | 访问时长 |      
| :--- | :------- | 
| 1    | 1 页     |      
| 2    | 2 页     |      
| 3    | 3 页     |      
| 4    | 4 页     |      
| 5    | 5 页     |      
| 6    | 6-10 页  |      
| 7    | >10 页   |      

## 5. 代码示例

### 5.1 HTTPS调用

请求示例

```json
{
  "begin_date": "20170313",
  "end_date": "20170313"
}
```

返回示例

```json
{
  "ref_date": "20170313",
  "list": [
    {
      "index": "access_source_session_cnt",
      "item_list": [
        {
          "key": 10,
          "value": 5
        },
        {
          "key": 8,
          "value": 687
        },
        {
          "key": 7,
          "value": 10740
        },
        {
          "key": 6,
          "value": 1961
        },
        {
          "key": 5,
          "value": 677
        },
        {
          "key": 4,
          "value": 653
        },
        {
          "key": 3,
          "value": 1120
        },
        {
          "key": 2,
          "value": 10243
        },
        {
          "key": 1,
          "value": 116578
        }
      ]
    },
    {
      "index": "access_staytime_info",
      "item_list": [
        {
          "key": 8,
          "value": 16329
        },
        {
          "key": 7,
          "value": 19322
        },
        {
          "key": 6,
          "value": 21832
        },
        {
          "key": 5,
          "value": 19539
        },
        {
          "key": 4,
          "value": 29670
        },
        {
          "key": 3,
          "value": 19667
        },
        {
          "key": 2,
          "value": 11794
        },
        {
          "key": 1,
          "value": 4511
        }
      ]
    },
    {
      "index": "access_depth_info",
      "item_list": [
        {
          "key": 5,
          "value": 217
        },
        {
          "key": 4,
          "value": 3259
        },
        {
          "key": 3,
          "value": 32445
        },
        {
          "key": 2,
          "value": 63542
        },
        {
          "key": 1,
          "value": 43201
        }
      ]
    }
  ]
}
```

### 5.2 云函数调用

请求示例

```json
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.analysis.getVisitDistribution({
        "beginDate": '20170313',
        "endDate": '20170313'
      })
    return result
  } catch (err) {
    return err
  }
}

返回示例

```json
{
  "refDate": "20170313",
  "list": [
    {
      "index": "access_source_session_cnt",
      "itemList": [
        {
          "key": 10,
          "value": 5
        },
        {
          "key": 8,
          "value": 687
        },
        {
          "key": 7,
          "value": 10740
        },
        {
          "key": 6,
          "value": 1961
        },
        {
          "key": 5,
          "value": 677
        },
        {
          "key": 4,
          "value": 653
        },
        {
          "key": 3,
          "value": 1120
        },
        {
          "key": 2,
          "value": 10243
        },
        {
          "key": 1,
          "value": 116578
        }
      ]
    },
    {
      "index": "access_staytime_info",
      "itemList": [
        {
          "key": 8,
          "value": 16329
        },
        {
          "key": 7,
          "value": 19322
        },
        {
          "key": 6,
          "value": 21832
        },
        {
          "key": 5,
          "value": 19539
        },
        {
          "key": 4,
          "value": 29670
        },
        {
          "key": 3,
          "value": 19667
        },
        {
          "key": 2,
          "value": 11794
        },
        {
          "key": 1,
          "value": 4511
        }
      ]
    },
    {
      "index": "access_depth_info",
      "itemList": [
        {
          "key": 5,
          "value": 217
        },
        {
          "key": 4,
          "value": 3259
        },
        {
          "key": 3,
          "value": 32445
        },
        {
          "key": 2,
          "value": 63542
        },
        {
          "key": 1,
          "value": 43201
        }
      ]
    }
  ],
  "errMsg": "openapi.analysis.getVisitDistribution:ok"
}
```

## 6. 错误码

以下是本接口的错误码列表，其他错误码可参考 [通用错误码](/doc/oplatform/developers/errCode/README.md)；调用接口遇到报错，可使用官方提供的 [API 诊断工具](https://developers.weixin.qq.com/console/devtools/debug?utm_source=api_errcode) 辅助定位和分析问题。

```json
[
  {
    "错误码": "-1",
    "错误描述": "system error",
    "解决方案": "系统繁忙，此时请开发者稍候再试"
  },
  {
    "错误码": "40001",
    "错误描述": "invalid credential  access_token isinvalid or not latest",
    "解决方案": "获取 access_token 时 AppSecret 错误，或者 access_token 无效。请开发者认真比对 AppSecret 的正确性，或查看是否正在为恰当的公众号调用接口"
  }
]
```

## 7. 适用范围

本接口在不同账号类型下的可调用情况：

```json
[
  {
    "小程序": "✔",
    "小游戏": "✔"
  }
]
```

- ✔：该账号可调用此接口。
- 其他未明确声明的账号类型，如无特殊说明，均不可调用此接口。
