数据分析 /访问留存 /获取用户访问小程序日留存

# 获取用户访问小程序日留存

> 接口应在服务器端调用,详细说明参见[服务端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`

## 接口说明

### 接口英文名

getDailyRetain

### 功能描述

该接口用于获取用户访问小程序日留存。

## 调用方式

### HTTPS 调用

```text
POST https://api.weixin.qq.com/datacube/getweanalysisappiddailyretaininfo?access_token=ACCESS_TOKEN 
```

### 云调用

- 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)
- 接口方法为: openapi.undefined

### 第三方调用

- 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同
- 该接口所属的权限集 id 为:18、21
- 服务商获得其中之一权限集授权后,可通过使用[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html)代商家进行调用

### 请求参数

| 属性                                  | 类型   | 必填 | 说明                                                         |
| :------------------------------------ | :----- | :--- | :----------------------------------------------------------- |
| access_token / cloudbase_access_token | string | 是   | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html); cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html)接口获得 |
| begin_date                            | string | 是   | 开始日期。格式为 yyyymmdd                                    |
| end_date                              | string | 是   | 结束日期,限定查询1天数据,允许设置的最大值为昨日。格式为 yyyymmdd |

### 返回参数

|      | 属性                                                         | 类型          | 说明         |
| :--- | :----------------------------------------------------------- | :------------ | :----------- |
|      | ref_date                                                     | string        | 日期         |
|      | visit_uv_new                                                 | array<object> | 新增用户留存 |
|      | 属性类型说明keynumber标识,0开始,表示当天,1表示1天后。依此类推,key取值分别是:0,1,2,3,4,5,6,7,14,30valuenumberkey对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时) |               |              |
|      | visit_uv                                                     | array<object> | 活跃用户留存 |
|      | 属性类型说明keynumber标识,0开始,表示当天,1表示1天后。依此类推,key取值分别是:0,1,2,3,4,5,6,7,14,30valuenumberkey对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时) |               |              |

## 调用示例

> 示例说明: HTTPS请求

### 请求数据示例

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

### 返回数据示例

```json
{
  "ref_date": "20170313",
  "visit_uv_new": [
    {
      "key": 0,
      "value": 5464
    }
  ],
  "visit_uv": [
    {
      "key": 0,
      "value": 55500
    }
  ]
} 
```

> 示例说明: 云函数调用示例

### 请求数据示例

```text
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.getDailyRetain({
        "beginDate": '20170313',
        "endDate": '20170313'
      })
    return result
  } catch (err) {
    return err
  }
} 
```

### 返回数据示例

```json
{
  "refDate": "20170313",
  "visitUvNew": [
    {
      "key": 0,
      "value": 5464
    }
  ],
  "visitUv": [
    {
      "key": 0,
      "value": 55500
    }
  ],
  "errMsg": "openapi.analysis.getDailyRetain:ok"
} 
```

### 错误码

| 错误码 | 错误码取值   | 解决方案                       |
| :----- | :----------- | :----------------------------- |
| -1     | system error | 系统繁忙,此时请开发者稍候再试 |

|      |      |      |
| :--- | :--- | :--- |
|      |      |      |
|      |      |      |
|      |      |      |