安装与下载
1 ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install bulkpublish-get-analytics
2 手动安装
将技能文件夹复制到以下位置之一
~/.openclaw/skills/
{'/skills/'}
优先级:工作区 › 全局 › 内置
3 提示词安装
将此提示词复制到 Openclaw 即可自动安装。
请帮我使用 Clawhub 安装 skill-bulkpublish-get-analytics。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
基本信息
bulkpublish-get-analytics
安装指南
- ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install bulkpublish-get-analytics - 手动安装
将技能文件夹复制到以下位置之一
全局模式
~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置 - 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 bulkpublish-get-analytics。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
下载技能 (.zip)
什么是
BulkPublish Analytics 是一个用于从 BulkPublish 检索社交发布表现的 Openclaw Skills 参考。它指导智能体为日期范围摘要、单篇帖子指标、帖子发现以及套餐使用选择正确的工具。
其核心价值在于提供更值得信赖的报告:平台指标并非全面可用,存储的零可能意味着不支持、未同步或禁用的数据,而不是零互动。该技能解释了如何检查指标支持情况、解读追踪链接点击量,以及区分帖子状态与审批状态。
应用场景
总结特定日期范围内的发布活动,例如本周发布的帖子。
查找已发布的帖子并比较其各平台的互动情况,以找出表现最好的帖子。
查看点赞、评论、曝光量、触达量、点击量、收藏、视频观看量和互动率,而不会将不支持的指标视为零。
调查 BulkPublish 短链接点击量,并将其与平台报告的点击量分开。
检查当前的套餐限制、使用情况和订阅状态。
检查团队审批队列中的待处理或被拒绝的帖子。
解释为什么最近发布的帖子或指标同步被禁用的渠道上的帖子可能仍显示零值。
工作原理
识别用户的问题并选择相关工具:get_analytics 用于日期范围概览,list_posts 用于查找帖子,get_post_metrics 用于特定帖子,get_quota_usage 用于套餐限制。
对于概览,在 from 和 to 中提供 ISO 日期字符串;可选择通过渠道、平台、标签、格式或媒体过滤器缩小结果范围,或请求进行对比。
对于个人表现,使用 list_posts 查找相关帖子,然后使用每个帖子的 postId 请求指标。
在报告任何平台指标之前,请检查 metricsSupported 和 supportedMetrics。将缺少的指标视为什么都没报告,而不是零。对于 Facebook Insights 数据,请考虑 read_insights 权限要求。
在上下文中解读零:数据可能尚未同步,该渠道的 X 指标可能已被禁用,或者链接追踪可能不可用或不适用。
将平台报告的点击量与 BulkPublish 的 linkClicks 分开呈送;将零链接点击描述为无追踪链接点击,而不是证明没人点击。
配置指南
提供的技能参考文档记录了 BulkPublish 工具及其参数,但未指定软件包安装命令、CLI 设置、凭据或配置过程。请在已提供 BulkPublish 工具的智能体环境中使用它。
选择与请求匹配的工具:get_analytics、get_post_metrics、get_quota_usage 或 list_posts。
对于基于日期的查询,将 from 和 to 发送为 ISO 日期,例如 2026-04-01(而不是日期时间)。
仅在相关时应用可选过滤器。要检查审批队列,请使用带有 approvalStatus: "pending" 的 list_posts。
注意事项
此技能不需要也不提供任何 shell 命令。
数据架构
工具响应和字段
工具 输入 返回的数据
get_analytics 必需 from、to;可选 channelIds、platforms、labelIds、postFormat、mediaType、compare 帖子总数、按帖子状态分类的计数、各平台计数以及该范围内的每日帖子计数
list_posts 可选 status、approvalStatus、from、to、channelId、search 与所提供过滤器匹配的帖子
get_post_metrics postId 各平台互动指标、支持元数据和追踪链接点击总量
get_quota_usage 无 套餐名称、限制、当前使用情况和订阅状态
帖子和审批元数据
帖子 status 可以是 draft(草稿)、scheduled(已排期)、publishing(发布中)、published(已发布)、processing(处理中)、failed(失败)或 partial(部分)。
approvalStatus 与 status 分开:none(无,默认)、pending(待审批)、approved(已批准)或 rejected(已拒绝)。待审批和被拒绝的帖子不会自行发布。
指标解读
各平台指标可以包括 likes、comments、shares、impressions、reach、clicks、saves、videoViews 和 engagementRate。每个平台条目还包含 metricsSupported 和 supportedMetrics;使用这些字段来确定指标是否可用。不支持的指标列可能仍包含存储的零,这不是测得的零。engagementRate 衍生自曝光量,对于不报告曝光量的 Bluesky 和 Mastodon,该值始终为零。
linkClicks 及其总计变体用于衡量 BulkPublish 短链接活动,而不是平台点击量。请将这些与 clicks 和 totalClicks 分开,以避免重复计算。零可能反映了禁用追踪、免费套餐、帖子中没有链接,或者由于渠道字符限制而跳过了缩短;已排除机器人和链接预览流量。
指标快照每六小时刷新一次。X 每篇帖子指标同步是每个渠道选择性加入的,最多每周运行一次,受影响的渠道在 metricsDisabledChannels 中标识。Facebook 的曝光量、触达量和点击量取决于 Page Insights 和 read_insights 权限。
高级特性
按渠道、平台、标签、帖子格式和媒体类型过滤分析;在支持的情况下请求对比。
在审查帖子(包括待审批队列)时,将工作流状态与团队审批状态分开。
supportedMetrics
验证每个各平台指标,并说明
metricsSupported: false
的渠道。
独立于平台报告的点击次数报告 BulkPublish 测量的短链接点击次数。
使用快照时间、
metricsDisabledChannels
、链接追踪条件和 Facebook Insights 权限来诊断零。
get_quota_usage
将当前的渠道、每日帖子、存储和 API 调用使用情况与套餐限制进行比较。
name: get-analytics description: Pull analytics, engagement metrics, and performance data from BulkPublish. Use when the user asks about post performance or engagement.
BulkPublish — Analytics Reference
Tools
Tool Use for Key params
get_analytics Overall summary for a date range from, to (ISO dates); optional channelIds, platforms, labelIds, postFormat, mediaType, compare
get_post_metrics Single post engagement postId
get_quota_usage Plan limits and current usage none
list_posts Find posts to analyze status, approvalStatus, from, to, channelId, search
get_analytics response shape
Returns: total posts, status breakdown (any of the 7 post statuses: draft, scheduled, publishing, published, processing, failed, partial), per-platform counts, daily post counts for the range.
Posts also carry approvalStatus (none default | pending | approved | rejected), which is separate from status — filter list_posts with approvalStatus: "pending" to see the team approval queue. Pending and rejected posts never publish on their own.
get_post_metrics response shape
Returns per-platform: likes, comments, shares, impressions, reach, clicks, saves, videoViews, engagementRate.
Plus linkClicks (and totals.linkClicks / totalLinkClicks): clicks on bulkpubli.sh short links, measured by BulkPublish rather than reported by the platform.
Never report a 0 without checking supportedMetrics first
Every platform entry carries two support fields:
metricsSupported — false when the platform has no per-post statistics API at all.
supportedMetrics — the list of metric keys that platform can populate.
All metric columns are stored as integers defaulting to 0, so a metric the platform never reports is indistinguishable from a real zero unless you read supportedMetrics. A key that is not in that list is not a measurement — say "not reported by " or show a dash. Reporting it as 0 tells the user their post got zero engagement when the platform simply has no such metric.
linkClicks is the one metric every platform has
linkClicks is measured by BulkPublish, not the platform, so it is populated even for the platforms in the "reports nothing" row below, and supportedMetrics always contains it. Two rules when reporting it:
Never add it to clicks/totalClicks. Those are the platform's own click figures. One visit can register in both, so summing them double-counts.
A 0 here is ambiguous in a specific way: it means no tracked clicks, which also happens when the organization has link tracking switched off or is on the Free plan (no short links there), when the post contained no links, or when shortening was skipped on that channel for exceeding its character limit. Bot and link-preview traffic is excluded by design. Say "no tracked link clicks" rather than "nobody clicked".
Platform Reports Never reports
X impressions, likes, comments, shares, saves (bookmarks) reach, clicks, video views
YouTube impressions, video views, likes, comments reach, shares, saves, clicks
Instagram impressions, reach, likes, comments, shares, saves clicks, video views
Facebook likes, comments, shares + impressions, reach, clicks¹ saves, video views
LinkedIn (company pages) impressions, reach, likes, comments, shares, clicks saves, video views
TikTok impressions, video views, likes, comments, shares reach, saves, clicks
Threads impressions, likes, comments, shares reach, saves, clicks, video views
Pinterest impressions, clicks, saves, likes, comments, video views reach
Bluesky likes, comments, shares, saves (bookmarks) impressions, reach, clicks, video views
Mastodon likes, comments, shares everything else
Discord likes (reaction counts), comments (thread replies) everything else
Snapchat impressions, reach, likes, comments, shares, clicks, video views saves
Google Business, Telegram, Tumblr nothing —
LinkedIn personal profiles nothing —
¹ Facebook's impressions/reach/clicks come from Page Insights and need the read_insights permission. Without it they stay 0 — "may not be readable", which is neither a dash nor a trustworthy figure.
engagementRate is derived from impressions, so it exists only where impressions do — it is always 0 for Bluesky and Mastodon.
Two more reasons a figure can legitimately be 0
Not synced yet. Figures come from a snapshot refreshed every 6 hours, not a live read. A just-published post appears immediately with zeros.
Metrics sync switched off. X reads are billed, so per-post sync is opt-in per channel and runs at most weekly. The engagement response lists affected channels in metricsDisabledChannels; until the user enables it on the Channels page, every X figure stays 0 and refreshing cannot change that.
get_quota_usage response shape
Returns: plan name, limits (channels, posts/day, storage, API calls), current usage for each, subscription status.
Patterns
"How did my posts do this week?" → get_analytics with last 7 days
"Which post got the most likes?" → list_posts (status: "published") then get_post_metrics for each
"Am I near my limits?" → get_quota_usage
Date params are ISO date strings: "2026-04-01", not datetime
管理 BulkPublish 收件箱
管理渠道