SuperAPI AI 工具集

tracking-brand-sentiment-across-platforms

营销与增长

查看项目

更新于 10-15 16:27

技能介绍

用途

该技能用于跨平台追踪品牌舆情(情感倾向)。它同时监测 Twitter、Reddit 和 TikTok 上关于品牌的讨论,并生成一个统一的品牌健康度评分。每个平台承担不同角色:Twitter 代表实时新闻与观点,Reddit 代表深度社区讨论,TikTok 代表 Z 世代产品文化。当用户要求监测品牌相关情感时触发。

前置条件

  • 设置 APIFY_TOKEN 环境变量
  • 可选:安装 Apify MCP 服务器

输入参数

主要输入参数包括:

  • searchTerms(数组,必填,默认 []):Twitter 高级搜索查询,例如 ["#AI lang:en", "from:NASA"]
  • sort(字符串,可选,默认 Top):排序方式,Latest、Top 或 Latest+Top
  • tweetLanguage(字符串,可选):ISO 639-1 语言代码(如 en)
  • maxItems(数字,可选,默认 Unlimited):返回的最大推文数
  • onlyVerifiedUsers(布尔,可选,默认 false):仅来自认证用户的推文
  • onlyTwitterBlue(布尔,可选,默认 false):仅 Twitter Blue 订阅者
  • onlyImage、onlyVideo、onlyQuote(布尔,可选,默认 false):仅含图片、仅含视频、仅引用推文
  • author、inReplyTo、mentioning(字符串,可选):按作者、回复对象、提及对象筛选
  • geotaggedNear、withinRadius、geocode、placeObjectId(字符串,可选):地理位置相关筛选
  • minimumRetweets、minimumFavorites、minimumReplies(数字,可选):最小转推、点赞、回复数
  • start、end(字符串,可选):日期范围(YYYY-MM-DD)
  • includeSearchTerms(布尔,可选,默认 false):为每条推文添加匹配的搜索词
  • customMapFunction(字符串,可选):用于转换每个输出对象的 JavaScript 函数

工作流程

技能按以下步骤执行:

  • 步骤 1:并行运行三个平台的抓取器
  • 步骤 2:按平台进行情感分类
  • 步骤 3:计算跨平台品牌健康度评分
  • 步骤 4:识别主要主题与预警
  • 步骤 5:交付统一报告

步骤 1 中,各平台使用不同的 Apify actor 与输入:

Twitter(若 Apify MCP 可用):actor 为 "apidojo~tweet-scraper",输入 {"searchTerms": ["[BRAND_NAME]"], "maxItems": 300, "tweetLanguage": "en"}。

Reddit:actor 为 "apidojo~tweet-scraper",输入 {"searches": ["[BRAND_NAME]"], "maxItems": 200, "sort": "new", "time": "month"}。

TikTok:actor 为 "apidojo~tiktok-scraper",输入 {"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

APIFY_TOKEN 必须设置在环境变量或 .env 文件中。

适用场景

适用于需要同时了解品牌在 Twitter、Reddit、TikTok 三大平台上舆情走向的场景,如品牌健康度监测、公关危机预警、跨平台情感对比分析等。

限制

该技能依赖 Apify 平台及 apidojo 抓取器,需要 APIFY_TOKEN 环境变量。各平台抓取的数据量、字段与可用性随平台而异。当某平台数据不足或缺失时,需按上述边界情况处理并注明置信度或缺口。相关收费、价格等信息暂未提供。