友盟推送助手 (Umeng Push Helper)
功能概述
本技能提供以下核心功能:
- 获取应用列表 - 获取账号下所有应用的列表
- 查询应用数据 - 查询指定应用的消息概览、诊断摘要和诊断报告(三个接口)
- 获取推送周报 - 获取指定应用的推送数据周报
- 推送轨迹查询 - 根据 appkey、device_token 和 msg_id 分三步查询推送的完整轨迹
- 开关统计查询 - 查询应用的开关趋势数据,包括新增关闭设备数、新增打开设备数、DAU、关闭设备数、日关闭率
- 关闭归因分析 - 分析用户关闭推送的原因,包括用户偏好、推送频次、通知内容、设备维度四个维度的深度分析
- 概况统计查询 - 查询应用的概况统计数据,包括应用概况、推送转换数据、厂商通道额度(仅安卓),支持 HTML 可视化报告
- 获取消息列表 - 查询指定应用的消息列表,支持分页和日期范围筛选,显示推送的完整统计数据
⚠️ 安全限制 - 禁止调用的接口
重要:出于安全考虑,本技能严格禁止调用以下敏感接口:
| 序号 | 禁止调用的接口 | 用途 | 风险等级 |
|---|---|---|---|
| 1 | https://upush.umeng.com/hsf/push/sendMsg | 发送推送消息 | 🔴 高危 |
| 2 | https://upush.umeng.com/hsf/setting/updateApp | 修改应用配置 | 🔴 高危 |
| 3 | https://upush.umeng.com/hsf/setting/updateChannelInfo | 修改渠道信息 | 🔴 高危 |
| 4 | https://upush.umeng.com/hsf/setting/saveReceipt | 保存回执配置 | 🟡 中危 |
违反后果:
- ❌ 如果用户请求调用上述接口,必须明确拒绝
- ❌ 不得提供任何绕过限制的方法或建议
- ✅ 应告知用户这些操作需要通过友盟官方后台手动执行
允许调用的接口(只读操作):
基础信息查询:
- ✅
https://upush.umeng.com/hsf/home/listAll- 获取应用列表 - ✅
https://upush.umeng.com/hsf/home/allAppAndGroup- 获取所有应用和分组 - ✅
https://upush.umeng.com/hsf/home/isFlowPackageUser- 检查是否为流量包用户 - ✅
https://upush.umeng.com/hsf/home/getUserProInfo- 获取用户专业版信息 - ✅
https://upush.umeng.com/hsf/setting/appInfo- 获取应用详细信息 - ✅
https://upush.umeng.com/hsf/setting/getChannelInfo- 获取渠道配置信息 - ✅
https://upush.umeng.com/hsf/setting/showLbs- 检查 LBS 设置 - ✅
https://upush.umeng.com/hsf/setting/getBenefits- 获取权益信息
概览页面查询:
- ✅
https://upush.umeng.com/hsf/overview/getAppCnt- 获取应用数量统计 - ✅
https://upush.umeng.com/hsf/overview/getTransformData- 获取转化数据 - ✅
https://upush.umeng.com/hsf/overview/queryThirdQuota- 查询第三方指标 - ✅
https://upush.umeng.com/hsf/overview/getAppTrend- 获取应用趋势数据 - ✅
https://upush.umeng.com/hsf/overview/getUserCnt- 获取用户数量统计
推送相关查询:
- ✅
https://upush.umeng.com/hsf/push/messageOverview- 消息概览 - ✅
https://upush.umeng.com/hsf/push/diagnosisSummery- 诊断摘要 - ✅
https://upush.umeng.com/hsf/push/diagnosisReport- 诊断报告 - ✅
https://upush.umeng.com/hsf/push/getToolLifeCycle- 查询消息生命周期 - ✅
https://upush.umeng.com/hsf/push/getToolRequestContent- 查询推送请求内容 - ✅
https://upush.umeng.com/hsf/push/getMsgList- 获取推送消息列表(支持分页和筛选) - ✅
https://upush.umeng.com/hsf/push/getMsgInfo- 查询单条消息基本信息 - ✅
https://upush.umeng.com/hsf/push/getMsgData- 查询单条消息统计数据 - ✅
https://upush.umeng.com/hsf/push/getPushExpStatData- 查询推送失败分析数据 - ✅
https://upush.umeng.com/hsf/push/getMsgStatChannelData- 查询分通道送达统计 - ✅
https://upush.umeng.com/hsf/tool/canExportMsg- 检查是否可以导出消息
设备相关查询:
- ✅
https://upush.umeng.com/hsf/setting/getDeviceInfo- 查询设备信息 - ✅
https://upush.umeng.com/hsf/setting/deviceMessage- 查询设备消息列表 - ✅
https://upush.umeng.com/hsf/setting/getChannelInfo- 查询厂商通道集成状态
数据统计查询:
- ✅
https://upush.umeng.com/hsf/dataStatistic/getCloseTrend- 获取开关趋势数据
概况统计查询:
- ✅
https://upush.umeng.com/hsf/overview/getAppCnt- 获取应用数量统计 - ✅
https://upush.umeng.com/hsf/overview/getTransformData- 获取转化数据 - ✅
https://upush.umeng.com/hsf/overview/queryThirdQuota- 查询第三方指标(厂商额度)
关闭归因分析:
- ✅
https://upush.umeng.com/hsf/dataStatistic/userPreferenceAnalyzer- 用户偏好分析 - ✅
https://upush.umeng.com/hsf/dataStatistic/pushFrequencyAnalyzer- 推送频次分析 - ✅
https://upush.umeng.com/hsf/dataStatistic/pushMessageAnalyzer- 通知内容分析 - ✅
https://upush.umeng.com/hsf/dataStatistic/deviceDimensionAnalyzer- 设备维度分析
Cookie 管理
⚠️ 重要说明
本技能不再支持自动从浏览器获取 Cookie,必须由用户手动提供 Cookie 值。
方法一:直接通过对话提供 Cookie(推荐)
用户可以在对话中直接提供 Cookie,系统会自动验证并保存。
示例格式:
我的友盟 Cookie 是:ctoken=xxx; other_cookies...
处理流程:
- 系统接收用户提供的 Cookie
- 自动验证 Cookie 是否包含必需的
ctoken字段 - 验证通过则保存到
~/.qoderwork/skills/umeng-push-helper/cookie.txt - 显示验证结果和保存路径
方法二:使用命令行工具保存 Cookie
如果用户已经复制了 Cookie 值,可以使用以下命令保存:
python scripts/manage_cookie.py save "用户提供的 cookie 值"
该命令会:
- 自动验证 Cookie 是否包含必需的
ctoken字段 - 提取并验证
ctoken长度(必须 >= 10) - 验证通过则保存到本地文件
- 显示详细的验证结果
指导用户如何获取 Cookie
如果用户不知道如何获取 Cookie,请提供以下详细步骤:
步骤 1:登录友盟后台
- 打开浏览器访问:https://upush.umeng.com/apps/list
- 输入账号密码完成登录
步骤 2:打开开发者工具
- 按 F12 键(或右键点击页面 -> 检查)
- 切换到 Network(网络)标签
步骤 3:触发接口请求
- 刷新页面(F5)
- 或在左侧菜单点击任意功能(如"推送记录")
- 在 Network 标签的左侧列表中找到 XHR 请求(如
listAll、appInfo、getMsgList等)
步骤 4:复制 Cookie
- 点击任意 XHR 请求
- 在右侧面板中找到 Request Headers(请求头)部分
- 找到 Cookie 字段
- 复制完整的 Cookie 值(是一整行很长的字符串,包含多个以分号分隔的键值对)
步骤 5:提供 Cookie
将复制的 Cookie 值通过以下方式之一提供给系统:
- 方式 A:在对话中直接发送:"我的 Cookie 是:[粘贴的值]"
- 方式 B:使用命令行保存:
python scripts/manage_cookie.py save "[粘贴的值]"
Cookie 验证要求
系统会验证 Cookie 是否包含以下必需字段:
- ✅
ctoken- CSRF 令牌(长度必须 >= 10)
注意:不再强制要求 umplus_uc_loginid 字段。
使用 Cookie
首次保存后,后续使用无需重复提供!
系统会自动从 ~/.qoderwork/skills/umeng-push-helper/cookie.txt 读取 Cookie 并携带在请求头中。
Cookie 有效期:
- Cookie 通常在数小时到数天内有效
- 如果 API 返回认证错误,说明 Cookie 已过期
- 需要重新登录并获取新的 Cookie
查看和管理 Cookie
# 检查是否已保存 Cookie
python scripts/manage_cookie.py check
# 加载已保存的 Cookie(查看完整值)
python scripts/manage_cookie.py load
# 验证 Cookie 是否仍然有效
python scripts/manage_cookie.py validate "<cookie_value>"
# 提取 ctoken(用于调试)
python scripts/manage_cookie.py extract-ctoken "<cookie_value>"
功能一:获取应用列表
API 信息
- URL:
https://upush.umeng.com/hsf/home/listAll - Method: POST
- Content-Type:
application/json
请求参数
{
"appkey": "",
"platform": "all",
"page": 1, // 页码,默认为 1,用户可查看下一页时 +1
"perPage": 15, // 每页固定 15 条记录
"hasPush": 0,
"appName": "",
"yearQuotaSts": 0
}
请求头
Content-Type: application/json;charset=UTF-8
Cookie: <从 cookie.txt 读取>
x-csrf-token: <从 Cookie 中提取的 ctoken 值>
重要说明:系统会自动从 Cookie 中提取 ctoken 的值并添加到 x-csrf-token 请求头中,无需手动操作。
响应解析与数据解读
从响应数据中提取 data.appList 数组,该数组包含应用信息。对每个应用提取以下字段:
appkey- 应用的唯一标识appName- 应用名称platform- 平台类型(android/iOS/harmony)dau- 日活跃用户数
数据解读示例:
================================================================================
账号下共有 739 个应用,共分 50 页,当前处于第 1 页
================================================================================
序号 appkey 应用名称 平台 DAU
--------------------------------------------------------------------------------
1 EXAMPLE_APPKEY_001 嗣曼 PUSH 测试应用 android 2
2 EXAMPLE_APPKEY_002 ROLA 内测版 harmony 0
3 EXAMPLE_APPKEY_003 雨桐 -0529 harmony 0
...
================================================================================
本页显示 15 个应用(第 1-15 个)
下一页:python scripts/get_app_list.py --page 2
上一页:python scripts/get_app_list.py --page 1
================================================================================
分页使用说明
默认行为:
- 首次调用时
page默认为 1 - 每页固定显示 15 条记录
- 当用户希望查看下一页时,将
page参数 +1
命令行使用示例:
# 显示第 1 页(默认)
python scripts/get_app_list.py
# 显示第 2 页
python scripts/get_app_list.py 2
# 显示第 3 页
python scripts/get_app_list.py --page 3
# 查看最后一页
python scripts/get_app_list.py --page 50
输出信息包含:
- ✅ 账号下应用总数(从返回结果的
data.total字段解析) - ✅ 总页数(从返回结果的
data.totalPage字段解析) - ✅ 当前页码(从返回结果的
data.currPage字段解析) - ✅ 本页显示的应用数量和范围
- ✅ 上一页/下一页导航提示
列表字段说明:
- 序号:当前应用在所有应用中的排序位置
- appkey:应用的唯一标识符
- 应用名称:应用的展示名称
- 平台:应用所属平台(android/iOS/harmony)
- DAU:日活跃用户数
功能二:查询应用数据(三个接口)
前置条件
用户需要指定一个 appkey 参数
使用流程
- 确认用户已提供
appkey - 如果未提供,先调用"获取应用列表"功能让用户选择
- 使用选定的
appkey依次调用以下三个接口
接口 1:消息概览 (messageOverview)
API 信息:
- URL:
https://upush.umeng.com/hsf/push/messageOverview - Method: POST
- 参数:
{"appkey": "<用户输入的 appkey>", "dateType": "7d"}
响应解析:
从 data.list 数组中提取每个项目的 name 和 value 字段,以列表形式展示。
接口 2:诊断摘要 (diagnosisSummery)
API 信息:
- URL:
https://upush.umeng.com/hsf/push/diagnosisSummery - Method: POST
- 参数:
{"appkey": "<用户输入的 appkey>", "dateType": "7d"}
响应解析:
直接展示 data 字段的内容。
接口 3:诊断报告 (diagnosisReport)
API 信息:
- URL:
https://upush.umeng.com/hsf/push/diagnosisReport - Method: POST
- 参数:
{"appkey": "<用户输入的 appkey>", "dateType": "7d"}
响应解析:
提取 data 值,并进行简单分析:
- 如果包含
score字段,显示健康得分 - 如果包含
issues或problems字段,列出发现的问题 - 如果包含
suggestions或recommendations字段,列出建议
请求头(三个接口通用)
Content-Type: application/json;charset=UTF-8
Cookie: <从 cookie.txt 读取>
x-csrf-token: <从 Cookie 中提取的 ctoken 值>
重要说明:系统会自动从 Cookie 中提取 ctoken 的值并添加到 x-csrf-token 请求头中,无需手动操作。
示例命令
python scripts/query_app_data.py EXAMPLE_APPKEY_004
功能四:推送轨迹查询(消息排查工具)
🎯 功能概述
主要用途:当用户反馈收不到推送消息时,通过提供 appkey、device_token 和 msg_id,自动分三步排查问题原因。
适用场景:
- 📱 用户反馈收不到推送消息
- ✅ 推送后台显示成功但用户未收到
- 🔍 需要排查推送失败的具体原因
- 📊 分析消息的发送、到达、点击状态
前置条件
用户需要提供以下三个参数:
| 参数 | 说明 | 如何获取 |
|---|---|---|
| appkey | 应用的唯一标识 | 运行 python scripts/get_app_list.py 查看应用列表 |
| device_token | 设备的推送 token | 从客户端日志、数据库或友盟后台的设备管理中获取 |
| msg_id | 消息 ID(22 位) | 从友盟后台的推送记录中点击具体某条推送查看详情 |
使用流程
系统会依次执行以下四个步骤,并提供智能诊断建议:
步骤 1:查询消息生命周期
API 信息:
- URL:
https://upush.umeng.com/hsf/push/getToolLifeCycle - Method: POST
- 参数:
{
"appkey": "<应用 key>",
"deviceToken": "<设备 token>",
"msgId": "<消息 ID>"
}
返回信息:
- ✅ 消息发送时间 - 判断推送是否已发出
- ✅ 消息到达时间 - 判断设备是否收到
- ✅ 消息点击时间 - 判断用户是否点击
- ⚠️ 如果缺少某个时间点,会提示可能的问题
诊断逻辑:
❌ 无发送时间 → 推送任务未执行或被取消
✅ 有发送时间,❌ 无到达时间 → 网络问题、通道延迟、设备异常
✅ 有到达时间,❌ 无点击时间 → 正常现象(用户未点击)
步骤 2:查询设备信息(含厂商 Token 检查)⭐
API 信息:
- URL:
https://upush.umeng.com/hsf/setting/getDeviceInfo - Method: POST
- 参数:
{
"appkey": "<应用 key>",
"deviceToken": "<设备 token>"
}
返回信息:
- 设备型号 - 确认设备类型
- 操作系统版本 - 判断系统兼容性问题
- 应用版本 - 检查 SDK 版本
- 推送通道 - 验证通道配置是否正确
- thirdTokens - 厂商推送 Token 字典(仅安卓设备,新增重点检查项⭐)
诊断逻辑:
❌ 无法获取设备信息 → device_token 不正确或设备从未注册
⚠️ 推送通道为 unknown → 设备推送配置异常
✅ 信息完整 → 设备状态正常
🔍 thirdTokens 字段检查(新增功能):
当检测到设备为安卓设备时,会自动检查 thirdTokens 字段:
-
thirdTokens 为空 ❌
❌❌❌ 严重问题:未获取到任何厂商 Token ❌❌❌ 【问题分析】 - thirdTokens 字段为空,说明设备未成功注册任何厂商推送通道 - 当设备离线时,推送将无法通过厂商通道下发 - 这是导致消息无法送达的重要原因! 【可能原因】 1. 客户端未集成对应厂商的推送 SDK 2. 厂商推送配置不正确(如 AppKey、AppSecret 配置错误) 3. 客户端初始化时未正确调用厂商通道注册方法 4. 设备不支持该厂商推送(如模拟器、定制 ROM) 【解决方案】 1. 检查客户端代码,确认已集成对应厂商的推送 SDK 2. 在友盟后台配置正确的厂商推送凭证 路径:友盟后台 → 应用配置 → 推送渠道 → 配置对应厂商 3. 引导用户重启应用,重新注册推送 4. 检查客户端日志,查看厂商通道初始化是否成功 -
thirdTokens 包含有效值 ✅
✅ thirdTokens 字段包含内容: ✅ 华为:abc123def456... (有效) ✅ 小米:xyz789ghi012... (有效) ⚠️ OPPO: 空值或无效 ✅ 设备已成功注册厂商推送通道 💡 如果仍无法收到消息,请检查: 1. 厂商后台配置的证书/凭证是否正确 2. 推送内容是否符合厂商规范 3. 设备通知权限是否开启 -
thirdTokens 全为无效值 ⚠️
⚠️ 警告:虽然有 thirdTokens 字段,但所有厂商 token 均为空或无效 💡 这可能导致离线推送失败
步骤 3:查询推送请求内容
API 信息:
- URL:
https://upush.umeng.com/hsf/push/getToolRequestContent - Method: POST
- 参数:
{
"appkey": "<应用 key>",
"msgId": "<消息 ID>"
}
返回信息:
- 推送标题和内容
- 推送类型(单播/广播/组播等)
- 推送发送时间
- 目标受众信息
诊断逻辑:
❌ 无法获取推送内容 → msg_id 不正确或记录已删除
✅ 内容完整 → 推送配置正常
步骤 4:查询当天消息列表(分页获取所有记录)
API 信息:
- URL:
https://upush.umeng.com/hsf/setting/deviceMessage - Method: POST
- 参数:
{
"appkey": "<应用 key>",
"deviceToken": "<设备 token>",
"startDate": "<从 msg_id 中提取的日期>",
"endDate": "<从 msg_id 中提取的日期>",
"page": 1,
"pageSize": 50
}
返回信息:
- 当天该设备收到的所有推送消息列表
- 包含字段:msgId、digest(标题)、startTime、status、channel 等
分页逻辑:
1. 先查询第 1 页(pageSize=50),获取总记录数 total
2. 如果 total > 50,计算总页数 = (total + 49) / 50
3. 依次查询第 2 页、第 3 页...直到所有页面获取完成
4. 合并所有页面的消息记录
5. 找到目标 msg_id 在列表中的位置
6. 显示目标消息及之后的所有消息(按发送时间降序)
输出格式:
序号 消息 ID 标题 发送时间 状态 通道
----------------------------------------------------------------------------------------------------
🎯1 uaop149177503491390601 点赞 2026-04-01 17:15:13 送达失败 oppo
2 uaqeph2177503481348101 评论 2026-04-01 17:13:33 已忽略 友盟
3 uafzrt6177502881316001 评论 2026-04-01 15:33:33 送达成功 友盟
说明:
- 🎯 标记为目标消息
- 显示目标消息及之前发送的消息(因为列表按时间降序排列)
- 帮助分析推送频率、限流策略等问题
📋 命令行使用示例
# 基本用法
python scripts/query_push_trace.py <appkey> <device_token> <msg_id>
# 示例 1:排查用户反馈的推送问题
python scripts/query_push_trace.py EXAMPLE_APPKEY_001 abc123xyz 1234567890abcdef
# 示例 2:使用真实的参数
python scripts/query_push_trace.py EXAMPLE_APPKEY_002 V1_abc123def456 1a2b3c4d5e6f7g8h9i0j1k
💡 输出格式示例
================================================================================
🔍 友盟推送消息排查
================================================================================
应用 Key : EXAMPLE_APPKEY_001
设备 Token : abc123xyz
消息 ID : 1234567890abcdef
================================================================================
开始排查消息未收到的原因...
================================================================================
================================================================================
步骤 1:查询消息生命周期
================================================================================
接口:https://upush.umeng.com/hsf/push/getToolLifeCycle
请求参数:
{
"appkey": "EXAMPLE_APPKEY_001",
"deviceToken": "abc123xyz",
"msgId": "1234567890abcdef"
}
返回结果:
{
"sendTime": "2024-01-01 10:00:00",
"arriveTime": null,
"clickTime": null
}
【消息状态分析】
✅ 消息已发送:2024-01-01 10:00:00
⚠️ 消息已发送但未到达 - 可能原因:
- 设备网络问题
- 推送通道延迟
- 设备已关机或卸载应用
... (步骤 2 和步骤 3) ...
================================================================================
📊 排查结果汇总与诊断建议
================================================================================
发现以下问题:
⚠️ 4. 消息已发送但未到达 - 检查设备网络状态、推送通道配置
建议按以上顺序逐一排查
================================================================================
排查完成
================================================================================
🔧 请求头(三个接口通用)
Content-Type: application/json;charset=UTF-8
Cookie: <从 cookie.txt 读取>
x-csrf-token: <从 Cookie 中提取的 ctoken 值>
重要说明:系统会自动从 Cookie 中提取 ctoken 的值并添加到 x-csrf-token 请求头中,无需手动操作。
🛠️ 常见排查场景与建议
场景 1:消息未发送
症状:无 sendTime
可能原因:
- 推送任务被取消
- 定时推送时间未到
- 推送配额已用完
建议:检查推送任务状态和配额使用情况
场景 2:消息已发送但未到达
症状:有 sendTime,无 arriveTime
可能原因:
- 设备网络异常(离线/弱网)
- 推送通道侧延迟或失败
- 设备已关机或卸载应用
- 设备通知权限被关闭
建议:
1. 确认设备在线状态
2. 检查推送通道配置
3. 引导用户检查通知权限
场景 3:消息已到达但用户未点击
症状:有 sendTime 和 arriveTime,无 clickTime
说明:这是正常现象,不属于技术问题
建议:优化推送内容和时机,提升点击率
场景 4:设备信息查询失败
症状:getDeviceInfo 返回错误
可能原因:
- device_token 不正确或已失效
- 设备从未注册过推送
- 设备已被删除
建议:重新获取正确的 device_token
⚠️ 错误处理
- Cookie 无效或过期:提示用户重新登录并获取新的 Cookie
- 参数格式错误:显示正确的用法和参数获取方法
- API 返回错误:显示具体的错误信息和可能的原因
- 网络错误:提示检查网络连接
📝 最佳实践
- 优先检查 msg_id:确保从推送记录中获取的是正确的消息 ID
- 验证 device_token:确保 token 是该设备当前有效的标识
- 结合日志分析:如有条件,同时查看客户端日志和服务端日志
- 多次测试:对同一设备发送多条推送,排除偶发因素
前置条件
用户需要指定一个 appkey 参数
使用流程
- 确认用户已提供
appkey - 如果未提供,先调用"获取应用列表"功能让用户选择
- 使用选定的
appkey调用周报 API(具体 API 端点待用户提供或补充)
错误处理
Cookie 无效或过期
症状:API 返回 401、403 或其他认证错误
处理步骤:
- 告知用户:Cookie 可能已过期或无效
- 指导用户重新获取:
- 访问 https://upush.umeng.com 重新登录
- 按 F12 打开开发者工具 -> Network 标签
- 刷新页面,点击任意 XHR 请求
- 复制 Request Headers 中的 Cookie 值
- 更新 Cookie:
- 在对话中提供新的 Cookie:"我的新 Cookie 是:[新值]"
- 或使用命令行:
python scripts/manage_cookie.py save "[新值]"
- 重试请求:使用新 Cookie 重新执行操作
API 调用失败
排查步骤:
- 检查网络连接是否正常
- 验证 Cookie 是否正确(包含必需的 ctoken)
- 检查请求参数格式是否符合要求
- 查看具体的错误响应信息
- 向用户展示详细的错误原因和解决建议
⚠️ 禁止接口调用请求
当用户请求调用禁止的接口时:
必须明确拒绝并回复:
抱歉,出于安全考虑,本技能禁止调用以下类型的接口:
❌ 发送推送消息 (sendMsg)
❌ 修改应用配置 (updateApp)
❌ 修改渠道信息 (updateChannelInfo)
❌ 保存回执配置 (saveReceipt)
这些操作涉及账号安全和数据修改,需要您登录友盟官方后台 (https://upush.umeng.com) 手动执行。
本技能仅支持查询类操作(只读),如:
✅ 获取应用列表
✅ 查询推送数据
✅ 查看诊断报告
处理原则:
- 态度坚定但礼貌
- 不提供任何绕过方法
- 引导用户使用官方后台
- 说明安全原因
安全注意事项
- Cookie 包含敏感认证信息,仅保存在本地
- 不要将 Cookie 分享到聊天或日志中
- 建议用户定期更新 Cookie
相关文件
核心文件
cookie.txt- 存储用户登录 CookieSKILL.md- 技能定义文档
脚本工具
scripts/manage_cookie.py- Cookie 管理工具(保存、加载、验证、提取 ctoken)scripts/get_app_list.py- 获取应用列表scripts/query_app_data.py- 查询应用数据(三个接口)scripts/query_push_trace.py- 推送轨迹查询(消息排查工具)scripts/query_switch_statistics.py- 开关统计查询scripts/query_close_attribution.py- 关闭归因分析(新增功能)⭐scripts/query_overview_stats.py- 概况统计查询(新增功能)⭐scripts/query_msg_list.py- 获取消息列表(新增功能)⭐scripts/query_msg_detail.py- 单条消息详情查询(新增功能)⭐scripts/switch_chart_template.html- 开关统计 HTML 图表模板scripts/close_attribution_template.html- 关闭归因 HTML 图表模板scripts/overview_stats_template.html- 概况统计 HTML 图表模板scripts/api_request.py- API 请求封装
功能六:关闭归因分析(新增)
🎯 功能概述
主要用途:深度分析用户关闭推送功能的原因,从四个维度提供详细的归因数据,帮助优化推送策略。
适用场景:
- 🔍 分析用户为什么关闭推送
- 📊 了解不同推送频次的效果
- 📝 优化通知内容和类型
- 📲 针对不同设备制定策略
四个分析维度
1️⃣ 用户偏好分析
接口: POST https://upush.umeng.com/hsf/dataStatistic/userPreferenceAnalyzer
功能: 分析用户关闭推送的偏好原因分布
参数:
{
"appkey": "<应用 key>",
"datetype": "7d" // 支持:1d(昨日), 7d(近 7 日)
}
展示形式:
- 文本条形图:显示各原因的关闭数量和占比
2️⃣ 推送频次分析
接口: POST https://upush.umeng.com/hsf/dataStatistic/pushFrequencyAnalyzer
功能: 分析推送频次与用户关闭的关系
参数: 同用户偏好分析
展示形式:
- 文本条形图:显示不同频次区间的关闭情况
3️⃣ 通知内容分析
接口: POST https://upush.umeng.com/hsf/dataStatistic/pushMessageAnalyzer
功能: 分析每条推送消息的关闭情况,提供详细的消息内容和效果数据
参数: 同用户偏好分析
展示字段:
- 任务描述 (description) - 推送的消息描述
- 目标人群 (target) - 推送的目标用户群体
- 发送时间 (pushTime) - 消息发送的具体时间
- 通知标题 (title) - 推送通知的标题
- 通知内容 (text) - 推送通知的正文内容
- 消息点击数 (clickNum) - 该消息被点击的次数
- 关闭通知数 (closeNum) - 用户收到后关闭通知的次数
- 正负效果比 (effectRatio) - 点击与关闭的效果比率
- 消息 ID (msgId) - 消息的唯一标识
展示形式:
- 文本表格:详细列出每条消息的完整信息和效果数据
4️⃣ 设备维度分析
接口: POST https://upush.umeng.com/hsf/dataStatistic/deviceDimensionAnalyzer
功能: 分析不同设备类型的关闭分布
参数: 同用户偏好分析
展示形式:
- 文本条形图:显示各设备类型的关闭情况
📋 使用方法
命令行方式
# 查询近 7 日数据(默认)
python scripts/query_close_attribution.py EXAMPLE_APPKEY_005
# 查询昨日数据
python scripts/query_close_attribution.py EXAMPLE_APPKEY_005 1d
# 查询近 7 日数据
python scripts/query_close_attribution.py EXAMPLE_APPKEY_005 7d
对话方式
告诉助手:
- "分析 EXAMPLE_APPKEY_005 的关闭归因"
- "查看应用的关闭归因分析"
- "查询昨日关闭归因数据"
💡 输出示例
================================================================================
🔍 友盟推送 - 关闭归因分析
================================================================================
应用 Key : EXAMPLE_APPKEY_005
时间范围 : 近 7 日
================================================================================
👤 正在查询 用户偏好分析...
✅ 用户偏好分析 查询成功
================================================================================
👤 用户偏好分析 (近 7 日)
================================================================================
【用户关闭原因偏好分布】
--------------------------------------------------------------------------------
1. 推送太频繁 12,345 45.67% |████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░|
2. 内容不相关 8,234 30.45% |███████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
3. 打扰休息 4,567 16.89% |████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
...
📱 推送频次分析...
📝 通知内容分析...
📲 设备维度分析...
🎨 正在生成可视化图表报告...
✅ 图表报告已生成:/path/to/report.html
📊 数据解读
用户偏好分析:
- 识别主要的关闭原因
- 针对性优化推送策略
- 减少用户流失
推送频次分析:
- 找到最佳推送频次区间
- 避免过度推送引起反感
- 平衡触达率和用户体验
通知内容分析:
- 了解哪些类型的内容更受欢迎
- 优化推送内容质量
- 提高点击率和点击效果
设备维度分析:
- 了解不同设备用户的行为差异
- 针对特定设备优化推送策略
- 提升特定平台的推送效果
⚠️ 注意事项
- 日期限制:仅支持
1d(昨日)和7d(近 7 日),不可随意传其他日期 - Cookie 要求:必须携带有效的 Cookie 才能访问接口
- 数据解读:结合多个维度综合分析,不要单一维度下结论
- 隐私保护:所有数据均为聚合统计,不包含个人隐私信息
📈 优化建议
根据分析结果,可以:
- 调整推送频次,避免用户反感
- 优化推送内容,提高相关性
- 分时段推送,避开休息时间
- 针对不同设备制定差异化策略
- A/B 测试不同推送策略的效果
功能七:概况统计查询(新增)
🎯 功能概述
主要用途:一站式查询应用的核心运营数据,包括应用概况、推送转换漏斗、厂商通道额度(仅安卓),支持生成美观的 HTML 可视化报告。
适用场景:
- 📊 快速了解应用整体运营状况
- 🔄 分析推送消息的转化漏斗
- 🏭 监控厂商通道额度使用情况
- 📈 生成可视化数据报告
三个查询接口
1️⃣ 应用概况
接口: POST https://upush.umeng.com/hsf/overview/getAppCnt
功能: 获取应用的总体运营数据
参数:
{
"appkey": "<应用 key>"
}
返回指标:
totalDevices- 总设备数todayActive- 今日活跃设备数todayPush- 今日推送数量todayArrive- 今日送达数量todayShow- 今日展示数量todayClick- 今日点击数量
各阶段比率计算:
- 送达率 = todayArrive / todayPush × 100%
- 展示率 = todayShow / todayArrive × 100%
- 点击率 = todayClick / todayShow × 100%
2️⃣ 推送转换数据
接口: POST https://upush.umeng.com/hsf/overview/getTransformData
功能: 获取推送消息的转换漏斗数据
参数:
{
"appkey": "<应用 key>",
"msgType": "notification", // 或 "message"
"dateType": "1d" // 支持:"1d", "3d", "7d"
}
参数说明:
msgType:notification- 通知栏消息(默认)message- 消息
dateType:1d- 昨日(默认)3d- 近 3 日7d- 近 7 日
返回指标:
pushCnt- 推送数量arriveCnt- 到达数量showCnt- 展示数量clickCnt- 点击数量
3️⃣ 厂商通道额度(仅安卓)
接口: POST https://upush.umeng.com/hsf/overview/queryThirdQuota
功能: 查询各大手机厂商的推送通道额度使用情况
参数:
{
"appkey": "<应用 key>"
}
支持的厂商:
- 华为 (huawei)
- 小米 (xiaomi)
- OPPO (oppo)
- VIVO (vivo)
- 荣耀 (honor)
- 魅族 (meizu)
返回指标(每个厂商):
total- 总额度remaining- 剩余额度used= total - remaining(已使用额度)usage_rate= used / total × 100%(使用率)
📋 使用方法
命令行方式
# 查询昨日数据(默认)
python scripts/query_overview_stats.py EXAMPLE_APPKEY_005
# 查询并生成 HTML 可视化报告
python scripts/query_overview_stats.py EXAMPLE_APPKEY_005 --html
# 查询近 3 日数据
python scripts/query_overview_stats.py EXAMPLE_APPKEY_005 3d
# 查询近 7 日数据并生成报告
python scripts/query_overview_stats.py EXAMPLE_APPKEY_005 7d --html
# 查询消息类型的近 3 日数据
python scripts/query_overview_stats.py EXAMPLE_APPKEY_005 3d message
# 查询并生成报告(完整参数)
python scripts/query_overview_stats.py EXAMPLE_APPKEY_005 7d notification --html
对话方式
告诉助手:
- "查询 EXAMPLE_APPKEY_005 的概况统计"
- "查看应用的概况统计数据"
- "生成昨日的数据报告"
- "查询近 7 日的推送转换数据"
- "帮我生成概况统计的可视化报告"
💡 输出示例
终端输出
================================================================================
📊 友盟推送 - 概况统计
================================================================================
应用 Key : EXAMPLE_APPKEY_005
时间范围 : 昨日
消息类型 : 通知栏消息
================================================================================
📊 正在查询 应用概况...
✅ 应用概况 查询成功
================================================================================
📊 应用概况统计
================================================================================
应用 Key: EXAMPLE_APPKEY_005
--------------------------------------------------------------------------------
指标 数值 占上一阶段比率
--------------------------------------------------------------------------------
总设备数 1,408,306
今日活跃设备 125,432
今日推送 50,000
今日送达 48,500 97.00%
今日展示 35,000 72.16%
今日点击 12,000 34.29%
--------------------------------------------------------------------------------
📱 正在查询 推送转换数据...
✅ 推送转换数据 查询成功
================================================================================
📱 推送转换数据 (通知栏消息 - 昨日)
================================================================================
阶段 数量 占上一阶段比率
------------------------------------------------------------
推送 50,000
送达 48,500 97.00%
展示 35,000 72.16%
点击 12,000 34.29%
------------------------------------------------------------
📊 转化漏斗:
推送 ██████████████████████████████████████████████████ 50,000
送达 ███████████████████████████████████████████████░░ 48,500 (97.00%)
展示 ██████████████████████████████████████░░░░░░░░░░░ 35,000 (72.16%)
点击 ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 12,000 (34.29%)
🏭 正在查询 厂商通道额度...
💡 提示:仅安卓应用需要查询此项
✅ 厂商通道额度 查询成功
================================================================================
🏭 厂商通道额度统计
================================================================================
应用 Key: EXAMPLE_APPKEY_005
--------------------------------------------------------------------------------
厂商 剩余额度 总额度 使用率
--------------------------------------------------------------------------------
华为 850,000 1,000,000 15.00% |███████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
小米 420,000 500,000 16.00% |████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
OPPO 180,000 200,000 10.00% |█████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
VIVO 270,000 300,000 10.00% |█████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░|
--------------------------------------------------------------------------------
================================================================================
✅ 概况统计查询完成
================================================================================
📊 正在生成 HTML 可视化报告...
✅ 图表报告已生成:/path/to/outputs/overview_stats_EXAMPLE_APPKEY_005_20260403_152736.html
🌐 已在浏览器中打开报告
📊 数据解读
应用概况:
- 总设备数:反映应用的用户规模
- 今日活跃:反映应用的日常活跃度
- 推送 - 送达 - 展示 - 点击:完整的推送转化链路
- 各阶段比率分析:
- 送达率低 → 检查设备在线状态、推送通道配置
- 展示率低 → 检查通知栏折叠、系统限制
- 点击率低 → 优化推送内容和时机
推送转换:
- 推送数量:当天的推送任务总量
- 各阶段比率趋势:对比不同日期类型的变化情况
- 消息类型对比:通知栏消息 vs 消息的转化差异
厂商额度:
- 使用率监控:防止额度用尽影响推送
- 额度分配优化:根据各厂商用户占比合理分配
- 预警机制:当使用率超过 80% 时应引起注意
🎨 HTML 可视化报告
报告特点:
- 📊 应用概况柱状图:直观展示各项指标的对比
- 🔄 推送转换漏斗图:横向条形图展示转化流程
- 🏭 厂商额度堆叠柱状图:显示已使用和剩余额度
- 🎨 渐变配色:紫色系主题,美观专业
- 📱 响应式设计:适配各种屏幕尺寸
报告内容:
- 应用概况部分
- 6 个指标卡片(总设备数、今日活跃、今日推送、今日送达、今日展示、今日点击)
- 柱状图对比各指标
- 推送转换部分
- 漏斗条形图(推送→送达→展示→点击)
- 转换率标注
- 横向柱状图展示转化流程
- 厂商额度部分
- 各厂商额度卡片
- 堆叠柱状图显示总额度和剩余额度
- 使用率进度条
⚠️ 注意事项
- 日期限制:
dateType仅支持1d、3d、7d,不可随意传其他值 - 消息类型:
msgType仅支持notification和message - 厂商额度:仅安卓应用有此项数据,iOS 应用查询会返回空
- Cookie 要求:必须携带有效的 Cookie 才能访问接口
- HTML 报告:使用
--html参数会自动在浏览器中打开报告
📈 优化建议
根据概况统计数据,可以:
-
提升送达率:
- 优化推送通道配置
- 引导用户保持网络畅通
- 使用厂商通道提高到达率
-
提升展示率:
- 优化推送标题和内容
- 选择合适的推送时段
- 避免被系统折叠
-
提升点击率:
- A/B 测试不同推送文案
- 个性化推送内容
- 增加推送的吸引力和相关性
-
厂商额度管理:
- 定期监控各厂商额度使用率
- 根据用户分布调整额度分配
- 提前申请增加高使用率的厂商额度
-
数据趋势分析:
- 对比不同日期类型(1d/3d/7d)的数据
- 发现数据异常波动及时排查
- 建立数据基线,设定合理目标
功能八:获取消息列表(包含任务粒度和 API 单播统计)
🎯 功能概述
主要用途:查询指定应用的消息列表,包含两部分数据:
- 任务粒度的消息列表 - 显示每条推送任务的完整统计数据
- API 单播统计记录 - 显示每日 API 单播推送的统计数据
适用场景:
- 📨 查看应用的历史推送记录
- 📊 分析每条消息的推送效果
- 📡 监控 API 单播推送的每日数据
- 🔍 排查特定消息的发送情况
第一部分:任务粒度的消息列表
API 信息
- URL:
https://upush.umeng.com/hsf/push/getMsgList - Method: POST
- Content-Type:
application/json
请求参数
{
"appkey": "<应用的唯一标识>",
"productionMode": true, // 是否生产模式
"displayType": 0, // 展示类型
"description": "", // 任务描述筛选
"timeSelectorType": 1, // 时间选择器类型
"startTime": "yyyy-MM-dd", // 开始时间
"endTime": "yyyy-MM-dd", // 结束时间
"appGroup": false, // 是否应用组
"pageIndex": 1, // 页码
"pageSize": 15 // 每页条数(固定 15)
}
显示字段(安卓)
以下字段适用于安卓应用的任务粒度消息列表和 API 单播统计列表:
任务粒度消息列表:
description- 任务描述target- 目标人群createTime- 创建时间pushTime- 发送时间totalCount- 计划发送acceptCount- 有效设备sentCount- 实际发送arriveCount- 消息送达arriveRate- 送达率showCount- 消息展示showRate- 展示率clickCount- 消息点击clickRate- 送达点击率(点击数/送达数)clickRateOnShow- 展示点击率(点击数/展示数)ignoreCount- 消息忽略ignoreRate- 忽略率
API 单播统计记录:
date- 日期acceptCount- 有效设备sentCount- 实际发送arriveCount- 消息送达arriveRate- 送达率showCount- 消息展示showRate- 展示率clickCount- 消息点击clickRate- 送达点击率(点击数/送达数)clickRateOnShow- 展示点击率(点击数/展示数)ignoreCount- 消息忽略ignoreRate- 忽略率
注意:上述字段为安卓应用的展示指标,iOS 应用的展示字段将在后续补充。
第二部分:API 单播统计记录
API 信息
- URL:
https://upush.umeng.com/hsf/dataStatistic/getApi - Method: POST
- Content-Type:
application/json
请求参数
{
"appkey": "<应用的唯一标识>",
"pageIndex": 1, // 页码
"pageSize": 15 // 每页条数(固定 15)
}
显示字段(安卓)
以下字段适用于安卓应用的 API 单播统计列表:
date- 日期acceptCount- 有效设备sentCount- 实际发送arriveCount- 消息送达arriveRate- 送达率showCount- 消息展示showRate- 展示率clickCount- 消息点击clickRate- 送达点击率(点击数/送达数)clickRateOnShow- 展示点击率(点击数/展示数)ignoreCount- 消息忽略ignoreRate- 忽略率
注意:上述字段为安卓应用的展示指标,iOS 应用的展示字段将在后续补充。
使用方法
# 查询默认时间范围(近 15 天)的消息列表(包含两部分数据)
python scripts/query_msg_list.py EXAMPLE_APPKEY_006
# 查询指定时间范围的消息列表
python scripts/query_msg_list.py EXAMPLE_APPKEY_006 --start 2026-03-20 --end 2026-04-03
# 查询任务列表第 2 页
python scripts/query_msg_list.py EXAMPLE_APPKEY_006 --page 2
# 查询 API 单播统计第 2 页
python scripts/query_msg_list.py EXAMPLE_APPKEY_006 --api-page 2
# 同时查询任务列表和 API 单播统计的不同页
python scripts/query_msg_list.py EXAMPLE_APPKEY_006 --page 2 --api-page 3
# 按任务描述筛选
python scripts/query_msg_list.py EXAMPLE_APPKEY_006 --desc '测试'
输出示例
================================================================================================================================================================
📨 友盟推送 - 消息列表(任务粒度)
================================================================================================================================================================
应用 Key : EXAMPLE_APPKEY_006
时间范围 : 2026-01-01 ~ 2026-04-07
================================================================================================================================================================
📊 共有 1 条数据,共 1 页,当前第 1 页
----------------------------------------------------------------------------------------------------------------------------------------------------------------
序号 | 任务描述 | 目标人群 | 创建时间 | 发送时间 | 计划发送 | 有效设备 | 实际发送 | 消息送达 | 送达率 | 消息展示 | 展示率 | 消息点击 | 送达点击率 | 展示点击率 | 消息忽略 | 忽略率
----------------------------------------------------------------------------------------------------------------------------------------------------------------
1 | N/A | 全部用户 | 2026-01-15 10:30:00 | 2026-01-15 10:30:00 | 18,300,244 | 10,275,738 | 10,275,738 | 7,523,500 | 73.22% | 5,222,299 | 69.41% | 6,614 | 0.13% | 0.06% | 4,649 | 0.06%
----------------------------------------------------------------------------------------------------------------------------------------------------------------
📄 分页信息:
当前页:1 / 1
上一页:已是第一页
下一页:已是最后一页
================================================================================================================================================================
============================================================================================================================================
📡 API 单播统计记录
============================================================================================================================================
应用 Key : EXAMPLE_APPKEY_006
============================================================================================================================================
📊 共有 30 条数据,共 2 页,当前第 1 页
--------------------------------------------------------------------------------------------------------------------------------------------
序号 | 日期 | 有效设备 | 实际发送 | 消息送达 | 送达率 | 消息展示 | 展示率 | 消息点击 | 送达点击率 | 展示点击率 | 消息忽略 | 忽略率
--------------------------------------------------------------------------------------------------------------------------------------------
1 | 2026-04-07 | 15,418,704 | 12,699,523 | 10,462,983 | 82.39% | 10,204,965 | 97.53% | 16,223 | 0.16% | 0.16% | 0 | 0.00%
2 | 2026-04-06 | 22,340,705 | 16,526,564 | 11,354,701 | 68.71% | 10,968,029 | 96.59% | 20,238 | 0.18% | 0.18% | 0 | 0.00%
--------------------------------------------------------------------------------------------------------------------------------------------
功能九:单条消息详情查询(新增)
🎯 功能概述
主要用途:根据 appkey 和 msg_id 查询单条推送消息的完整详情,包括消息基本信息、推送统计漏斗、失败原因分析、厂商通道集成状态(仅 Android)和分通道送达统计(仅 Android)。
适用场景:
- 🔍 排查某条具体推送的发送效果
- 📊 查看单条消息的完整统计漏斗
- 🏭 分析消息在各厂商通道的送达分布
- ⚠️ 诊断消息推送失败的原因
⚠️ API 单播检测
自动识别:当 msg_id 以 uu、ul 或 ua 开头,且倒数第二位是 0 时,系统自动判定为 API 单播消息,将提示用户 API 单播不支持查询单条消息明细。
查询流程(5 个接口)
接口 1:消息基本信息 (getMsgInfo)
API 信息:
- URL:
https://upush.umeng.com/hsf/push/getMsgInfo - Method: POST
- 参数:
{
"appkey": "<应用 key>",
"taskId": "<msg_id>"
}
返回信息:
- 任务描述 (description/title)
- 推送类型 (type/pushType)
- 目标人群 (target)
- 生产模式 (productionMode)
- 发送时间 (pushTime/sendTime)
- 创建时间 (createTime)
- 状态 (status)
- channelActivity - Android 厂商通道活动配置(⚠️ 如果未配置,无法通过厂商通道下发,只能依赖应用活跃时通过在线通道下发)
诊断逻辑:
✅ channelActivity 有值 → 厂商通道可正常下发
⚠️ channelActivity 为空 → 无法通过厂商通道下发,只能在线通道
结合 getChannelInfo 检查哪些厂商通道未集成,逐一提示用户
接口 2:推送统计数据 (getMsgData)
API 信息:
- URL:
https://upush.umeng.com/hsf/push/getMsgData - Method: POST
- 参数: 同上
返回信息(按漏斗展示):
- 计划发送 (totalCount)
- 实际发送 (sentCount)
- 消息送达 (arriveCount) + 送达率
- 消息展示 (showCount) + 展示率
- 消息点击 (clickCount) + 送达点击率 + 展示点击率
- 消息忽略 (ignoreCount) + 忽略率
接口 3:失败分析 (getPushExpStatData)
API 信息:
- URL:
https://upush.umeng.com/hsf/push/getPushExpStatData - Method: POST
- 参数:
{
"appkey": "<应用 key>",
"isTask": true,
"msgId": "<msg_id>",
"isFree": false,
"stage": "all",
"channel": "all"
}
返回信息:
- 各阶段失败分布(stage、channel、reason、count)
- 按数量排序,计算占比
接口 4:厂商通道集成状态 (getChannelInfo) - 仅 Android
API 信息:
- URL:
https://upush.umeng.com/hsf/setting/getChannelInfo - Method: POST
- 参数:
{"appkey": "<应用 key>"}
返回信息:
- 各厂商通道集成状态(华为、小米、OPPO、VIVO、荣耀、魅族)
- 未集成的通道会发出警告
接口 5:分通道送达统计 (getMsgStatChannelData) - 仅 Android
API 信息:
- URL:
https://upush.umeng.com/hsf/push/getMsgStatChannelData - Method: POST
- 参数:
{"appkey": "<应用 key>", "taskId": "<msg_id>"}
返回信息:
- 各通道(友盟通道/华为/小米/OPPO/VIVO/荣耀/魅族)的发送、送达、展示、点击数据
accs通道显示为"友盟通道"
📋 使用方法
命令行方式
# 查询消息详情(终端文本输出)
python scripts/query_msg_detail.py EXAMPLE_APPKEY_005 <msg_id>
# 查询并生成 HTML 可视化报告
python scripts/query_msg_detail.py EXAMPLE_APPKEY_005 <msg_id> --html
# API 单播自动拦截
python scripts/query_msg_detail.py EXAMPLE_APPKEY_005 uuabc123def45678901230
# → ⚠️ 该消息为 API 单播消息,不支持查询单条消息明细
对话方式
告诉助手:
- "查询 EXAMPLE_APPKEY_005 的消息详情,msg_id 是 xxx"
- "查看某条推送的完整数据"
- "分析这条消息的失败原因"
💡 输出示例
================================================================================================================================================================
📨 友盟推送 - 单条消息详情
================================================================================================================================================================
应用 Key : EXAMPLE_APPKEY_005
消息 ID : abcdefg12345678901234
================================================================================================================================================================
【消息基本信息】
----------------------------------------------------------------------------------------------------
任务描述 : xxx
推送类型 : 广播
目标人群 : 全部用户
生产模式 : 是
发送时间 : 2026-04-08 10:30:00
创建时间 : 2026-04-08 10:29:00
状态 : 发送完成
厂商通道配置 : 已配置
通道详情 :
华为: {...}
小米: {...}
----------------------------------------------------------------------------------------------------
【推送统计漏斗】
----------------------------------------------------------------------------------------------------
阶段 数量 比率 可视化
----------------------------------------------------------------------------------------------------
计划发送 7,847,893 100.00% ██████████████████████████████████████████████████
实际发送 5,188,950 66.12% ██████████████████████████████████████░░░░░░░░░░
消息送达 4,338,336 83.61% ████████████████████████████████░░░░░░░░░░░░░░░░
消息展示 3,171,839 73.11% █████████████████████████░░░░░░░░░░░░░░░░░░░░░░░
消息点击 6,863 0.16% ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
消息忽略 28,945 0.67% ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
----------------------------------------------------------------------------------------------------
送达点击率(点击/送达): 0.16%
展示点击率(点击/展示): 0.22%
----------------------------------------------------------------------------------------------------
【失败原因分析】
----------------------------------------------------------------------------------------------------
序号 | 阶段 | 通道 | 原因 | 数量 | 占比
----------------------------------------------------------------------------------------------------
1 | send | huawei | 设备离线 | 123,456 | 45.67%
2 | arrive | xiaomi | 推送限流 | 89,012 | 32.89%
...
----------------------------------------------------------------------------------------------------
【厂商通道集成状态】
----------------------------------------------------------------------------------------------------
序号 | 通道名称 | 集成状态 | 配置状态 | 说明
----------------------------------------------------------------------------------------------------
1 | 华为 | 已集成 | 已配置 |
2 | 小米 | 已集成 | 已配置 |
3 | OPPO | 未集成 | 未配置 |
----------------------------------------------------------------------------------------------------
⚠️ 以下厂商通道未集成,将无法通过对应通道下发推送:
- OPPO
【分通道送达统计】
----------------------------------------------------------------------------------------------------
序号 | 通道 | 发送 | 送达 | 送达率 | 展示 | 展示率 | 点击 | 送达点击率
----------------------------------------------------------------------------------------------------
1 | 友盟通道 | 1,000,000 | 800,000 | 80.00% | 600,000 | 75.00% | 1,000 | 0.13%
2 | 华为 | 2,000,000 | 1,800,000 | 90.00% | 1,500,000 | 83.33% | 3,000 | 0.17%
3 | 小米 | 1,500,000 | 1,200,000 | 80.00% | 900,000 | 75.00% | 2,000 | 0.17%
----------------------------------------------------------------------------------------------------
📊 数据解读
消息基本信息:
- 确认消息配置是否正确
- 检查 channelActivity 是否配置了厂商通道
推送统计漏斗:
- 计划发送 → 实际发送:过滤率过高说明设备 token 有效性低
- 实际发送 → 消息送达:送达率低说明通道下发有问题
- 消息送达 → 消息展示:展示率低说明通知栏被折叠或用户未查看
- 消息展示 → 消息点击:点击率低说明推送内容吸引力不足
失败原因分析:
- 识别主要失败阶段和原因
- 针对性优化推送策略
厂商通道集成状态:
- 确认哪些通道已集成
- 未集成的通道无法下发离线推送
分通道送达统计:
- 对比各通道的送达率和点击率
- 优化各通道的推送策略
🎨 HTML 可视化报告
使用 --html 参数可生成包含以下图表的报告:
- 📋 消息基本信息卡片
- 📊 推送统计漏斗(横向条形图 + 进度条)
- 🔍 失败原因分析(饼图 + 表格)
- 🔧 厂商通道集成状态(状态卡片,仅 Android)
- 📡 分通道送达统计(堆叠柱状图 + 表格,仅 Android)
⚠️ 注意事项
- API 单播限制:API 单播消息不支持单条消息详情查询
- 平台限制:接口 4 和 5 仅对 Android 应用有效
- Cookie 要求:必须携带有效的 Cookie 才能访问接口
- channelActivity 配置:Android 应用必须正确配置 channelActivity,否则厂商通道无法使用
📈 优化建议
根据查询结果,可以:
- 优化 channelActivity 配置,确保厂商通道可正常下发
- 集成未开通的厂商通道,提升离线推送到达率
- 针对高失败率的阶段进行针对性优化
- 对比各通道的送达率,调整推送策略
- 优化推送内容,提升点击率