Token导航 LogoToken导航TokenDH.com
开发需要联网clawhub未标认证来源可访问clear审计提醒

uapp-eventuapp 事件

Agent Skill

uapp-event 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,246

周安装

138

GitHub Stars

公开资料未说明

下载量

1,137
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:uapp-event(uapp 事件)
来源仓库:https://github.com/squall0925/uapp-event
安装命令:
openclaw skills install uapp-event
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install uapp-event

简介

查询友盟自定义埋点事件的统计与分析工具。uapp-event 属于开发类 Skill,可作为该场景下的辅助能力补充。

  • 返回事件触发次数、独立用户数和参数分布等深度数据。
  • 支持按事件名和属性值筛选,适用于用户行为研究。
  • 安装命令:openclaw skills install uapp-event。
  • 注意事件定义需提前在友盟平台注册方可正常查询。

SKILL.md

name
umeng-cli-uapp-event
description
友盟 U-App 自定义事件查询技能,支持通过 umeng-cli call 调用友盟 OpenAPI(gateway.open.umeng.com)的 7 个只读事件查询接口,涵盖事件列表、事件触发次数趋势、事件独立用户数、事件参数列表、参数值分布、指定参数值趋势、参数值时长分布。当用户需要查询自定义事件(埋点)触发次数、独立用户数、参数分布,或确认某事件/显示名是否存在时使用。
metadata
requires
bins
["umeng-cli"]
cliHelp
umeng-cli call --help
install
npm install -g @umengfe/umeng-cli
homepage
https://github.com/umeng/umeng-cli

友盟 U-App 自定义事件查询技能

umeng-cli 是友盟提供的命令行程序,所有操作通过执行 umeng-cli call 命令完成。

查询友盟 U-App(移动统计)的自定义事件(埋点)数据,覆盖四大场景:

  • 事件清单:列出 App 下所有自定义事件、确认某事件名 / 显示名是否存在
  • 事件指标:某事件在时间范围内的触发次数趋势、独立用户数趋势(按 device 去重)
  • 参数分析:事件的参数列表、某参数的取值分布、某具体参数值的时间趋势
  • 参数时长:数值型(计算)事件某参数值的使用时长分布

7 个只读查询接口(严格排除写入型 event.create,后者由 uapp-event-manage 负责)。

埋点上报: AI Agent 在阅读本 Skill 文档后,请执行以下命令进行调用埋点上报: ``bash umeng-cli trace '{"skill_name":"umeng-cli-uapp-event"}' ` **Appkey 维度打点:** 当本轮任务中出现 Appkey 的输入操作时,在拿到该 Appkey 之后、发起首个业务 API 调用之前,再追加执行一次带 appkey 的打点: `bash umeng-cli trace '{"skill_name":"umeng-cli-uapp-event", "appkey":"<输入的Appkey>"}' `` 同一 Appkey 在同一会话中只打一次;若用户切换到新的 Appkey,需对新的 Appkey 再打一次。

前置条件:安装 umeng-cli

本 Skill 的所有调用都依赖 umeng-cli 命令行工具。使用本 Skill 前,请先确保已在本机安装。

检查是否已安装

umeng-cli --version

若提示 command not found 或类似错误,按下述方式安装。

安装方式

# 方式一:通过 npm 安装(推荐,自动安装 CLI + 内置 Skills)
npm install -g @umengfe/umeng-cli

# 方式二:通过官方安装脚本(仅安装 CLI 二进制 + Skills)
curl -fsSL https://raw.githubusercontent.com/umeng/umeng-cli/main/scripts/install.sh | sh

安装完成后再次运行 umeng-cli --version 验证。

更多安装说明、卸载、账号管理等参考 umeng-cli SKILL 或项目主页 https://github.com/umeng/umeng-cli

适用场景与触发词

  • 用户询问某 App 有哪些自定义事件 / 埋点
  • 用户询问某事件(按事件名 / 中文显示名)是否存在
  • 用户询问某事件过去 N 天的触发次数、独立用户数
  • 用户询问某事件的参数有哪些、某参数的取值分布 Top N、某参数值的日趋势
  • 用户询问数值型事件的"参数值使用时长"
  • 关键词:自定义事件、埋点查询、事件统计、事件触发次数、独立用户、事件列表、事件参数、参数分布、参数值、参数时长、显示名

鉴权方式

  • authType: umeng-aksk(友盟 OpenAPI AK/SK 签名,HMAC-SHA1)
  • baseUrl: https://gateway.open.umeng.com/openapi
  • endpoint 路径规则: param2/1/com.umeng.uapp/<接口名>
  • AK/SK 由 umeng-cli login 自动获取并加密缓存,无需手动配置 apiKey / apiSecurity

登录状态检查

umeng-cli whoami

登录要求

当接口返回未登录或登录态过期时,需要执行 umeng-cli login --no-qr 进行登录。

AI Agent 执行登录的正确方式:

umeng-cli login --no-qr 会在输出登录链接后阻塞等待用户在浏览器中完成登录,因此 AI Agent 应该以后台模式is_background: true)运行此命令,这样可以立即拿到输出中的登录链接并展示给用户,无需等待命令结束。命令会在用户完成登录后自动退出并保存凭证。

如果终端不支持显示二维码(如 AI Agent 终端、SSH 远程终端等),可以使用 --no-qr 参数,仅输出可点击的登录链接:

umeng-cli login --no-qr

# 输出:
# 🔄 正在生成登录链接...
# ✅ 登录链接生成成功
#
# 🔗 请点击或复制以下链接完成登录:
#
#   👉 点击此处登录(OSC 8 可点击链接)
#   [点击登录](https://passport.umeng.com/login?redirectURL=...)
#   https://passport.umeng.com/login?redirectURL=...
#
# ⏳ 等待登录...
# ✅ 授权成功!
# ✅ 登录完成!

获取 appkey

本 Skill 的 7 个接口均以 appkey 作为应用维度标识(无账户级接口)。

获取路径

  1. 直接要求用户提供 appkey
  2. 若用户不知道,引导至友盟官网 https://www.umeng.com/ 登录后在应用管理后台复制
  3. (进阶)可调用同 namespace 的 umeng.uapp.getAppList 搜索获取

通用调用格式

umeng-cli call '{
  "name": "umeng.uapp.event.<接口名>",
  "api": {
    "method": "GET",
    "baseUrl": "https://gateway.open.umeng.com/openapi",
    "endpoint": "param2/1/com.umeng.uapp/umeng.uapp.event.<接口名>",
    "authType": "umeng-aksk"
  }
}' '<参数JSON>'
  • 本 Skill 的 7 个接口均为 GET 方法
  • endpoint 路径遵循统一格式 param2/1/com.umeng.uapp/<接口名>
  • 所有接口均需 appkey(没有像 getAllAppData 那样的账户级接口)

关键概念

eventId vs eventName

标识含义如何获得用在哪些接口
eventName事件英文名(埋点代码里传的名字)event.list 响应的 name 字段,或用户直接提供event.getData / event.getUniqueUsers / event.param.getValueList / event.param.getData / event.param.getValueDurationList5 个
eventId事件的内部 ID(字符串)必须先调 event.list,读响应的 id 字段event.param.list 一个接口
displayName事件中文显示名(后台编辑)event.list 响应的 displayName 字段仅用于客户端过滤匹配,接口请求体不传
⚠️ 不要把 eventName 传给 event.param.list:该接口的必填参数是 eventId,必须先通过 event.list 把用户给的 eventName / displayName 解析为 id,再调用参数列表接口。

参数三层结构

一个事件下的参数分析遵循三层漏斗:

事件(eventName)
  └── 参数(eventParamName)  ← event.param.list 给出
        └── 参数取值(paramValueName)  ← event.param.getValueList 给出
  • event.param.list 输入 eventId,输出参数清单(paramId / name / displayName
  • event.param.getValueList 输入 eventName + eventParamName,输出取值分布(name / count / percent
  • event.param.getData 输入 eventName + eventParamName + paramValueName,输出指定取值的日趋势
  • event.param.getValueDurationList 输入 eventName + eventParamName,输出时长分布(仅数值型事件有效

接口路由表

事件级(4 个)

接口Endpoint功能
umeng.uapp.event.listparam2/1/com.umeng.uapp/umeng.uapp.event.list事件列表(唯一支持分页page / perPage,可选 version 过滤)
umeng.uapp.event.getDataparam2/1/com.umeng.uapp/umeng.uapp.event.getData事件触发次数日趋势
umeng.uapp.event.getUniqueUsersparam2/1/com.umeng.uapp/umeng.uapp.event.getUniqueUsers事件独立用户数日趋势(按 device 去重)
umeng.uapp.event.param.listparam2/1/com.umeng.uapp/umeng.uapp.event.param.list事件参数列表(必填 eventId

参数值级(3 个)

接口Endpoint功能
umeng.uapp.event.param.getValueListparam2/1/com.umeng.uapp/umeng.uapp.event.param.getValueList参数值取值分布(name / count / percent
umeng.uapp.event.param.getDataparam2/1/com.umeng.uapp/umeng.uapp.event.param.getData指定参数值的次数日趋势
umeng.uapp.event.param.getValueDurationListparam2/1/com.umeng.uapp/umeng.uapp.event.param.getValueDurationList参数值使用时长分布(仅数值型/计算事件

关键差异说明

特性本 Skill 7 个接口
分页 page/perPageevent.list 支持,其余 6 个均不支持
趋势聚合 periodType(daily/weekly/monthly/7day/30day)7 个接口全部不支持(与 umeng-cli-uapp-core-index / umeng-cli-uapp-channel-versionBy* 趋势接口不同,本 Skill 只按每日粒度返回)
channel 过滤均不支持(如需渠道维度请用 umeng-cli-uapp-channel-version
version 过滤event.list 支持
💡 排序与 Top N 由客户端完成:本 Skill 所有接口均不提供服务端排序参数;参数取值分布等 Top N 场景由客户端(LLM 侧)在响应数据上排序截断。

操作

1. 获取事件列表 (event.list)

分页获取指定 App 在时间范围内的自定义事件清单,本 Skill 唯一支持 page / perPage 的接口,也可用 version 过滤。

参数说明:

参数类型必填默认值说明
appkeystring-应用 ID
startDatestring-起始日期 yyyy-MM-dd
endDatestring-截止日期 yyyy-MM-dd
perPageinteger10每页数量,最大 100
pageinteger1页码(从 1 开始)
versionstring-应用版本号(仅一个,含特殊字符需 urlEncode)

调用示例:

# 拉第一页(默认 perPage=10)
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":"2026-04-21","endDate":"2026-04-27"}'

# 每页 100 条,拉第 2 页
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":"2026-04-21","endDate":"2026-04-27","perPage":100,"page":2}'

# 过滤指定版本
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":"2026-04-21","endDate":"2026-04-27","version":"1.0.0"}'

返回格式:

{
  "eventInfo": [
    {
      "name": "click_button",
      "displayName": "按钮点击",
      "count": 12800,
      "id": "a1b2c3d4"
    }
  ],
  "page": 1,
  "totalPage": 3
}

返回字段说明:

字段类型说明
eventInfo[].namestring事件英文名(即 eventName,用于其余 5 个事件接口)
eventInfo[].displayNamestring事件中文显示名(后台编辑,可用于通过中文名反查)
eventInfo[].countinteger时间范围内的累计触发次数
eventInfo[].idstring事件 ID(即 eventIdevent.param.list 的必填参数)
pageinteger当前页码
totalPageinteger总页数
💡 "全部事件"语义:若用户要求列出全部事件,读取响应的 totalPage,循环 page=1..totalPage、每页 perPage=100 拉取后在客户端合并去重。

2. 获取事件触发次数趋势 (event.getData)

获取指定事件在时间范围内的每日触发次数

参数说明:

参数类型必填说明
appkeystring应用 ID
startDatestring起始日期 yyyy-MM-dd
endDatestring截止日期 yyyy-MM-dd
eventNamestring事件英文名(event.listname

调用示例:

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","startDate":"2026-04-21","endDate":"2026-04-27","eventName":"click_button"}'

返回格式:

{
  "eventData": [
    {
      "dates": ["2026-04-21", "2026-04-22", "2026-04-23"],
      "data": [1280, 1360, 1420]
    }
  ]
}

返回字段说明:

字段类型说明
eventData[].dates[]string[]统计日期数组(按日粒度)
eventData[].data[]integer[]对应日期的触发次数数组
⚠️ periodType:本接口仅按日返回,不支持 weekly / monthly / 7day / 30day。若用户需要周/月聚合,在客户端对 data[] 求和。

3. 获取事件独立用户数趋势 (event.getUniqueUsers)

获取指定事件在时间范围内的每日独立用户数(按 device 去重)。

参数说明:

参数类型必填说明
appkeystring应用 ID
startDatestring起始日期 yyyy-MM-dd
endDatestring截止日期 yyyy-MM-dd
eventNamestring事件英文名(event.listname

调用示例:

umeng-cli call '{
  "name": "umeng.uapp.event.getUniqueUsers",
  "api": {
    "method": "GET",
    "baseUrl": "https://gateway.open.umeng.com/openapi",
    "endpoint": "param2/1/com.umeng.uapp/umeng.uapp.event.getUniqueUsers",
    "authType": "umeng-aksk"
  }
}' '{"appkey":"你的appkey","startDate":"2026-04-21","endDate":"2026-04-27","eventName":"click_button"}'

返回格式:

{
  "uniqueUsers": [
    {
      "dates": ["2026-04-21", "2026-04-22", "2026-04-23"],
      "data": [820, 860, 905]
    }
  ]
}

返回字段说明:结构与 event.getData 一致,外层 key 为 uniqueUsers;语义由"次数"变为"去重设备数"。

💡 次数 vs 独立用户:同一用户在一天内多次触发某事件,在 event.getData 中计为多次,在 event.getUniqueUsers 中仅计为 1。要综合看两个指标时,对相同日期区间并行调用二者。

4. 获取事件参数列表 (event.param.list)

获取指定事件的参数清单。必填 eventId(不是 eventName,需要先从 event.list 获得。

参数说明:

参数类型必填说明
appkeystring应用 ID
startDatestring起始日期 yyyy-MM-dd
endDatestring截止日期 yyyy-MM-dd
eventIdstring事件 ID(通过 event.list 响应的 id 字段获取)

调用示例:

# 先通过 event.list 拿到 id,再调本接口
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":"2026-04-21","endDate":"2026-04-27","eventId":"a1b2c3d4"}'

返回格式:

{
  "paramInfos": [
    {
      "paramId": "p001",
      "name": "button_id",
      "displayName": "按钮 ID"
    },
    {
      "paramId": "p002",
      "name": "channel",
      "displayName": "来源渠道"
    }
  ]
}

返回字段说明:

字段类型说明
paramInfos[].paramIdstring参数 ID(当前 namespace 参数值相关接口不要求传,仅识别用)
paramInfos[].namestring参数英文名(即 eventParamName,用于参数值相关 3 个接口)
paramInfos[].displayNamestring参数中文显示名
⚠️ 常见错误:把用户给的 eventName 直接传到 eventId 参数位置,会导致空结果或错误。务必先走 event.list 换取 id

5. 获取参数取值分布 (event.param.getValueList)

获取指定事件某个参数的取值分布(每个不同取值的次数与占比)。

参数说明:

参数类型必填说明
appkeystring应用 ID
startDatestring起始日期 yyyy-MM-dd
endDatestring截止日期 yyyy-MM-dd
eventNamestring事件英文名
eventParamNamestring参数英文名(通过 event.param.listname 获取)

调用示例:

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","startDate":"2026-04-21","endDate":"2026-04-27","eventName":"click_button","eventParamName":"button_id"}'

返回格式:

{
  "paramInfos": [
    {"name": "login",     "count": 5800, "percent": 0.42},
    {"name": "register",  "count": 3100, "percent": 0.23},
    {"name": "%E9%A6%96%E9%A1%B5", "count": 2400, "percent": 0.18}
  ]
}

返回字段说明:

字段类型说明
paramInfos[].namestring参数取值(即 paramValueName,用于 event.param.getData);中文值在响应中通常以 percent-encoded 形式返回,需客户端解码后展示
paramInfos[].countinteger该取值的触发次数
paramInfos[].percentdouble该取值占该参数的比例(0~1)
💡 Top N 排序:接口不保证按 count 降序,客户端按 countpercent 降序后取 Top N。

6. 获取指定参数值的次数趋势 (event.param.getData)

获取"某事件 + 某参数 + 某取值"这一组合的每日触发次数趋势

参数说明:

参数类型必填说明
appkeystring应用 ID
startDatestring起始日期 yyyy-MM-dd
endDatestring截止日期 yyyy-MM-dd
eventNamestring事件英文名
eventParamNamestring参数英文名
paramValueNamestring参数取值(通过 event.param.getValueListname 获取,含中文 / 空格时需 urlEncode)

调用示例:

# 英文取值
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","startDate":"2026-04-21","endDate":"2026-04-27","eventName":"click_button","eventParamName":"button_id","paramValueName":"login"}'

# 含中文/空格的取值需要 urlEncode
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","startDate":"2026-04-21","endDate":"2026-04-27","eventName":"click_button","eventParamName":"button_id","paramValueName":"%E9%A6%96%E9%A1%B5"}'

返回格式:

{
  "paramValueData": [
    {
      "dates": ["2026-04-21", "2026-04-22", "2026-04-23"],
      "data": [520, 580, 640]
    }
  ]
}

返回字段说明:结构与 event.getData 一致,外层 key 为 paramValueData


7. 获取参数值时长分布 (event.param.getValueDurationList)

获取数值型(计算)事件指定参数的时长分布仅对数值型事件返回有效数据,计数型事件调用将返回空或 0。

参数说明:

参数类型必填说明
appkeystring应用 ID
startDatestring起始日期 yyyy-MM-dd
endDatestring截止日期 yyyy-MM-dd
eventNamestring事件英文名(应为数值型/计算事件
eventParamNamestring参数英文名

调用示例:

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","startDate":"2026-04-21","endDate":"2026-04-27","eventName":"play_video","eventParamName":"video_id"}'

返回格式:

{
  "paramInfos": [
    {"name": "video_001", "count": 1820, "percent": 0.48},
    {"name": "video_002", "count": 1100, "percent": 0.29}
  ]
}

返回字段说明:结构与 event.param.getValueList 一致(ParamValueInfo[]),语义改为"时长"而非"次数"。

⚠️ 仅数值型事件有效:若调用后返回空数组或全 0,通常说明该事件是计数型(非计算/数值型),应改用 event.param.getValueList 查询次数分布。

公共枚举与约束

日期格式

  • startDate / endDate 统一使用 yyyy-MM-dd
  • 今日数据有延迟,建议查询"昨日及以前"
  • 事件数据一般次日完整

分页(仅 event.list 支持)

接口支持分页默认值上限
event.listpage=1 / perPage=10perPage 最大 100
其余 6 个接口

无 periodType(本 Skill 专门差异点)

本 Skill 的 7 个接口全部不支持 periodType。与 umeng-cli-uapp-core-index / umeng-cli-uapp-channel-version 的趋势类接口不同:

Skill / 接口是否支持 periodType
本 Skill 的 event.getData / event.getUniqueUsers / event.param.getData❌(仅按日粒度返回)
umeng-cli-uapp-core-indexgetActiveUsers / getNewUsers / getLaunches
umeng-cli-uapp-channel-version*ByChannelOrVersion
用户如需"按周"/"按月"聚合事件数据,请在客户端对 data[] 做分组求和。

eventId vs eventName 路由

用户说的"事件"需要传入获取路径
英文事件名(埋点 key)eventName → 5 个接口用户提供 / event.list.eventInfo[].name
中文显示名先映射到英文事件名event.list.eventInfo[].displayName 客户端匹配
事件 IDeventId → 仅 event.param.list必须 event.list.eventInfo[].id

urlEncode 规则

以下场景需要对值做 URL 编码(percent-encoding):

  • version(含空格/中文/特殊字符时)
  • paramValueName(参数取值含空格/中文)
  • 部分返回值(如 paramInfos[].name)本身是 percent-encoded,展示前需解码

示例:

原值编码后
App StoreApp%20Store
华为%E5%8D%8E%E4%B8%BA
首页%E9%A6%96%E9%A1%B5
示例%E7%A4%BA%E4%BE%8B(官方响应示例即此形)

纯英文字母 / 数字 / 点号(如 login / 1.0.0 / video_001无需编码。

返回数据为空的常见原因

  • 该事件/参数/取值在时间范围内无上报
  • 事件名拼写错误 / 大小写不匹配
  • 时间范围含今日(数据延迟)
  • event.param.list 传了 eventName 而非 eventId
  • event.param.getValueDurationList 用在了计数型事件上

典型工作流

工作流 1:事件存在性检查(按事件名 / 显示名)

需求:"事件 click_button 存在吗?" / "显示名为'按钮点击'的事件存在吗?"
1. event.list(appkey, startDate, endDate, perPage=100, page=1)
2. 若 totalPage > 1,循环拉取后续页合并 eventInfo
3. 客户端遍历 eventInfo:
   - 按事件名:匹配 name(支持忽略大小写)
   - 按显示名:匹配 displayName
4. 命中 → 返回 "存在" + 关键字段(name / displayName / count / id)
   未命中 → 返回 "不存在,可用 uapp-event-manage 创建"

工作流 2:事件综合统计(次数 + 独立用户)

需求:"事件 click_button 过去 7 天表现如何?"
1. 计算 startDate = today - 7, endDate = yesterday
2. 并行调用:
   - event.getData(appkey, startDate, endDate, eventName=click_button)
   - event.getUniqueUsers(appkey, startDate, endDate, eventName=click_button)
3. 对齐 dates[],同时展示 next/unique 两条曲线
4. 总结:总触发次数 / 日均独立用户 / 高点低点、人均触发次数(= 总次数 / 独立用户)

工作流 3:事件参数列表(必经 eventId 解析)

需求:"事件 click_button 有哪些参数?"
1. event.list(appkey, startDate, endDate, perPage=100)
2. 客户端定位 eventInfo[i].name === "click_button",取 eventInfo[i].id
3. event.param.list(appkey, startDate, endDate, eventId=<上一步 id>)
4. 列出 paramInfos[]:name / displayName(供后续 eventParamName 使用)

工作流 4:参数取值分布 Top N

需求:"事件 click_button 的 button_id 取值 Top 5?"
1. event.param.getValueList(appkey, startDate, endDate, eventName=click_button, eventParamName=button_id)
2. 客户端按 count 降序取前 5
3. 展示 name / count / percent(对 percent-encoded 的 name 先解码)
4. 若用户问"占比最高的取值",直接返回 Top 1

工作流 5:特定参数值的时间趋势

需求:"事件 click_button 的 button_id=login 过去 30 天趋势?"
1. (可选)先走工作流 4 确认 login 是有效取值
2. 计算 startDate / endDate
3. event.param.getData(appkey, startDate, endDate, eventName=click_button, eventParamName=button_id, paramValueName=login)
   - 若 paramValueName 含中文 / 空格先 urlEncode
4. 读取 paramValueData[].dates 与 data,输出日趋势

边界条件与错误处理

  • 未说 appkey:先询问用户 appkey;若用户不知道,引导至友盟后台查询或用 umeng.uapp.getAppList
  • appkey 无效:响应非成功,提示「找不到该应用,请确认 appkey 是否正确或是否已开通 U-App」
  • 未说 App 名:先询问,不要猜测;App 名无法匹配时提示「可用 uapp-assets 查询应用列表」
  • 事件名不确定:先用 event.list 查询清单,或用显示名(displayName)客户端反查
  • 事件不存在:提示「该事件不存在,可用 uapp-event-manage 创建」(本 Skill 仅查询)
  • 返回数据为空

- 时间范围含今日 → 改为昨日及以前 - 事件拼写 → 在 event.list 中确认 name - event.param.list 无返回 → 检查是否传成了 eventName(应传 eventId

  • event.param.getValueDurationList 返回空/0:该事件可能是计数型而非数值型(计算)事件,改用 event.param.getValueList
  • 中文参数值查询失败:检查 paramValueName 是否做了 urlEncode
  • 跨大时间范围事件列表拉取缓慢:分页拉取,perPage=100 配合 page=1..totalPage
  • 未登录 / 登录态过期:执行 umeng-cli login --no-qr(AI Agent 以后台模式运行并将链接展示给用户)

典型问法 → 接口/参数映射

典型问法接口关键参数
"某 App 有哪些自定义事件?"event.listappkey + startDate + endDate
"事件 xxx 存在吗?"event.list + 客户端过滤name 匹配
"显示名为 '开始' 的事件存在吗?"event.list + 客户端过滤displayName 匹配
"列出全部事件"event.list 循环perPage=100 + page=1..totalPage
"过去 7 天 xxx 事件触发了多少次?"event.getData近 7 天 + eventName
"过去 7 天 xxx 事件有多少独立用户?"event.getUniqueUsers近 7 天 + eventName
"xxx 事件综合统计"并行 event.getData + event.getUniqueUsers同上
"xxx 事件有哪些参数?"event.list 取 id → event.param.listeventId
"xxx 事件的 yyy 参数取值分布?"event.param.getValueListeventName + eventParamName
"xxx 事件 yyy=login 过去 30 天趋势?"event.param.getDataeventName + eventParamName + paramValueName
"数值事件 zzz 的参数值时长分布?"event.param.getValueDurationListeventName + eventParamName

旧 skill 参数等价对照

uapp-event 的自定义参数与新接口的等价关系:

旧 CLI 参数组合新接口调用
--list-eventsevent.list,默认 page=1 / perPage=10
--list-events --page 2 --per-page 50event.list + page=2 + perPage=50
--list-events --allevent.list 循环 page=1..totalPageperPage=100
--check-event NAMEevent.list + 客户端按 name 匹配
--check-display "中文"event.list + 客户端按 displayName 匹配
--query EVENT --metric countevent.getData
--query EVENT --metric unique_usersevent.getUniqueUsers
--query EVENT --metric all并行 event.getData + event.getUniqueUsers
--list-params EVENTevent.listidevent.param.list
--query EVENT --param PARAMevent.param.getValueList
--query EVENT --param PARAM --param-value VALUEevent.param.getData
--query EVENT --param PARAM --param-metric durationevent.param.getValueDurationList(仅数值型事件)
--range last_7_days客户端计算 startDate / endDate
--app NAMEappkey 解析用户直接给 appkey,或 umeng.uapp.getAppList 解析

注意事项

  • 本 Skill 仅限只读查询,不包含 umeng.uapp.event.create 等写入接口;事件创建/管理请用 uapp-event-manage
  • 所有 7 个接口均为 GET 方法
  • appkey 到友盟官网 https://www.umeng.com/ 应用管理后台查询
  • eventId vs eventNameevent.param.list 必填 eventId,其余 5 个事件/参数接口使用 eventName
  • 分页:仅 event.list 支持 page / perPage(最大 100),其余 6 个均不支持
  • 无 periodType:本 Skill 全部 7 个接口均不支持 periodType,仅按日粒度返回;周/月聚合由客户端完成
  • 独立用户语义event.getUniqueUsers 按 device 去重,同一用户同日多次触发只计 1 次
  • 参数值 urlEncodeparamValueName 含空格/中文必须做 URL 编码;响应中的 paramInfos[].name 亦可能是 percent-encoded,展示前需解码
  • 数值事件专属event.param.getValueDurationList 仅对"计算/数值型事件"返回有效时长,计数型事件返回空/0
  • 排序与 Top N:所有分布类接口不提供服务端排序,客户端按 count / percent 排序后截断
  • 今日数据延迟:事件数据一般次日完整,建议查询"昨日及以前"

快速参考

#接口Endpoint(相对 baseUrl)必填参数可选参数维度
1umeng.uapp.event.listparam2/1/com.umeng.uapp/umeng.uapp.event.listappkey + startDate + endDateperPage(≤100) / page / version事件清单(唯一支持分页
2umeng.uapp.event.getDataparam2/1/com.umeng.uapp/umeng.uapp.event.getDataappkey + startDate + endDate + eventName事件次数日趋势
3umeng.uapp.event.getUniqueUsersparam2/1/com.umeng.uapp/umeng.uapp.event.getUniqueUsersappkey + startDate + endDate + eventName事件独立用户日趋势
4umeng.uapp.event.param.listparam2/1/com.umeng.uapp/umeng.uapp.event.param.listappkey + startDate + endDate + eventId事件参数清单
5umeng.uapp.event.param.getValueListparam2/1/com.umeng.uapp/umeng.uapp.event.param.getValueListappkey + startDate + endDate + eventName + eventParamName参数值分布
6umeng.uapp.event.param.getDataparam2/1/com.umeng.uapp/umeng.uapp.event.param.getDataappkey + startDate + endDate + eventName + eventParamName + paramValueName指定参数值日趋势
7umeng.uapp.event.param.getValueDurationListparam2/1/com.umeng.uapp/umeng.uapp.event.param.getValueDurationListappkey + startDate + endDate + eventName + eventParamName参数值时长分布(数值型事件)
完整 uapp namespace 其他接口(如 getAllAppData / getDailyData / event.create 等)请参考 umeng-cli/reference/openapi/uapp.md。 事件创建 / 管理请使用 uapp-event-manage;核心指标查询请使用 umeng-cli-uapp-core-index;渠道/版本维度请使用 umeng-cli-uapp-channel-version

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

85.01%
按下载量换算967

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills