
群运营分析的难点不在拉数据在拉多少、怎么算。全量拉几万条消息跑分析接口扛不住指标口径不写死每周算出来的数对不上。这篇讲拉取策略、指标定义和增量聚合三件事。一、拉取策略成员全量、消息按日窗口群成员变化慢每天全量拉一次就够了按群 ID 缓存成员表。群消息变化快但分析不需要实时——用 T1 的日窗口每天凌晨拉前一天的增量。消息按游标翻页每页 200 条、页间留 1 秒。活跃群一天几千条翻十几页结束别一次拉一个月——既慢又容易触发限流。二、指标口径先定义再计算四个常用指标口径要写进文档日活跃人数当天发言的去重人数、发言集中度前 10% 的人贡献多少条、问答响应率提问后 30 分钟内有回复的比例、沉默率7 天未发言的成员占比。口径不写死同一批数据不同人算出来三个结果趋势图没法看。定义里要明确边界——当天按自然日还是滚动 24 小时回复算不算机器人自己。三、增量聚合算日表不算明细每天跑一次日粒度汇总表群 ID、日期、消息数、发言人数、新增成员、退群人数、Top 5 发言者。明细消息存冷存储备查分析只查日表。日表让查询从秒级降到毫秒级做周对比、月对比直接聚合日表就行不用重扫明细。群运营指标对照指标计算方式数据来源更新频率日活跃人数当天发言去重计数日消息明细每日 T1发言集中度前10%发言者消息占比日消息明细每周问答响应率30分钟内被回复的提问占比消息时间戳每周沉默率7天未发言成员占比成员表消息每周日表聚合实现import time from collections import Counter class GroupAnalytics: PAGE_SIZE 200 def __init__(self, api, store, cold_store): self.api api self.store store # 日表 self.cold cold_store # 明细冷存 def fetch_day(self, group_id, date_str): # 按游标拉某一天的消息 msgs, cursor [], None while True: r self.api.get(/group/messages, params{ group_id: group_id, date: date_str, cursor: cursor, limit: self.PAGE_SIZE}).json() items r.get(items, []) msgs items cursor r.get(next_cursor) if not cursor or not items: break time.sleep(1) return msgs def compute_daily(self, group_id, date_str): msgs self.fetch_day(group_id, date_str) self.cold.bulk_save(group_id, date_str, msgs) speakers Counter(m[from] for m in msgs) active len(speakers) total len(msgs) # 集中度前 10% 发言者的消息占比 top_n max(1, int(active * 0.1)) top_msgs sum(c for _, c in speakers.most_common(top_n)) concentration round(top_msgs / total, 3) if total else 0 members self.store.member_count(group_id) silent_7d self.store.silent_count(group_id) row { group_id: group_id, date: date_str, msg_count: total, active_users: active, concentration: concentration, new_members: self.store.new_members(group_id, date_str), left_members: self.store.left_members(group_id, date_str), silent_rate: round(silent_7d / members, 3) if members else 0, top_speakers: speakers.most_common(5), } self.store.upsert_daily(row) return row落地建议群成员每天全量拉一次群消息按 T1 日窗口拉页间留 1 秒别一次拉一个月。指标口径写进文档——当天回复这些词必须定义清楚否则算出来的数对不上。分析算日表不算明细日表按群 ID 加日期做主键明细进冷存储备查。集中度和沉默率放一起看能判断群是几个熟人自嗨还是真活跃。微信侧的群成员与群消息接口由Eyun这类个人微信API平台 提供指标计算与日表聚合在自建服务实现接口字段以平台开发文档为准。