Report API 文档
1、权限认证
API 通过参数签名的方式进行权限控制,签名所需的 accessKey 和 securityKey,请到变现平台-账号管理- 密钥信息中获取

2、签名
2.1、签名生成
使用 accessKey、nonce、timestamp 和securityKey生成md5,产生本次请求的sign
2.2、签名代码示例
func getSign(request map[string]interface{}, secureKey string) string {
// 先对 key 排序,保证生成字符串的稳定性
keys := make([]string, 0, len(request))
for k := range request {
keys = append(keys, k)
}
sort.Strings(keys)
// 拼接 key=value&key2=value2...
var sb strings.Builder
for i, k := range keys {
sb.WriteString(fmt.Sprintf("%s=%v", k, request[k]))
if i != len(keys)-1 {
sb.WriteString("&")
}
}
// 拼接 secureKey
sb.WriteString(secureKey)
// 生成 MD5
h := md5.New()
h.Write([]byte(sb.String()))
return hex.EncodeToString(h.Sum(nil))
}2.3、签名代码解析
- 对参与签名的首字母进行排序,例如 accessKey、timestamp、nonce 按首字母排序为 accessKey、nonce、timestamp
- 排序结果后直接追加secureKey
- 示例结果:
- accessKey = 1001
- secureKey = 1002
- timestamp = 1755497831
- nonce = de503c93-fda7-4165-a813-af6d272939e4
组成的文本是:accessKey=1001&nonce=de503c93-fda7-4165-a813-af6d272939e4×tamp=17554978311002
对该文本进行MD5 32位小写,得出结果: a96bb09bcf5938c7c3ddb4610565de44
3、通用请求头参数
| 参数名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| accessKey | string | 是 | access密钥(签名用) |
| sign | string | 是 | 签名后生成的秘钥 |
| nonce | string | 是 | 随机数(签名用) |
| timestamp | string | 是 | 时间戳,毫秒(签名用) |
4、通用响应码
| 状态码 | 名称 | 描述 |
|---|---|---|
| 0 | 成功 | API请求成功处理并返回预期结果。 |
| 300 | 签名错误 | 签名算法错误或securityKey失效。 |
| 301 | 时间戳无效或请求已过期 | timestamp不能为空且必须是过去5分钟内的时间。 |
| 302 | accessKey不存在 | 提供的accessKey无效或不存在。 |
| 303 | 必传参数不能为空 | 请求中缺少必填参数。 |
| 304 | nonce不存在 | 随机数nonce不能为空。 |
| 305 | 参数错误 | 请求参数错误 |
5、通用Http状态码
| 状态码 | 名称 | 描述 |
|---|---|---|
| 200 | 成功 | Http状态码 200 代表成功 |
| 429 | 请求过快 | 在 HTTP 协议中,响应状态码 429 Too Many Requests 表示在一定的时间内用户发送了太多的请求,即超出了“频次限制”。 |
6、广告数据报表API接口
- 域名 (请联系对接人确认域名)
- URL: /adnReport/getReport
- 方法: POST
- Content-Type: application/json
6.1、查询参数
| 参数名称 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|
| strTime | string | 是 | 数据日期,仅支持单天。日期格式为 yyyy-MM-dd |
6.2、响应
| 参数名称 | 类型 | 描述 |
|---|---|---|
| code | int | 返回结果状态码 |
| message | string | 描述信息 |
| data | resultReports[] | 数据对象 |
6.3、resultReports[]数据对象
| 参数名称 | 类型 | 描述 |
|---|---|---|
| date | Date | 日期 (2025-04-09T00:00:00+08:00) 包含时区,请注意格式化 |
| username | string | 账号名称 |
| app_id | int | 应用ID |
| app_name | string | 应用名称 |
| os_type | int | 系统平台(5001:Android, 5002: iOS) |
| slot_id | int | 代码位ID |
| slot_name | string | 代码位名称 |
| slot_type | int | 代码位类型(2001:开屏广告、2002:插屏广告、2003:激励视频、2004:原生广告、2005:Banner) |
| bid_type | int | 竞价类型(2201:目标价、2202:实时竞价) |
| request | int | 请求数 |
| response | int | 填充数 |
| fill_rate | float | 填充率 |
| impression | int | 展示数 |
| exposure_rate | float | 展示率 |
| click | int | 点击数 |
| click_rate | float | 点击率 |
| cost | float | 预估收益 |
| cpm | float | 预估eCPM |
6.4、响应参考数据
{
"code": 0,
"data":
[
{
"app_id": "116000",
"app_name": "网易云音乐",
"bid_type": 2202,
"click": "1",
"click_rate": "2.44",
"cost": 0.66,
"cpm": 16.1,
"date": "2025-04-09T00:00:00+08:00",
"exposure_rate": "100.00",
"fill_rate": "100.00",
"impression": "41",
"os_type": 5001,
"request": "41",
"response": "41",
"slot_id": "123571",
"slot_name": "网易云音乐-开屏-短图",
"slot_type": 2001,
"username": "网易云音乐"
},
{
"app_id": "116000",
"app_name": "网易云音乐",
"bid_type": 2202,
"click": "0",
"click_rate": "0.00",
"cost": 0.47,
"cpm": 11.46,
"date": "2025-04-09T00:00:00+08:00",
"exposure_rate": "87.23",
"fill_rate": "100.00",
"impression": "41",
"os_type": 5001,
"request": "47",
"response": "47",
"slot_id": "223200",
"slot_name": "网易云音乐-信息流",
"slot_type": 2004,
"username": "网易云音乐"
}
],
"message": "成功"
}7、应用模块
7.1、新建应用
域名 (请联系对接人确认域名)
URL: /adnApp/createApp
方法: POST
Content-Type: application/json
请求参数
| 参数名称 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|
| appName | string | 是 | 应用名称 |
| appType | int | 是 | 应用类型 1201: 正式, 1202: 测试 |
| osType | int | 是 | 系统平台 5001: Android, 5002: iOS |
| appStore | string | appType=1201 必填 | 应用商店 (见附录) |
| category | string | appType=1201 必填 | 应用品类 (见附录) |
| downloadUrl | string | appType=1201 必填 | 下载地址 |
| package | string | appType=1201 必填 | 应用包名 |
| sha1 | string | appType=1201 且 osType=5001 必填 | SHA1值 |
- 响应参数
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| appId | int | 应用ID |
| appName | string | 应用名称 |
| appType | int | 应用类型 1201: 正式, 1202: 测试 |
| osType | int | 系统平台 5001: Android, 5002: iOS |
| appStore | string | 应用商店 (见附录) |
| downloadUrl | string | 下载地址 |
| package | string | 应用包名 |
| category | string | 应用品类 (见附录) |
| appStatus | int | 应用状态 1101: 测试, 1102: 运行中, 1105: 异常停止, 1106: 停止 |
| coStatus | int | 合作状态 1301: 开启, 1302: 关闭 |
| sha1 | string | SHA1值 |
- 响应示例
{
"code": 0,
"data": {
"appId": 502300,
"appName": "这是一个测试应用2026",
"appType": 1201,
"osType": 5001,
"appStore": "1401",
"downloadUrl": "https://www.test.com",
"package": "com.test.www",
"category": "1001",
"appStatus": 1102,
"coStatus": 1301,
"sha1": "AA:BB:CC:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11"
},
"msg": "创建成功"
}7.2、修改应用
域名 (请联系对接人确认域名)
URL: /adnApp/updateApp
方法: PUT
Content-Type: application/json
请求参数
| 参数名称 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|
| appId | int | 是 | 应用ID |
| CoStatus | int | 否 | 合作状态 1301: 开启, 1302: 关闭 |
| appName | string | 是 | 应用名称 |
| appStore | string | appType=1201 必填 | 应用商店 (见附录) |
| category | string | appType=1201 必填 | 应用品类 (见附录) |
| downloadUrl | string | appType=1201 必填 | 下载地址 |
| package | string | appType=1201 必填 | 应用包名 |
| sha1 | string | appType=1201 且 osType=5001 必填 | SHA1值 |
- 响应示例
{
"code": 0,
"data": null,
"msg": "更新成功"
}7.3、查询应用列表
域名 (请联系对接人确认域名)
URL: /adnApp/getAppList
方法: POST
Content-Type: application/json
请求参数
| 参数名称 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|
| appId | int | 否 | 应用ID |
- 响应示例
{
"code": 0,
"data": {
"list": [
{
"appId": 502300,
"appName": "这是一个测试应用2026",
"appType": 1201,
"osType": 5001,
"appStore": "1401",
"downloadUrl": "https://www.test.com",
"package": "com.test.www",
"category": "1001",
"appStatus": 1102,
"coStatus": 1301,
"sha1": "AA:BB:CC:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11"
}
],
"total": 19
},
"msg": "获取成功"
}8、代码位模块
8.1、新建代码位
域名 (请联系对接人确认域名)
URL: /adnSlot/createSlot
方法: POST
Content-Type: application/json
请求参数
| 参数名称 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|
| platAppId | int | 是 | 应用ID(所属应用) |
| slotName | string | 是 | 代码位名称 |
| slotType | int | 是 | 广告类型 2001: 开屏广告, 2002: 插屏广告, 2003: 激励视频, 2004: 原生广告 |
| drawType | int | 是 | 渲染方式 2301: 模板渲染, 2302: 自渲染 |
| screenType | int | slotType=2002,2003 必填 | 屏幕方向 2801: 竖屏, 2802: 横屏 |
| slotShowType | int | slotType=2002 必填 | 广告铺开大小 2901: 半屏, 2902: 全屏 |
| materialType | int | (slotType=2004 且 drawType=2301) 或 slotType=2002 必填 | 素材类型 21001: 视频+图片, 21002: 仅视频, 21003: 仅图片 |
| templateType | string | slotType=2004 且 drawType=2301 必填 | 模板样式 21101: 左图右文, 21102: 左文右图, 21103: 上文下图, 21104: 上图下文 |
| selfDrawType | string | slotType == 2004 且 drawType == 2302 必填 | 自渲染素材类型 21201: 横版视频, 21202: 竖版视频, 21203: 横版图片, 21204: 竖版图片, 21205: 多图 |
| bidType | int | 是 | 竞价类型 2201: 目标价, 2202: 实时竞价 |
| expectCpm | float | 否 | 期望CPM价格 |
| bidFloor | float | 否 | 竞价底价 |
| rewardSetting | int | slotType=2003 必填 | 奖励发放设置 0: 不设置奖励, 1: 设置奖励 |
| rewardName | string | rewardSetting=1 必填 | 奖励物品名称 |
| rewardCount | int | rewardSetting=1 必填 | 奖励数量 |
| serverVerify | int | slotType=2003 必填 | 服务端验证 0: 不验证, 1: 验证 |
| callbackUrl | string | serverVerify=1 必填 | 回调URL |
| securityKey | string | serverVerify=1 必填 | 安全密钥 |
- 响应参数
| 参数名称 | 参数类型 | 参数描述 |
|---|---|---|
| slotId | int | 代码位ID |
| slotName | string | 代码位名称 |
| slotType | int | 广告类型 2001: 开屏广告, 2002: 插屏广告, 2003: 激励视频, 2004: 原生广告 |
| drawType | int | 渲染方式 2301: 模板渲染, 2302: 自渲染 |
| screenType | int | 屏幕方向 2801: 竖屏, 2802: 横屏 |
| slotShowType | int | 广告铺开大小 2901: 半屏, 2902: 全屏 |
| materialType | int | 素材类型 21001: 视频+图片, 21002: 仅视频, 21003: 仅图片 |
| templateType | string | 模板样式 21101: 左图右文, 21102: 左文右图, 21103: 上文下图, 21104: 上图下文 |
| selfDrawType | string | 自渲染素材类型 21201: 横版视频, 21202: 竖版视频, 21203: 横版图片, 21204: 竖版图片, 21205: 多图 |
| slotStatus | int | 代码位状态 2101: 测试, 2102: 运行中, 2103: 异常停止, 2104: 停止 |
| coStatus | int | 合作状态 1301: 开启, 1302: 关闭 |
| bidType | int | 竞价类型 2201: 目标价, 2202: 实时竞价 |
| expectCpm | float | 期望CPM价格 |
| bidFloor | float | 竞价底价 |
| platAppId | int | 应用ID(所属应用) |
| rewardSetting | int | 奖励发放设置 0: 不设置奖励, 1: 设置奖励 |
| rewardName | string | 奖励物品名称 |
| rewardCount | int | 奖励数量 |
| serverVerify | int | 服务端验证 0: 不验证, 1: 验证 |
| callbackUrl | string | 回调URL |
| securityKey | string | 安全密钥 |
- 响应示例
{
"code": 0,
"data": {
"slotId": 40676836,
"slotName": "这是一个测试应用2026_Android_激励视频_2026-01-07_10:52:31",
"slotType": 2003,
"drawType": 2301,
"screenType": 2801,
"slotShowType": 2901,
"materialType": 21001,
"templateType": "21101,21102,21103,21104",
"selfDrawType": "21201,21202,21203,21204,21205",
"slotStatus": 2102,
"coStatus": 1301,
"bidType": 2201,
"expectCpm": 0,
"bidFloor": 0,
"platAppId": 502300,
"rewardSetting": 0,
"serverVerify": 1,
"callbackUrl": "http://www.test.com",
"securityKey": "be26382c132310ecb4b8a044edf17fc6"
},
"msg": "创建成功"
}8.2、修改代码位
域名 (请联系对接人确认域名)
URL: /adnSlot/updateSlot
方法: PUT
Content-Type: application/json
请求参数
| 参数名称 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|
| slotId | int | 是 | 代码位ID |
| platAppId | int | 是 | 应用ID(所属应用) |
| slotName | string | 是 | 代码位名称 |
| slotType | int | 是 | 广告类型 2001: 开屏广告, 2002: 插屏广告, 2003: 激励视频, 2004: 原生广告 |
| drawType | int | 否 | 渲染方式 2301: 模板渲染, 2302: 自渲染 |
| screenType | int | 否 | 屏幕方向 2801: 竖屏, 2802: 横屏 |
| slotShowType | int | 否 | 广告铺开大小 2901: 半屏, 2902: 全屏 |
| materialType | int | 否 | 素材类型 21001: 视频+图片, 21002: 仅视频, 21003: 仅图片 |
| templateType | string | 否 | 模板样式 21101: 左图右文, 21102: 左文右图, 21103: 上文下图, 21104: 上图下文 |
| selfDrawType | string | 否 | 自渲染素材类型 21201: 横版视频, 21202: 竖版视频, 21203: 横版图片, 21204: 竖版图片, 21205: 多图 |
| bidType | int | 否 | 竞价类型 2201: 目标价, 2202: 实时竞价 |
| coStatus | int | 否 | 合作状态 1301: 开启, 1302: 关闭 |
| expectCpm | float | 否 | 期望CPM价格 |
| bidFloor | float | 否 | 竞价底价 |
| rewardSetting | int | slotType=2003 必填 | 奖励发放设置 0: 不设置奖励, 1: 设置奖励 |
| rewardName | string | rewardSetting=1 必填 | 奖励物品名称 |
| rewardCount | int | rewardSetting=1 必填 | 奖励数量 |
| serverVerify | int | slotType=2003 必填 | 服务端验证 0: 不验证, 1: 验证 |
| callbackUrl | string | serverVerify=1 必填 | 回调URL |
| securityKey | string | serverVerify=1 必填 | 安全密钥 |
- 响应参数
| 参数名称 | 参数类型 | 参数描述 |
|---|---|---|
| slotId | int | 代码位ID |
| slotName | string | 代码位名称 |
| slotType | int | 广告类型 2001: 开屏广告, 2002: 插屏广告, 2003: 激励视频, 2004: 原生广告 |
| drawType | int | 渲染方式 2301: 模板渲染, 2302: 自渲染 |
| screenType | int | 屏幕方向 2801: 竖屏, 2802: 横屏 |
| slotShowType | int | 广告铺开大小 2901: 半屏, 2902: 全屏 |
| materialType | int | 素材类型 21001: 视频+图片, 21002: 仅视频, 21003: 仅图片 |
| templateType | string | 模板样式 21101: 左图右文, 21102: 左文右图, 21103: 上文下图, 21104: 上图下文 |
| selfDrawType | string | 自渲染素材类型 21201: 横版视频, 21202: 竖版视频, 21203: 横版图片, 21204: 竖版图片, 21205: 多图 |
| slotStatus | int | 代码位状态 2101: 测试, 2102: 运行中, 2103: 异常停止, 2104: 停止 |
| coStatus | int | 合作状态 1301: 开启, 1302: 关闭 |
| bidType | int | 竞价类型 2201: 目标价, 2202: 实时竞价 |
| expectCpm | float | 期望CPM价格 |
| bidFloor | float | 竞价底价 |
| platAppId | int | 应用ID(所属应用) |
| rewardSetting | int | 奖励发放设置 0: 不设置奖励, 1: 设置奖励 |
| rewardName | string | 奖励物品名称 |
| rewardCount | int | 奖励数量 |
| serverVerify | int | 服务端验证 0: 不验证, 1: 验证 |
| callbackUrl | string | 回调URL |
| securityKey | string | 安全密钥 |
- 响应示例
{
"code": 0,
"data": {
"slotId": 40676836,
"slotName": "这是一个测试应用2026_Android_激励视频_2026-01-07_10:52:31",
"slotType": 2003,
"drawType": 2301,
"screenType": 2801,
"slotShowType": 2901,
"materialType": 21001,
"templateType": "21101,21102,21103,21104",
"selfDrawType": "21201,21202,21203,21204,21205",
"slotStatus": 2102,
"coStatus": 1301,
"bidType": 2201,
"expectCpm": 0,
"bidFloor": 0,
"platAppId": 502300,
"rewardSetting": 0,
"serverVerify": 1,
"callbackUrl": "http://www.test.com",
"securityKey": "be26382c132310ecb4b8a044edf17fc6"
},
"msg": "创建成功"
}8.3、查询代码位列表
域名 (请联系对接人确认域名)
URL: /adnSlot/getSlotList
方法: POST
Content-Type: application/json
请求参数
| 参数名称 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|
| platAppId | int | 否 | 应用ID |
| slotName | string | 否 | 代码位名称 |
| slotId | int | 否 | 代码位ID |
- 响应示例
{
"code": 0,
"data": {
"list": [
{
"slotId": 40676836,
"slotName": "这是一个测试应用2026_Android_激励视频_2026-01-07_10:52:31",
"slotType": 2003,
"drawType": 2301,
"screenType": 2801,
"slotShowType": 2901,
"materialType": 21001,
"templateType": "21101,21102,21103,21104",
"selfDrawType": "21201,21202,21203,21204,21205",
"slotStatus": 2102,
"coStatus": 1301,
"bidType": 2201,
"expectCpm": 0,
"bidFloor": 0,
"platAppId": 502300,
"rewardSetting": 0,
"serverVerify": 1,
"callbackUrl": "http://www.test.com",
"securityKey": "be26382c132310ecb4b8a044edf17fc6"
}
],
"total": 19
},
"msg": "获取成功"
}附录:应用品类
| 应用品类 | category | 应用品类 | category |
|---|---|---|---|
| 游戏 | 1001 | 娱乐 | 1002 |
| 手机 | 1003 | 影音 | 1004 |
| 工具 | 1005 | 金融理财 | 1006 |
| 房产 | 1007 | 工作 | 1008 |
| 网赚 | 1009 | 健康 | 1010 |
| 阅读 | 1011 | 网购 | 1012 |
| 教育 | 1013 | 家居 | 1014 |
| 房产 | 1015 | 母婴 | 1016 |
| 汽车 | 1017 | 社交 | 1018 |
| 生活 | 1019 | 资讯 | 1020 |
| 通讯 | 1021 | 商旅出行 | 1022 |
| 短视频 | 1023 | 个护美容 | 1024 |
| 其他 | 1025 |
附录:应用商店
| 应用商店 | appStore | 应用商店 | appStore |
|---|---|---|---|
| 应用宝 | 1401 | 360 | 1402 |
| 百度 | 1403 | 豌豆荚 | 1404 |
| 苹果商店 | 1405 | 华为 | 1406 |
| 小米 | 1407 | oppo | 1408 |
| vivo | 1409 | 魅族 | 1410 |
| 搜狗 | 1411 | 今日头条 | 1412 |
| 快手 | 1413 | 爱奇艺 | 1414 |
| 9游 | 1415 | 好游快爆 | 1416 |
| TikTok | 1417 | 4399 | 1418 |
| 美图 | 1419 | PP助手 | 1420 |
| TapTap | 1421 | 乐商店 | 1422 |
| 应用汇 | 1423 | 安智 | 1424 |
| 金立 | 1425 | 努比亚 | 1426 |
| 摸摸鱼 | 1427 | 2345 | 1428 |
| 其他 | 1429 |
