关于 monitoring-brand-mentions-on-twitter
用于收集符合品牌、产品或关键词搜索条件的 Twitter/X 公开帖子并整理监测结果的研究技能。它按情绪归类提及内容,并突出互动度较高的好评与投诉。
主要功能
- 01按词语和日期搜索公开推文
- 02按语言、作者和互动量筛选
- 03合并结果并去除重复项
- 04按情绪归类提及内容
- 05突出互动度高的好评与投诉
适用场景
- 01跟踪指定日期范围内的品牌提及
- 02查找需要回应的投诉
- 03筛选可用于客户评价的正面帖子
MCP 相关
如有 Apify MCP 服务,可通过它运行 Apify tweet-scraper;文档也介绍了命令行和 REST API 方式。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill monitoring-brand-mentions-on-twitter安装后在 Claude Code 中输入/monitoring-brand-mentions-on-twitter确认已加载。
详细介绍
监测 Twitter 上的品牌提及
收集指定日期范围内 Twitter/X 上提及品牌、产品或关键词的所有公开推文。按情感倾向分组,列出主要投诉和赞扬,并汇总互动数据。
前提条件
- 已设置
APIFY_TOKEN环境变量 - 可选:已安装 Apify MCP 服务
输入
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
searchTerms | 数组 | ✅ | [] | Twitter 高级搜索查询(例如 ["#AI lang:en", "from:NASA"]) |
sort | 字符串 | 可选 | Top | 排序方式:Latest、Top 或 Latest+Top |
tweetLanguage | 字符串 | 可选 | — | ISO 639-1 语言代码(例如 en) |
maxItems | 数字 | 可选 | 不限 | 返回的推文数量上限 |
onlyVerifiedUsers | 布尔值 | 可选 | false | 仅包含已认证用户发布的推文 |
onlyTwitterBlue | 布尔值 | 可选 | false | 仅包含 Twitter Blue 订阅用户发布的推文 |
onlyImage | 布尔值 | 可选 | false | 仅包含带图片的推文 |
onlyVideo | 布尔值 | 可选 | false | 仅包含带视频的推文 |
onlyQuote | 布尔值 | 可选 | false | 仅包含引用推文 |
author | 字符串 | 可选 | — | 筛选特定作者账号发布的推文 |
inReplyTo | 字符串 | 可选 | — | 回复特定账号的推文 |
mentioning | 字符串 | 可选 | — | 提及特定账号的推文 |
geotaggedNear | 字符串 | 可选 | — | 指定地点附近的推文 |
withinRadius | 字符串 | 可选 | — | geotaggedNear 周边半径 |
geocode | 字符串 | 可选 | — | 纬度/经度与半径字符串 |
placeObjectId | 字符串 | 可选 | — | 标记了地点的推文 |
minimumRetweets | 数字 | 可选 | — | 最低转推数 |
minimumFavorites | 数字 | 可选 | — | 最低点赞数 |
minimumReplies | 数字 | 可选 | — | 最低回复数 |
start | 字符串 | 可选 | — | 此日期之后的推文(YYYY-MM-DD) |
end | 字符串 | 可选 | — | 此日期之前的推文(YYYY-MM-DD) |
includeSearchTerms | 布尔值 | 可选 | false | 在每条推文中添加匹配的搜索词 |
customMapFunction | 字符串 | 可选 | — | 用于转换每个输出对象的 JavaScript 函数 |
工作流
Progress:
- [ ] Step 1: Define brand terms and date range
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Retrieve dataset
- [ ] Step 4: Classify sentiment (positive/negative/neutral)
- [ ] Step 5: Deliver structured report
步骤 1:明确参数
向用户询问:
- 品牌词 — 品牌名称、账号、产品名称、话题标签及常见拼写错误。整理成列表。
示例:
["@Nike", "Nike", "#Nike", "Nike shoes"] - 日期范围 — 例如“过去 7 天”或具体日期
- 排除转推?(默认:是 — 过滤噪声)
- 最低互动量(可选 — 例如仅包含获赞 ≥10 次的推文)
- 语言(默认:全部)
步骤 2:运行 tweet-scraper
对每个主要搜索词各运行一次,以尽可能扩大覆盖范围。之后合并结果。
推荐 — 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。
如果 Apify MCP 可用:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
"searchTerms": ["[BRAND_TERM]"],
"maxItems": 500,
"includeReplies": true,
"tweetLanguage": "en",
"since": "[YYYY-MM-DD]",
"until": "[YYYY-MM-DD]"
}
如果 Apify MCP 不可用:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchTerms": ["[BRAND_TERM]"],
"maxItems": 500,
"includeReplies": true,
"since": "[YYYY-MM-DD]",
"until": "[YYYY-MM-DD]"
}'
对列表中的每个品牌词运行。等待状态变为 SUCCEEDED,然后收集所有结果。
步骤 3:获取并合并结果
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
合并所有运行生成的数据集。按推文 id 去重。结果:包含所有提及的统一列表。
步骤 4:对情感倾向进行分类
对每条推文的 text 字段进行简单分类:
**正面信号:**类似 "love"、"great"、"amazing"、"best"、"recommend"、"thank"、"perfect" 的词 **负面信号:**类似 "hate"、"awful"、"broken"、"scam"、"worst"、"never again"、"disappointed"、"avoid" 的词 **中性:**其他所有内容(公告、新闻、问题)
将推文分为三个类别:正面、负面、中性。
找出互动量最高的 5 条负面推文(这些内容需要优先回应)。 找出互动量最高的 5 条正面推文(可考虑转推或用作用户评价素材)。
步骤 5:整理报告
使用下方的输出模板。
输出格式
# Brand Mention Report: [BRAND]
Period: [START_DATE] – [END_DATE] | Total mentions: [N] | Analyzed: [DATE]
## Sentiment Summary
| Sentiment | Count | % of Total | Avg Engagement |
|-----------|-------|------------|----------------|
| Positive | [N] | [X%] | [likes+RT avg] |
| Negative | [N] | [X%] | [likes+RT avg] |
| Neutral | [N] | [X%] | [likes+RT avg] |
## 🔴 Top Negative Mentions (Action Required)
1. @[handle] ([likes] likes): "[tweet text excerpt]" → [url]
2. @[handle] ([likes] likes): "[tweet text excerpt]" → [url]
3. @[handle] ([likes] likes): "[tweet text excerpt]" → [url]
## 🟢 Top Positive Mentions (Amplify These)
1. @[handle] ([likes] likes): "[tweet text excerpt]" → [url]
2. @[handle] ([likes] likes): "[tweet text excerpt]" → [url]
3. @[handle] ([likes] likes): "[tweet text excerpt]" → [url]
## Volume Over Time
[Day 1]: [N] mentions | [Day 2]: [N] mentions | [Day 3]: [N] mentions...
## Key Themes in Negative Mentions
- [Theme 1]: [N] tweets (e.g., "shipping delays")
- [Theme 2]: [N] tweets (e.g., "customer service")
## Key Themes in Positive Mentions
- [Theme 1]: [N] tweets
- [Theme 2]: [N] tweets
故障排除
热门品牌的结果过多: 将 minLikes 筛选条件提高到 5 或 10,以聚焦于有影响力的提及。
缺少提及: Twitter 搜索 API 的免费套餐仅支持回溯约 7-10 天。要获取历史数据,请缩短日期范围。
情感分类错误: 关键词匹配很难识别讽刺——请标记互动度高的推文以供人工审核。