algo-social-engagement
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseEngagement Rate Calculation
参与率计算
Overview
概述
Engagement rate measures audience interaction relative to reach or audience size. Formula: (reactions + comments + shares) / denominator × 100%. The denominator choice (reach, impressions, followers) significantly affects the result. Computes in O(n) per post set.
参与率用于衡量受众互动与触达量或受众规模的相对关系。计算公式:(互动反应数 + 评论数 + 分享数) / 分母 × 100%。分母的选择(触达量、曝光量、粉丝数)会对结果产生显著影响。每组帖子的计算复杂度为O(n)。
When to Use
适用场景
Trigger conditions:
- Computing engagement metrics for social media reporting
- Benchmarking account or post performance against industry averages
- Comparing content performance across posts or accounts
When NOT to use:
- When evaluating influence holistically (use influence measurement)
- When modeling content spread dynamics (use virality models)
触发条件:
- 为社交媒体报告计算参与度指标
- 将账号或帖子表现与行业平均水平进行基准对比
- 对比不同帖子或账号的内容表现
不适用场景:
- 需要全面评估影响力时(使用影响力衡量工具)
- 需要建模内容传播动态时(使用病毒传播模型)
Algorithm
算法
IRON LAW: Engagement Rate Denominator MATTERS
By reach, by impressions, and by followers produce DIFFERENT numbers:
- ER by Reach = engagements / reach × 100% (most accurate, requires analytics access)
- ER by Impressions = engagements / impressions × 100% (always lower than by reach)
- ER by Followers = engagements / followers × 100% (public data, but inflated by non-reaching followers)
ALWAYS specify which variant when reporting or comparing.IRON LAW: Engagement Rate Denominator MATTERS
By reach, by impressions, and by followers produce DIFFERENT numbers:
- ER by Reach = engagements / reach × 100% (most accurate, requires analytics access)
- ER by Impressions = engagements / impressions × 100% (always lower than by reach)
- ER by Followers = engagements / followers × 100% (public data, but inflated by non-reaching followers)
ALWAYS specify which variant when reporting or comparing.Phase 1: Input Validation
阶段1:输入验证
Collect per post: likes, comments, shares/retweets, saves (platform-specific), reach or impressions or follower count.
Gate: Consistent denominator across all posts being compared.
收集单条帖子数据:点赞数、评论数、分享/转发数、收藏数(平台特有)、触达量、曝光量或粉丝数。
验证要求: 所有对比帖子使用统一的分母。
Phase 2: Core Algorithm
阶段2:核心算法
- Sum engagements per post: likes + comments + shares (+ saves, clicks if available)
- Weight engagements if desired: share=3×, comment=2×, like=1× (shares indicate higher commitment)
- Divide by chosen denominator (reach preferred, followers as fallback)
- Compute: per-post ER, average ER across posts, median ER, ER trend over time
- 计算单条帖子的总互动量:点赞数 + 评论数 + 分享数(若有则加上收藏数、点击数)
- 如需加权:分享=3倍权重,评论=2倍权重,点赞=1倍权重(分享代表更高的用户参与度)
- 除以选定的分母(优先使用触达量,粉丝数作为备选)
- 计算:单条帖子ER、帖子平均ER、ER中位数、ER随时间变化趋势
Phase 3: Verification
阶段3:结果验证
Compare against platform benchmarks. Flag anomalies (ER > 20% likely data error or viral outlier).
Gate: Results within plausible range for platform.
与平台基准数据对比。标记异常值(ER>20%可能是数据错误或病毒式传播的特例)。
验证要求: 结果处于平台合理范围内。
Phase 4: Output
阶段4:结果输出
Return engagement metrics with benchmarking context.
返回带有基准对比背景的参与度指标。
Output Format
输出格式
json
{
"metrics": {"avg_er_by_reach": 3.2, "avg_er_by_followers": 1.8, "median_er": 2.9, "top_post_er": 8.5},
"benchmark": {"platform": "instagram", "industry": "fashion", "benchmark_er": 2.5, "percentile": 72},
"metadata": {"posts_analyzed": 30, "period": "2025-Q1", "denominator": "reach"}
}json
{
"metrics": {"avg_er_by_reach": 3.2, "avg_er_by_followers": 1.8, "median_er": 2.9, "top_post_er": 8.5},
"benchmark": {"platform": "instagram", "industry": "fashion", "benchmark_er": 2.5, "percentile": 72},
"metadata": {"posts_analyzed": 30, "period": "2025-Q1", "denominator": "reach"}
}Examples
示例
Sample I/O
示例输入输出
Input: Post: 150 likes, 20 comments, 5 shares, reach=5000
Expected: ER by reach = (150+20+5)/5000 × 100% = 3.5%
输入: 帖子:150个点赞,20条评论,5次分享,触达量=5000
预期结果: ER by reach = (150+20+5)/5000 × 100% = 3.5%
Edge Cases
边缘情况
| Input | Expected | Why |
|---|---|---|
| Reach = 0 | Undefined, skip post | Can't divide by zero |
| Boosted/paid post | Separate from organic | Paid reach inflates denominator, deflates ER |
| Viral outlier (10x avg) | Flag, analyze separately | Skews averages |
| 输入 | 预期结果 | 原因 |
|---|---|---|
| 触达量=0 | 无定义,跳过该帖子 | 不能除以零 |
| 推广/付费帖子 | 与自然流量帖子分开计算 | 付费触达量会扩大分母,降低ER |
| 病毒式传播特例(为平均值的10倍) | 标记并单独分析 | 会影响平均值的准确性 |
Gotchas
注意事项
- Platform algorithm changes: Instagram's algorithm shifts regularly. Historical ER benchmarks become outdated. Use rolling 90-day benchmarks.
- Vanity metric trap: High ER doesn't mean business impact. 1000 likes on a meme ≠ 10 link clicks on a product post. Track meaningful engagements.
- Story/Reel metrics differ: Story engagement (taps, replies) and Reel engagement (plays, shares) need different formulas than feed posts. Don't mix.
- Follower-based ER is noisy: Not all followers see each post (reach < followers). ER by followers underestimates true engagement among those who saw the post.
- Comparing across account sizes: Smaller accounts naturally have higher ER by followers. Normalize or segment by account size for fair comparison.
- 平台算法变更:Instagram的算法会定期调整,历史ER基准数据会过时,建议使用滚动90天的基准数据。
- 虚荣指标陷阱:高ER并不意味着业务价值,1000个梗图点赞≠10个产品帖子的链接点击,需追踪有实际意义的互动。
- 动态/短视频指标差异:动态(Story)互动量(点击、回复)和短视频(Reel)互动量(播放、分享)需要使用与feed帖子不同的计算公式,切勿混淆。
- 基于粉丝数的ER存在误差:并非所有粉丝都会看到每条帖子(触达量<粉丝数),基于粉丝数的ER会低估实际看到帖子用户的真实参与度。
- 跨账号规模对比:小型账号的基于粉丝数的ER通常更高,需进行标准化处理或按账号规模分段以实现公平对比。
References
参考资料
- For platform-specific benchmark data, see
references/platform-benchmarks.md - For weighted engagement scoring models, see
references/weighted-engagement.md
- 平台特定基准数据请查看
references/platform-benchmarks.md - 加权参与度评分模型请查看
references/weighted-engagement.md