monitoring-instagram-hashtag-trends

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Monitoring Instagram Hashtag Trends

监控Instagram Hashtag趋势

Analyzes hashtag performance on Instagram to identify which tags drive the best engagement for a content category. Builds a tiered hashtag strategy (broad/mid/niche) based on actual post data.
分析Instagram上hashtag的表现,找出哪些标签能为特定内容品类带来最佳互动效果。基于真实帖子数据构建分层hashtag策略(宽泛/中等/垂直细分)。

Prerequisites

前置条件

  • APIFY_TOKEN
    environment variable set
  • Optional: Apify MCP server installed
  • 设置
    APIFY_TOKEN
    环境变量
  • 可选:安装Apify MCP服务器

Inputs

输入参数

ParameterTypeRequiredDefaultNotes
startUrls
array
[]
Instagram URLs — profiles, hashtags, locations, audio pages, reels
until
stringOptionalScrape posts until this date (YYYY-MM-DD)
maxItems
numberOptionalUnlimitedMaximum posts to return
customMapFunction
stringOptionalJavaScript function to transform each output object
参数类型是否必填默认值说明
startUrls
array
[]
Instagram URL — 主页、hashtag、地点、音频页面、Reels
until
string可选抓取截止日期(格式:YYYY-MM-DD)
maxItems
number可选无限制返回的最大帖子数量
customMapFunction
string可选用于转换每个输出对象的JavaScript函数

Workflow

工作流程

Progress:
- [ ] Step 1: Scrape recent posts for each hashtag
- [ ] Step 2: Calculate per-hashtag metrics
- [ ] Step 3: Tier hashtags by competition/opportunity
- [ ] Step 4: Build recommended hashtag set
Progress:
- [ ] Step 1: Scrape recent posts for each hashtag
- [ ] Step 2: Calculate per-hashtag metrics
- [ ] Step 3: Tier hashtags by competition/opportunity
- [ ] Step 4: Build recommended hashtag set

Step 1: Scrape Hashtags

步骤1:抓取Hashtag数据

Recommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefined
推荐方式 — run_actor.js(自动处理等待、输出和文件保存):
bash
undefined

Quick answer (prints table to chat)

Quick answer (prints table to chat)

node scripts/run_actor.js
--actor "apidojo~instagram-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~instagram-scraper"
--input '{"param": "value"}'

Save as CSV

Save as CSV

node scripts/run_actor.js
--actor "apidojo~instagram-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
node scripts/run_actor.js
--actor "apidojo~instagram-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv

Save as JSON

Save as JSON

node scripts/run_actor.js
--actor "apidojo~instagram-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.

**If Apify MCP is available:**
Tool: apify:run-actor Actor: "apidojo~instagram-scraper" Input: { "keywords": ["[HASHTAG_1]", "[HASHTAG_2]", "..."], "maxItems": 50 }

**REST API fallback:**
```bash
curl -X POST   "https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"keywords": ["#[hashtag1]", "#[hashtag2]"], "maxItems": 50}'
Run per hashtag (or in batch if MCP supports multiple hashtags in one run).
node scripts/run_actor.js
--actor "apidojo~instagram-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN`必须在环境变量或`.env`文件中配置。

**若Apify MCP可用:**
Tool: apify:run-actor Actor: "apidojo~instagram-scraper" Input: { "keywords": ["[HASHTAG_1]", "[HASHTAG_2]", "..."], "maxItems": 50 }

**REST API备选方案:**
```bash
curl -X POST   "https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"keywords": ["#[hashtag1]", "#[hashtag2]"], "maxItems": 50}'
针对每个hashtag单独运行(若MCP支持一次运行多个hashtag则可批量处理)。

Step 2: Calculate Metrics

步骤2:计算指标

For each hashtag:
avg_likes = mean(likesCount for all sampled posts)
avg_comments = mean(commentsCount for all sampled posts)
engagement_per_post = avg_likes + avg_comments
post_volume_estimate = total posts shown (from platform, if available)

opportunity_score = engagement_per_post / (post_volume_estimate / 10000 + 1)
Higher score = better engagement relative to competition.
Hashtag tier:
  • HIGH_COMPETITION: > 1M posts — hard to rank; use rarely
  • MID_TIER: 100K–1M posts — good reach/competition balance
  • NICHE: < 100K posts — easier to rank, less reach but more targeted
针对每个hashtag:
avg_likes = mean(likesCount for all sampled posts)
avg_comments = mean(commentsCount for all sampled posts)
engagement_per_post = avg_likes + avg_comments
post_volume_estimate = total posts shown (from platform, if available)

opportunity_score = engagement_per_post / (post_volume_estimate / 10000 + 1)
分数越高,意味着相对竞争环境下的互动表现越好。
Hashtag层级:
  • HIGH_COMPETITION(高竞争):帖子数超过100万——难以获得高排名;尽量少用
  • MID_TIER(中等层级):帖子数10万至100万——覆盖范围与竞争程度平衡较好
  • NICHE(垂直细分):帖子数少于10万——更容易获得高排名,覆盖范围较小但受众更精准

Step 3: Edge Cases

步骤3:异常情况处理

  • Hashtag is banned: If scrape returns 0 posts, hashtag may be banned by Instagram — drop from strategy
  • Very new hashtag (< 1K posts): Can't calculate reliable metrics; flag as
    EMERGING — LOW DATA
  • Same posts appear across multiple hashtags: Deduplicate when calculating engagement metrics; report true unique post count
  • Hashtag被封禁:如果抓取返回0条帖子,该hashtag可能已被Instagram封禁——从策略中移除
  • 全新Hashtag(帖子数<1000):无法计算可靠指标;标记为
    EMERGING — LOW DATA
  • 同一帖子出现在多个Hashtag下:计算互动指标时去重;报告真实的唯一帖子数量

Output Format

输出格式

undefined
undefined

Instagram Hashtag Strategy: [NICHE]

Instagram Hashtag Strategy: [NICHE]

Hashtags tested: [N] | Date: [DATE]
Hashtags tested: [N] | Date: [DATE]

Performance by Hashtag

Performance by Hashtag

HashtagEst. PostsAvg Likes/PostAvg CommentsTierOpportunity Score
#[tag][N][N][N]MID_TIER[0.XX]
HashtagEst. PostsAvg Likes/PostAvg CommentsTierOpportunity Score
#[tag][N][N][N]MID_TIER[0.XX]

Recommended Hashtag Set (Mix Strategy)

Recommended Hashtag Set (Mix Strategy)

Use 20-30 hashtags per post in this ratio:
  • 5 HIGH_COMPETITION tags: [list]
  • 10 MID_TIER tags: [list]
  • 10 NICHE tags: [list]
Use 20-30 hashtags per post in this ratio:
  • 5 HIGH_COMPETITION tags: [list]
  • 10 MID_TIER tags: [list]
  • 10 NICHE tags: [list]

Banned / Restricted Hashtags

Banned / Restricted Hashtags

Avoid: [list of any hashtags that returned 0 results]
undefined
Avoid: [list of any hashtags that returned 0 results]
undefined

Troubleshooting

故障排除

Engagement data varies widely: Normal for Instagram; use median, not mean, to reduce outlier impact. Hashtag has many posts but low engagement: High volume + low engagement = dominated by bots or spam — low-value for reach; deprioritize. Niche hashtag auto-generation produces no results: Not all niches have well-established hashtag communities — focus on the ones that exist and perform.
互动数据波动大:这在Instagram上属于正常现象;使用中位数而非平均值来降低异常值的影响。 Hashtag帖子多但互动量低:高帖子量+低互动量意味着该标签被机器人或垃圾内容占据——对提升覆盖范围价值低;降低优先级。 垂直细分Hashtag自动生成无结果:并非所有垂直领域都有成熟的hashtag社群——专注于已存在且表现良好的标签。