mcpField
T
tracking-brand-sentiment-across-platforms

tracking-brand-sentiment-across-platforms

github.com/apidojo-io营销与增长1800 次安装24 周前更新
代码仓库

关于 tracking-brand-sentiment-across-platforms

这项品牌监测技能汇集 Twitter、Reddit 和 TikTok 的舆情,并综合各平台结果计算品牌健康分数、生成报告。

主要功能

  1. 01采集三个平台的帖子
  2. 02分类正面、负面和中性情绪
  3. 03按互动情况加权情绪
  4. 04计算综合品牌分数
  5. 05标记分数的明显变化

适用场景

  1. 01比较品牌在不同社交平台的舆情
  2. 02跟踪营销活动或公告引发的反应
  3. 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 服务

输入

参数类型必填默认值备注
searchTermsarray✅[]Twitter 高级搜索查询(例如 ["#AI lang:en", "from:NASA"])
sortstring可选Top排序方式:Latest、Top 或 Latest+Top
tweetLanguagestring可选—ISO 639-1 语言代码(例如 en)
maxItemsnumber可选Unlimited返回推文的最大数量
onlyVerifiedUsersboolean可选false仅包含来自已认证用户的推文
onlyTwitterBlueboolean可选false仅包含 Twitter Blue 订阅者发布的推文
onlyImageboolean可选false仅包含带图片的推文
onlyVideoboolean可选false仅包含带视频的推文
onlyQuoteboolean可选false仅包含引用推文
authorstring可选—筛选特定作者账号发布的推文
inReplyTostring可选—回复特定账号的推文
mentioningstring可选—提及特定账号的推文
geotaggedNearstring可选—特定地点附近的推文
withinRadiusstring可选—geotaggedNear 周边半径
geocodestring可选—纬度/经度 + 半径字符串
placeObjectIdstring可选—标记了地点的推文
minimumRetweetsnumber可选—最低转推数
minimumFavoritesnumber可选—最低点赞数
minimumRepliesnumber可选—最低回复数
startstring可选—此日期之后的推文(YYYY-MM-DD)
endstring可选—此日期之前的推文(YYYY-MM-DD)
includeSearchTermsboolean可选false在每条推文中添加匹配的搜索词
customMapFunctionstring可选—用于转换每个输出对象的 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。

评论

支持 Markdown