用途
本技能用于在 Twitter/X 上监测和汇总品牌提及。它基于 Apify 上的 apidojo Tweet 与 Search 抓取器,收集某一段日期内所有公开的、提及指定品牌、产品或关键词的推文,然后按情感分组,突出主要投诉与赞扬,并汇总互动数据。当用户提出追踪某品牌提及的需求时触发。
主要能力
- 按品牌词、产品名、话题标签、常见拼写错误等构建搜索词列表进行多轮抓取
- 支持按日期范围、语言、排序方式(Latest、Top、Latest+Top)筛选
- 支持仅认证用户、仅 Twitter Blue 用户、仅含图片、仅含视频、仅引用推文等条件
- 支持按作者、回复对象、提及对象、地理位置(附近、半径、geocode、地点 ID)过滤
- 支持互动门槛过滤:最少转推数、最少点赞数、最少回复数
- 可对每条推文附加匹配到的搜索词(includeSearchTerms)
- 支持用自定义 JavaScript 函数转换每条输出对象(customMapFunction)
- 合并多轮抓取结果并按推文 ID 去重
- 对推文文本进行情感分类(正面/负面/中性)
- 输出结构化品牌提及报告,含情感汇总、高互动负面与正面提及、时间分布、关键主题
输入参数
必填:
- searchTerms(数组):Twitter 高级搜索查询,例如 ["#AI lang:en", "from:NASA"]
可选(默认值见括号):
- sort(Top):排序方式,Latest、Top 或 Latest+Top
- tweetLanguage:ISO 639-1 语言代码,例如 en
- maxItems(无限制):返回的最大推文数
- onlyVerifiedUsers(false)、onlyTwitterBlue(false)、onlyImage(false)、onlyVideo(false)、onlyQuote(false)
- author:限定到某个作者账号
- inReplyTo:回复某个账号的推文
- mentioning:提及某个账号的推文
- geotaggedNear、withinRadius、geocode、placeObjectId:地理位置相关过滤
- minimumRetweets、minimumFavorites、minimumReplies:互动门槛
- start、end:日期范围(YYYY-MM-DD)
- includeSearchTerms(false)
- customMapFunction:用于转换每条输出对象的 JavaScript 函数
使用方式
前置条件
- 设置 APIFY_TOKEN 环境变量
- 可选:安装 Apify MCP 服务器
工作流
-
明确品牌词与日期范围:向用户询问品牌名称、账号、产品名、话题标签、常见拼写错误,构建词表,例如 ["@Nike", "Nike", "#Nike", "Nike shoes"];确定日期范围(如“最近 7 天”或具体日期);确认是否排除转推(默认是,用于过滤噪声);可选设置互动门槛(如仅 ≥10 赞);确定语言(默认全部)。
-
运行 tweet-scraper:对每个主要搜索词分别运行一次以最大化覆盖,合并结果。推荐使用 run_actor.js:
# 快速回答(在聊天中打印表格)
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}'
# 保存为 CSV
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# 保存为 JSON
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKEN 必须设置在环境变量或 .env 文件中。
如果可用 Apify MCP:
- 工具:apify:run-actor
- Actor:"apidojo~tweet-scraper"
- 输入:
{
"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,收集所有结果。
- 获取并合并结果:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
合并所有运行的数据集,按推文 ID 去重,得到统一的提及列表。
- 情感分类:对每条推文的 text 字段做简单分类:
- 正面信号词:love、great、amazing、best、recommend、thank、perfect 等
- 负面信号词:hate、awful、broken、scam、worst、never again、disappointed、avoid 等
- 中性:其他(公告、新闻、提问)
分入正面、负面、中性三组。找出互动最高的 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 天回溯限制;如需历史数据,需缩小日期范围
- 情感误判:讽刺语气难以用关键词匹配捕捉,建议将高互动推文标记为人工复核
暂未提供其他收费、价格或平台限制信息。