# 友盟 OpenAPI 接口

通过 `umeng-cli call` 命令调用友盟 OpenAPI，使用 AK/SK 签名鉴权（HMAC-SHA1）。

## 通用调用方式

```bash
umeng-cli call '{"name":"<接口名>","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/<namespace>/<接口名>","authType":"umeng-aksk"}}' '<参数JSON>'
```

> AK/SK 会在首次调用时自动通过登录凭证获取并加密缓存，无需手动配置。

---

## 应用统计接口（uapp）

namespace: `com.umeng.uapp`

---

### umeng.uapp.getAllAppData — 获取所有 App 统计数据

无需参数。

```bash
umeng-cli call '{"name":"umeng.uapp.getAllAppData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getAllAppData","authType":"umeng-aksk"}}' '{}'
```

---

### umeng.uapp.getAppCount — 获取 App 总数量

无需参数。

```bash
umeng-cli call '{"name":"umeng.uapp.getAppCount","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getAppCount","authType":"umeng-aksk"}}' '{}'
```

---

### umeng.uapp.getAppList — 获取 App 列表

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| page | number | 否 | 页号，从1开始 |
| perPage | number | 否 | 每页显示数量（最大100） |
| accessToken | string | 否 | 搜索时填写的 App 名字，用来搜索 |

```bash
umeng-cli call '{"name":"umeng.uapp.getAppList","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getAppList","authType":"umeng-aksk"}}' '{}'
```

---

### umeng.uapp.getNewAccounts — 获取新增账号（仅游戏类型 App）

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 否 | 查询类型（按日daily,按周weekly,按月monthly） |
| channel | string | 否 | 渠道名称（仅限一个例如:App%20Store） |

```bash
umeng-cli call '{"name":"umeng.uapp.getNewAccounts","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getNewAccounts","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

### umeng.uapp.getDailyData — 获取 App 统计数据

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| date | string | 是 | 查询日期（例如:2018-01-01） |
| version | string | 否 | 应用版本号（仅限一个例如:1.0.0） |
| channel | string | 否 | 渠道名称（仅限一个例如:App%20Store） |

```bash
umeng-cli call '{"name":"umeng.uapp.getDailyData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getDailyData","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","date":"2025-04-24"}'
```

---

### umeng.uapp.getTodayData — 获取 App 今天统计数据

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |

```bash
umeng-cli call '{"name":"umeng.uapp.getTodayData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getTodayData","authType":"umeng-aksk"}}' '{"appkey":"你的appkey"}'
```

---

### umeng.uapp.getYesterdayData — 获取 App 昨天统计数据

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |

```bash
umeng-cli call '{"name":"umeng.uapp.getYesterdayData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getYesterdayData","authType":"umeng-aksk"}}' '{"appkey":"你的appkey"}'
```

---

### umeng.uapp.getTodayYesterdayData — 获取 App 今天与昨天的统计数据

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |

```bash
umeng-cli call '{"name":"umeng.uapp.getTodayYesterdayData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getTodayYesterdayData","authType":"umeng-aksk"}}' '{"appkey":"你的appkey"}'
```

---

### umeng.uapp.getNewUsers — 获取 App 新增用户数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 否 | 查询类型（按日daily,按周weekly,按月monthly） |

```bash
umeng-cli call '{"name":"umeng.uapp.getNewUsers","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getNewUsers","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

### umeng.uapp.getActiveUsers — 获取 App 活跃用户数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 否 | 查询类型（按日daily,按周weekly,按月monthly） |

```bash
umeng-cli call '{"name":"umeng.uapp.getActiveUsers","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getActiveUsers","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

### umeng.uapp.getLaunches — 获取 App 启动次数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 否 | 查询类型（按日daily,按周weekly,按月monthly） |

```bash
umeng-cli call '{"name":"umeng.uapp.getLaunches","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getLaunches","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

### umeng.uapp.getRetentions — 获取 App 新增用户留存率

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 否 | 查询类型（按日daily,按周weekly,按月monthly） |
| channel | string | 否 | 渠道名称（仅限一个例如:App%20Store） |
| version | string | 否 | 应用版本号（仅限一个例如:1.0.0） |
| type | string | 否 | newUser(默认):新增用户留存率；activeUser:活跃用户留存率 |

```bash
umeng-cli call '{"name":"umeng.uapp.getRetentions","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getRetentions","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

### umeng.uapp.getDurations — 获取 App 使用时长

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| date | string | 是 | 查询日期（例如:2018-01-01） |
| statType | string | 否 | 时长统计类型（按天daily，按次daily_per_launch） |
| channel | string | 否 | 渠道名称（仅限一个例如:App%20Store） |
| version | string | 否 | 应用版本号（仅限一个例如:1.0.0） |

```bash
umeng-cli call '{"name":"umeng.uapp.getDurations","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getDurations","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","date":"2025-04-24"}'
```

---

### umeng.uapp.getChannelData — 获取渠道维度统计数据

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| date | string | 是 | 查询日期（例如:2018-01-01） |
| perPage | number | 否 | 每页显示数量（最大100） |
| page | number | 否 | 页号，从1开始 |

```bash
umeng-cli call '{"name":"umeng.uapp.getChannelData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getChannelData","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","date":"2025-04-24"}'
```

---

### umeng.uapp.getVersionData — 获取版本维度统计数据

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| date | string | 是 | 查询日期（例如:2018-01-01） |
| perPage | number | 否 | 每页显示数量（最大100） |
| page | number | 否 | 页号，从1开始 |

```bash
umeng-cli call '{"name":"umeng.uapp.getVersionData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getVersionData","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","date":"2025-04-24"}'
```

---

### umeng.uapp.getActiveAccounts — 获取活跃账号（仅游戏类型 App）

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 否 | 查询类型（按日daily,按周weekly,按月monthly） |
| channel | string | 否 | 渠道名称（仅限一个例如:App%20Store） |

```bash
umeng-cli call '{"name":"umeng.uapp.getActiveAccounts","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getActiveAccounts","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

### umeng.uapp.getLaunchesByChannelOrVersion — 按渠道/版本获取启动次数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 是 | 查询类型（按日daily,按周weekly,按月monthly） |
| channels | string | 否 | 渠道名称（仅限一个例如:App%20Store） |
| versions | string | 否 | 版本号（仅限一个例如:1.0.0） |

```bash
umeng-cli call '{"name":"umeng.uapp.getLaunchesByChannelOrVersion","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getLaunchesByChannelOrVersion","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07","periodType":"daily"}'
```

---

### umeng.uapp.getActiveUsersByChannelOrVersion — 按渠道/版本获取活跃用户数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 是 | 查询类型（按日daily,按周weekly,按月monthly） |
| channels | string | 否 | 渠道名称，需 urlEncode（仅限一个例如:App%20Store） |
| versions | string | 否 | 版本号，需 urlEncode（仅限一个例如:1.0.0） |

```bash
umeng-cli call '{"name":"umeng.uapp.getActiveUsersByChannelOrVersion","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getActiveUsersByChannelOrVersion","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07","periodType":"daily"}'
```

---

### umeng.uapp.getNewUsersByChannelOrVersion — 按渠道/版本获取新增用户数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| periodType | string | 是 | 查询类型（按日daily,按周weekly,按月monthly） |
| channels | string | 否 | 渠道名称，需 urlEncode（仅限一个例如:App%20Store） |
| versions | string | 否 | 版本号，需 urlEncode（仅限一个例如:1.0.0） |

```bash
umeng-cli call '{"name":"umeng.uapp.getNewUsersByChannelOrVersion","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getNewUsersByChannelOrVersion","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07","periodType":"daily"}'
```

---

### umeng.uapp.getUniqueUsers — 获取自定义事件独立用户数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| eventName | string | 是 | 自定义事件名称（通过 umeng.uapp.event.list 获取） |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |

```bash
umeng-cli call '{"name":"umeng.uapp.getUniqueUsers","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.getUniqueUsers","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","eventName":"事件名","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

## 自定义事件接口

---

### umeng.uapp.event.list — 获取事件列表

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| perPage | number | 否 | 每页显示数量（最大100） |
| page | number | 否 | 页号，从1开始 |
| version | string | 否 | 应用版本号（仅限一个例如:1.0.0） |

```bash
umeng-cli call '{"name":"umeng.uapp.event.list","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.event.list","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

### umeng.uapp.event.getData — 获取自定义事件统计数据

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| eventName | string | 是 | 自定义事件名称（通过 umeng.uapp.event.list 获取） |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |

```bash
umeng-cli call '{"name":"umeng.uapp.event.getData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.event.getData","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","eventName":"事件名","startDate":"2025-04-01","endDate":"2025-04-07"}'
```

---

### umeng.uapp.event.create — 创建自定义事件

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| eventName | string | 是 | 自定义事件名（英文和数字，不允许特殊符号?/.\<>） |
| eventDisplayName | string | 是 | 事件显示名（中文需 urlEncode，不允许特殊符号?/.\<>） |
| eventType | boolean | 否 | true:计算事件（数值型）；false:计数事件（字符串型） |

```bash
umeng-cli call '{"name":"umeng.uapp.event.create","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.event.create","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","eventName":"test_event","eventDisplayName":"测试事件"}'
```

---

## 事件参数接口

---

### umeng.uapp.event.param.list — 获取事件参数列表

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| eventId | string | 是 | 事件ID（通过 umeng.uapp.event.list 获取） |

```bash
umeng-cli call '{"name":"umeng.uapp.event.param.list","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.event.param.list","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","startDate":"2025-04-01","endDate":"2025-04-07","eventId":"事件ID"}'
```

---

### umeng.uapp.event.param.getValueList — 获取事件参数值列表

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| eventName | string | 是 | 自定义事件名称（通过 umeng.uapp.event.list 获取） |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| eventParamName | string | 是 | 事件参数名称（通过 umeng.uapp.event.param.list 获取） |

```bash
umeng-cli call '{"name":"umeng.uapp.event.param.getValueList","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.event.param.getValueList","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","eventName":"事件名","startDate":"2025-04-01","endDate":"2025-04-07","eventParamName":"参数名"}'
```

---

### umeng.uapp.event.param.getData — 获取事件参数值统计数据

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| eventName | string | 是 | 自定义事件名称（通过 umeng.uapp.event.list 获取） |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| eventParamName | string | 是 | 事件参数名称（通过 umeng.uapp.event.param.list 获取） |
| paramValueName | string | 是 | 参数值名称（通过 umeng.uapp.event.param.getValueList 获取） |

```bash
umeng-cli call '{"name":"umeng.uapp.event.param.getData","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.event.param.getData","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","eventName":"事件名","startDate":"2025-04-01","endDate":"2025-04-07","eventParamName":"参数名","paramValueName":"参数值"}'
```

---

### umeng.uapp.event.param.getValueDurationList — 获取事件参数值时长列表

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| appkey | string | 是 | 应用 appkey |
| eventName | string | 是 | 自定义事件名称（通过 umeng.uapp.event.list 获取） |
| startDate | string | 是 | 查询起始日期（例如:2018-01-01） |
| endDate | string | 是 | 查询截止日期（例如:2018-01-01） |
| eventParamName | string | 是 | 事件参数名称（通过 umeng.uapp.event.param.list 获取） |

```bash
umeng-cli call '{"name":"umeng.uapp.event.param.getValueDurationList","api":{"method":"GET","baseUrl":"https://gateway.open.umeng.com/openapi","endpoint":"param2/1/com.umeng.uapp/umeng.uapp.event.param.getValueDurationList","authType":"umeng-aksk"}}' '{"appkey":"你的appkey","eventName":"事件名","startDate":"2025-04-01","endDate":"2025-04-07","eventParamName":"参数名"}'
```

---

## 接口路径规则

所有友盟 OpenAPI 的接口路径遵循统一格式：

```
param2/1/<namespace>/<接口名>
```

- **namespace**：接口所属模块，如 `com.umeng.uapp`（应用统计）
- **接口名**：完整的接口标识，如 `umeng.uapp.getRetentions`

> 后续接口将持续补充到本文档或按模块拆分为独立文件。
