关于 tracking-brand-sentiment-across-platforms
这项品牌监测技能汇集 Twitter、Reddit 和 TikTok 的舆情,并综合各平台结果计算品牌健康分数、生成报告。
主要功能
- 01采集三个平台的帖子
- 02分类正面、负面和中性情绪
- 03按互动情况加权情绪
- 04计算综合品牌分数
- 05标记分数的明显变化
适用场景
- 01比较品牌在不同社交平台的舆情
- 02跟踪营销活动或公告引发的反应
- 03发现明显情绪变化以便核查
MCP 相关
可通过 Apify MCP 服务运行各平台的抓取 Actor,也提供 REST API 备用方案。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill tracking-brand-sentiment-across-platforms安装后在 Claude Code 中输入/tracking-brand-sentiment-across-platforms确认已加载。
详细介绍
跨平台追踪品牌情绪
并行监测 Twitter、Reddit 和 TikTok 上的品牌情绪,然后生成统一的品牌健康评分。每个平台发挥不同作用:Twitter = 实时新闻/观点,Reddit = 深度社区讨论,TikTok = Z 世代产品文化。
前置条件
- 已设置
APIFY_TOKEN环境变量 - 可选:已安装 Apify MCP 服务
输入
| 参数 | 类型 | 必填 | 默认值 | 备注 |
|---|---|---|---|---|
searchTerms | array | ✅ | [] | Twitter 高级搜索查询(例如 ["#AI lang:en", "from:NASA"]) |
sort | string | 可选 | Top | 排序方式:Latest、Top 或 Latest+Top |
tweetLanguage | string | 可选 | — | ISO 639-1 语言代码(例如 en) |
maxItems | number | 可选 | Unlimited | 返回推文的最大数量 |
onlyVerifiedUsers | boolean | 可选 | false | 仅包含来自已认证用户的推文 |
onlyTwitterBlue | boolean | 可选 | false | 仅包含 Twitter Blue 订阅者发布的推文 |
onlyImage | boolean | 可选 | false | 仅包含带图片的推文 |
onlyVideo | boolean | 可选 | false | 仅包含带视频的推文 |
onlyQuote | boolean | 可选 | false | 仅包含引用推文 |
author | string | 可选 | — | 筛选特定作者账号发布的推文 |
inReplyTo | string | 可选 | — | 回复特定账号的推文 |
mentioning | string | 可选 | — | 提及特定账号的推文 |
geotaggedNear | string | 可选 | — | 特定地点附近的推文 |
withinRadius | string | 可选 | — | geotaggedNear 周边半径 |
geocode | string | 可选 | — | 纬度/经度 + 半径字符串 |
placeObjectId | string | 可选 | — | 标记了地点的推文 |
minimumRetweets | number | 可选 | — | 最低转推数 |
minimumFavorites | number | 可选 | — | 最低点赞数 |
minimumReplies | number | 可选 | — | 最低回复数 |
start | string | 可选 | — | 此日期之后的推文(YYYY-MM-DD) |
end | string | 可选 | — | 此日期之前的推文(YYYY-MM-DD) |
includeSearchTerms | boolean | 可选 | false | 在每条推文中添加匹配的搜索词 |
customMapFunction | string | 可选 | — | 用于转换每个输出对象的 JavaScript 函数 |
工作流
Progress:
- [ ] Step 1: Run scrapers for all three platforms in parallel
- [ ] Step 2: Classify sentiment per platform
- [ ] Step 3: Calculate cross-platform brand health score
- [ ] Step 4: Identify top themes and alerts
- [ ] Step 5: Deliver unified report
步骤 1:运行三个抓取器
Twitter(如果 Apify MCP 可用):
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input: {"searchTerms": ["[BRAND_NAME]"], "maxItems": 300, "tweetLanguage": "en"}
Reddit:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input: {"searches": ["[BRAND_NAME]"], "maxItems": 200, "sort": "new", "time": "month"}
TikTok:
Tool: apify:run-actor
Actor: "apidojo~tiktok-scraper"
Input: {"keywords": ["#[brandname]", "#[brandname]review"], "maxItems": 200}
REST API 备用方案 — 依次运行:
# Twitter
curl -X POST "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"searchTerms": ["[BRAND_NAME]"], "maxItems": 300}'
# Reddit
curl -X POST "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"searches": ["[BRAND_NAME]"], "maxItems": 200, "sort": "new", "time": "month"}'
步骤 2:情绪分类
对所有平台使用相同的词汇模型(来自 analyzing-twitter-sentiment-for-topic 技能的正面/负面/中性指标)。按各平台特有的互动情况加权:
- Twitter:
likeCount + replyCount * 3 - Reddit:
upvotes + commentCount * 2 - TikTok:
playCount / 1000 + diggCount
步骤 3:品牌健康评分
platform_sentiment[p] = (positive_count[p] - negative_count[p]) / total_count[p] # range: -1 to +1
platform_weight = {twitter: 0.35, reddit: 0.40, tiktok: 0.25} # Reddit = most considered opinion
brand_health_score = sum(platform_sentiment[p] * platform_weight[p] for p in platforms)
brand_health_score = (brand_health_score + 1) / 2 * 100 # normalize to 0-100
评分解读: 0–40 = 危机,40–55 = 令人担忧,55–70 = 中性,70–85 = 正面,85–100 = 强劲。
步骤 4:边缘情况
- 品牌名称是常见词(例如“Apple”):在搜索词中添加限定词(“Apple iPhone”“Apple Inc”)以减少噪声;报告消歧率
- 某个平台的内容量占主导(例如 TikTok 的帖子数量是 Twitter 的 10 倍):在综合评分中按内容量加权
- 情绪迅速转变(评分变化超过 20 分):标记为
ALERT— 这可能表明公关危机或积极内容突然走红 - Reddit 未返回结果:该品牌可能未在此平台上被讨论;将
reddit_weight = 0,并将权重分配给其他平台
输出格式
# Cross-Platform Brand Sentiment: [BRAND_NAME]
Period: [DATE_RANGE] | Total posts: [N] | Date: [DATE]
## Brand Health Score: [X]/100 — [INTERPRETATION]
## Per-Platform Breakdown
| Platform | Posts | Positive | Negative | Neutral | Score |
|----------|-------|----------|----------|---------|-------|
| Twitter | [N] | [X%] | [X%] | [X%] | [+/-X] |
| Reddit | [N] | [X%] | [X%] | [X%] | [+/-X] |
| TikTok | [N] | [X%] | [X%] | [X%] | [+/-X] |
## Top Negative Themes (Cross-Platform)
1. [Theme] — [N] posts across [platforms]
2. [Theme]
## Top Positive Themes
1. [Theme] — [N] posts
2. [Theme]
## Most Impactful Posts
🔴 Top negative: [platform] | [handle] | [N engagement] | "[excerpt]"
🟢 Top positive: [platform] | [handle] | [N engagement] | "[excerpt]"
故障排除
不同平台上的品牌健康评分存在冲突:这是有意义的信号——在输出中讨论各平台为何存在差异(例如,“Reddit 社区在讨论产品质量问题,而 TikTok 上则有正面的开箱内容”)。 样本量过小,无法可靠地分析情绪倾向(每个平台少于 50 篇帖子):扩大日期范围,或注明该平台的评分可信度较低。 某个平台上找不到品牌名称:有些品牌在 TikTok 上没有自然流量——在输出中将此注明为缺口。
推荐 — run_actor.js(自动处理等待、输出和文件保存):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
必须在环境或
.env文件中设置APIFY_TOKEN。