模块三:获客与留存
模块边界说明 本模块聚焦"用户"的获取与留存,即流量从哪里来、怎么留住用户、怎么让用户反复购买。 选品策略 → 模块一 团长运营 → 模块二 各模块边界独立,不重叠。
知识库
3.1 获客渠道全景图
社区团购获客有五类渠道,各有优劣:
获客渠道矩阵:
低成本 高成本
↑ ↑
存量裂变 ──────┤ 地推扫码 ─────┤
│ │
老带新 ──────┤ 线下摆摊 ─────┤
│ │
公众号 ──────┤ 广告投放 ─────┤
│ │
小程序分享 ──────┤ KOL合作 ─────┤
│ │
团长私域 ──────┤ 门店引流 ─────┤
五类渠道详解
**渠道A:存量裂变(ROI 最高)
- 定义:老用户带动新用户
- 工具:拼团邀请、分享红包、助力免单
- 优点:成本极低(平台出优惠券,实为补贴)、信任度高
- 缺点:天花板明显(老用户有限)、传播链短
**渠道B:老带新(ROI 1:8-15)
- 定义:老团长推荐新团长、老用户推荐新用户
- 工具:推荐奖励(团长)、邀请有礼(用户)
- 优点:信任背书,转化率极高
- 缺点:规模受老用户基数限制
**渠道C:地推扫码(ROI 1:3-5)
- 定义:BD 人员在社区/菜市场摆摊,引导扫码关注
- 工具:扫码送鸡蛋/纸巾等小礼品
- 优点:可规模化、覆盖面广
- 缺点:成本高(地推人员 + 礼品成本)、用户质量参差不齐
**渠道D:团长私域(ROI 最高但依赖团长质量)
- 定义:团长在微信群/朋友圈发布内容,直接转化
- 工具:早报推送、限时秒杀、新品预告
- 优点:零成本(团长时间成本由佣金覆盖)、信任度高
- 缺点:完全依赖团长运营能力,平台无法直接控制
**渠道E:广告投放(ROI 1:1-2,适合品牌期)
- 定义:朋友圈广告/抖音/微信搜索
- 优点:可快速起量
- 缺点:ROI 低,用户留存差,不适合初创期
各渠道 ROI 对比
| 渠道 | ROI | 适合阶段 | 适合平台 |
|---|---|---|---|
| 存量裂变 | 1:15+ | 全阶段 | 任意 |
| 老带新 | 1:8-15 | 全阶段 | 任意 |
| 团长私域 | 1:10+ | 中后期(团长已成熟) | 任意 |
| 地推扫码 | 1:3-5 | 冷启动期 | 资金充足时 |
| 广告投放 | 1:1-2 | 品牌期 | 成熟平台 |
3.2 社群运营核心框架
社群是社区团购的主战场,用户 80%+ 的交易在社群内发生。
社群运营三角:
内容
/ \
/ \
/ \
互动 —— 交易
内容:让群有价值(不只是卖货)
互动:让群有温度(不只是公告板)
交易:让群能变现(最终目标)
3.3 用户分层体系
用户按价值分层运营:
用户分层模型(RFM 简化版):
高价值用户:近30天购买 ≥ 4次 且 客单价 ≥ 50元
→ 占用户总数 15%
→ 占 GMV 贡献 50%+
→ 策略:VIP专属服务、优先新品试用
潜力用户:近30天购买 2-3次 或 客单价 ≥ 30元
→ 占用户总数 25%
→ 占 GMV 贡献 30%
→ 策略:提升频次、提升客单
普通用户:近30天购买 1次
→ 占用户总数 35%
→ 占 GMV 贡献 15%
→ 策略:激活复购、引导加购
沉默用户:近30天无购买,但注册 > 7天
→ 占用户总数 15%
→ 占 GMV 贡献 < 5%
→ 策略:召回激励、流失预警
流失用户:近60天无购买
→ 占用户总数 10%
→ 几乎不贡献 GMV
→ 策略:超低价召回、放弃(成本过高不投)
3.4 各平台获客策略差异
美团优选
获客策略:流量互通 + 地推优先
核心打法:
1. 美团 APP 首页流量导入(美团 4 亿用户基础)
2. 地推团队规模化获客(BD 1万人)
3. 团长拉新:每新用户首单奖励 3 元
用户留存重点:
→ 美团品牌背书,用户天然信任
→ 依托美团外卖骑手做线下渗透
→ 会员体系:美团会员通用
弱点:用户对平台无情感连接,纯价格驱动
多多买菜
获客策略:社交裂变 + 拼团驱动
核心打法:
1. 拼团机制:2-3 人成团,团长社交关系裂变
2. 邀请助力:帮砍价/助力免费拿,朋友圈刷屏
3. 低价爆品:1 分钱秒杀,引流进群
用户留存重点:
→ 拼团成功后留存(群主持续运营)
→ 拼多多用户本身价格敏感,复购依赖持续低价
→ 重度运营"限时秒杀"保持社群活跃
弱点:用户忠诚度极低,谁便宜买谁
兴盛优选
获客策略:门店获客 + 社区渗透
核心打法:
1. 线下门店:进店顾客扫码关注,实体店信任背书
2. 团长推荐:门店老板即是团长,人情社会关系深
3. 本地化推广:社区公告栏/菜市场横幅/社区微信群
用户留存重点:
→ 团长与用户同社区,天然强关系
→ 实体店可见,用户信任感强
→ 社区活动(节日促销/免费试吃)增强粘性
优点:用户忠诚度最高,次月留存率 78%
淘菜菜
获客策略:88VIP + 淘宝生态联动
核心打法:
1. 88VIP 会员专属价(会员有认同感)
2. 淘宝直播带团购(内容电商)
3. U先试(试用装发放)拉新
用户留存重点:
→ 阿里系会员体系,用户有归属感
→ 内容运营:淘宝直播/种草社区
→ 88VIP 会员复购率高(已付费会员)
弱点:拉新成本高,依赖阿里生态
3.5 复购驱动体系
复购是社区团购最核心的运营指标:
复购驱动三要素:
1. 习惯养成(让用户形成购买习惯)
→ 定时推送:每天同一时间发"今日爆品"
→ 频次提醒:"您已 3 天没下单啦"
→ 周期购:每周三会员日/周末囤货节
2. 利益激励(让用户愿意回来)
→ 积分体系:积分抵现金/积分换赠品
→ 满返优惠:连续购买 3/5/7 次解锁满返
→ 会员专享价:高频用户享额外折扣
3. 情感连接(让用户不想离开)
→ 团长人设:团长是"邻居朋友"不只是卖货
→ UGC 内容:鼓励用户晒好评/买家秀
→ 社区归属:线下自提点变成社交场所
方法论
3.6 社群运营 SOP(日常版)
每日社群运营时间轴:
┌──────────┐
│ 07:00 │ 早报推送(今日爆品预告)
│ 10:00 │ 第一波下单提醒(限时优惠)
│ 11:00 │ 爆品种草(图文并茂)
│ 14:00 │ 午间加购(适合下午茶的轻食)
│ 16:00 │ 发货提醒(今日下单已发货)
│ 19:00 │ 限时秒杀(黄金时段,18-21点最佳)
│ 20:00 │ 好评展示(用户晒单 + 团长推荐)
│ 21:00 │ 明日预告 + 晚安互动
└──────────┘
注意:每天消息不超过 5-7 条,避免刷屏被用户屏蔽
爆品推送话术模板
【限时秒杀 30 分钟】
🏆 今日王炸!山东大樱桃 250g
💰 秒杀价:9.9 元(市场价 19.9)
📦 仅限今日,售完即止
张姐说:"上次买的特别甜,孩子爱吃"
李哥说:"已经第 3 次回购了"
👇 点击链接下单 👇
[小程序链接]
━━━━━━━━━━━━━━━━━
留言"已买+1",揪 3 位送 5 元优惠券
早报推送话术模板
【 早安!今日团品已上线 🌟 】
📣 今日爆品预告:
① 🦐 厄瓜多尔白虾 400g → 秒杀价 23.9(超市 39)
② 🍑 阳山水蜜桃 4 个 → 拼团价 18.8
③ 🥬 有机小青菜 300g × 2 → 9.9(新用户专享)
⏰ 秒杀 10:00 开抢,定好闹钟!
💬 昨天买了鸡蛋的王姐说:
"比菜市场便宜 2 块,个头还大"
━━━━━━━━━━━━━━━
有问题找团长,24 小时在线~
3.7 用户召回 SOP
不同沉默程度的用户,召回策略不同:
召回分层策略:
轻度沉默(7-14天未购买):
→ 推送高性价比刚需品(如大米/鸡蛋)
→ 文案:"您好久没来了,这次有个秒杀您肯定感兴趣"
→ 优惠:首单满 30 减 5(限时 3 天)
中度沉默(15-30天未购买):
→ 推送老用户专属价(比新用户更低)
→ 文案:"我们想您了,这是您的专属优惠"
→ 优惠:老用户专属 8 折券(限时 7 天)
重度沉默(31-60天未购买):
→ 推送大额召回红包
→ 文案:"流失用户召回,专属福利仅此一次"
→ 优惠:满 20 减 8(仅限一次)
流失用户(>60天):
→ 推送超低价引流品(近乎成本价)
→ 文案:"我们升级了,想请您回来看看"
→ 优惠:1 分钱购指定商品(限新客)
→ 注意:成本过高,建议放弃或低预算测试
3.8 用户分层驱动的活动策略
MECE边界说明:本节聚焦"针对哪类用户做什么活动",即基于用户分层的活动策略制定。 具体的活动形式设计(秒杀/满减/拼团等)、优惠券体系、大促策划 → 模块六(营销与促销) 本节不重复 Module 06 的活动机制设计,只聚焦用户分层与活动目标的匹配。
用户分层活动匹配矩阵:
┌─────────────────────────────────────────────────────────────────────────────┐
│ 用户层级 活动目标 活动类型 预期效果 │
│ ───────────────────────────────────────────────────────────────── │
│ 高价值用户 留存维护 会员专享/积分体系/新品试用 月复购≥3次 │
│ 潜力用户 提升频次 满减阶梯/复购返券 月复购≥2次 │
│ 普通用户 激活复购 限时秒杀/首单礼 月复购≥1次 │
│ 沉默用户 召回激活 大额召回券/专属活动 召回率≥15% │
│ 流失用户 超低价召回 1分钱引流/专属福利 召回率≥3% │
└─────────────────────────────────────────────────────────────────────────────┘
Step 1:识别活动目标用户
数据来源:Module 08 用户画像 / RFM 分层
判定标准:
高价值:近30天≥4次购买 且 客单价≥50元
潜力用户:近30天2-3次购买 或 客单价≥30元
普通用户:近30天1次购买
沉默用户:距上次购买7-30天
流失用户:距上次购买>60天
Step 2:匹配合适活动类型
高价值用户 → 专属活动(不打折,保护品牌价值)
活动:会员日/新品抢先购/专属积分加倍
禁忌:不能用优惠券打扰(降低品牌调性)
潜力用户 → 提升频次(引导加购)
活动:满减阶梯/品类券/复购提醒
禁忌:不能用超低价(惯坏价格敏感度)
普通用户 → 激活复购(给一个下单理由)
活动:限时秒杀/今日特惠/老用户专享价
注意:限时紧迫感是关键
沉默用户 → 定向召回(大额激励)
活动:大额券(满25减10)/专属老用户价
注意:必须定向发送,避免全量发券浪费预算
流失用户 → 超低价召回(吸引回巢)
活动:1分钱商品/限时0元购
注意:成本高,仅用于挽回高潜力流失用户
Step 3:制定分层运营日历
日常运营(每日):
高价值用户:07:00 推送新品/会员专享
潜力用户:14:00 推送限时加购提醒
普通用户:19:00 推送当日秒杀
周主题活动:
周一:潜力用户专属券发放日
周三:高价值用户会员日
周五至周日:普通用户秒杀高峰
月度召回:
每月1日:沉默用户定向券发放
每月15日:流失用户超低价召回活动
注意事项:
→ 避免同一用户同时收到多张冲突优惠券
→ 活动频率:每用户每周触达 ≤ 3次(避免骚扰)
→ 数据验证:活动后追踪各层级转化率,优化策略
工具集
Tool 1: 用户分层分析器
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
用户分层分析器
输入:用户近30天购买数据
输出:用户分层占比 + 重点运营建议
"""
def classify_user(
purchase_frequency: int, # 近30天购买次数
avg_order_value: float, # 平均客单价
days_since_last: int, # 距上次购买天数
):
"""
单用户分层
Returns:
str: 用户层级
str: 运营建议
"""
if days_since_last > 60:
return "流失用户", "超低价召回或放弃"
elif days_since_last > 30:
return "沉默用户", "大额优惠券召回"
elif purchase_frequency >= 4 and avg_order_value >= 50:
return "高价值用户", "VIP专属服务,优先新品试用"
elif purchase_frequency >= 2 or avg_order_value >= 30:
return "潜力用户", "提升频次,引导加购"
elif purchase_frequency == 1:
return "普通用户", "激活复购,引导加购"
else:
return "新用户", "首单优惠,培养习惯"
def analyze_user_portfolio(
user_data: list,
):
"""
用户组合分析
Args:
user_data: list of dicts with keys:
- user_id
- purchase_frequency (int)
- avg_order_value (float)
- days_since_last (int)
Returns:
dict: 分层统计 + 运营建议
"""
segments = {
"高价值用户": {"count": 0, "gmv_contribution": 0.0},
"潜力用户": {"count": 0, "gmv_contribution": 0.0},
"普通用户": {"count": 0, "gmv_contribution": 0.0},
"沉默用户": {"count": 0, "gmv_contribution": 0.0},
"流失用户": {"count": 0, "gmv_contribution": 0.0},
"新用户": {"count": 0, "gmv_contribution": 0.0},
}
for u in user_data:
seg, _ = classify_user(
u["purchase_frequency"],
u["avg_order_value"],
u["days_since_last"],
)
segments[seg]["count"] += 1
total = len(user_data) or 1
segment_summary = {}
priority_actions = []
for seg, data in segments.items():
pct = data["count"] / total * 100
segment_summary[seg] = {
"人数": data["count"],
"占比": f"{pct:.1f}%",
}
# 识别重点问题
if segments["沉默用户"]["count"] / total > 0.20:
priority_actions.append("⚠️ 沉默用户占比 > 20%,需立即召回")
if segments["流失用户"]["count"] / total > 0.10:
priority_actions.append("⚠️ 流失用户占比 > 10%,需评估召回价值")
high_value_pct = segments["高价值用户"]["count"] / total * 100
if high_value_pct < 10:
priority_actions.append("⚠️ 高价值用户占比 < 10%,需加强培养")
return {
"总用户数": total,
"分层明细": segment_summary,
"优先行动": priority_actions if priority_actions else ["✅ 各层级用户结构健康"],
}
def calculateRetentionMetrics(
week1_users: int,
week2_retained: int,
week3_retained: int,
week4_retained: int,
):
"""
计算留存率
Args:
week1_users: 第1周活跃用户数
week2_retained: 第2周仍活跃用户数
week3_retained: 第3周仍活跃用户数
week4_retained: 第4周仍活跃用户数
Returns:
dict: 次日/7日/30日留存率
"""
d1 = week2_retained / week1_users * 100 if week1_users > 0 else 0
d7 = week3_retained / week1_users * 100 if week1_users > 0 else 0
d30 = week4_retained / week1_users * 100 if week1_users > 0 else 0
return {
"次日留存率": f"{d1:.1f}%",
"7日留存率": f"{d7:.1f}%",
"30日留存率": f"{d30:.1f}%",
"健康标准": {
"次日留存率": "40-50%(优质)",
"7日留存率": "25-35%(优质)",
"30日留存率": "10-20%(优质)",
},
}
def run():
print("=" * 55)
print("用户分层分析器")
print("=" * 55)
mode = input("模式:1-演示数据 / 2-手动输入用户数据:").strip() or "1"
if mode == "1":
# 演示数据
demo_data = [
{"user_id": "U001", "purchase_frequency": 6, "avg_order_value": 68.0, "days_since_last": 2},
{"user_id": "U002", "purchase_frequency": 3, "avg_order_value": 45.0, "days_since_last": 5},
{"user_id": "U003", "purchase_frequency": 1, "avg_order_value": 28.0, "days_since_last": 10},
{"user_id": "U004", "purchase_frequency": 0, "avg_order_value": 0.0, "days_since_last": 35},
{"user_id": "U005", "purchase_frequency": 5, "avg_order_value": 55.0, "days_since_last": 3},
]
data = demo_data
else:
# 手动输入
n = int(input("用户数量:").strip() or "5")
data = []
for i in range(1, n + 1):
print(f"\n--- 用户 {i} ---")
uid = input("用户ID:").strip() or f"U{i:03d}"
freq = int(input(" 购买频次(月):").strip() or "3")
aov = float(input(" 客单价(元):").strip() or "35")
days = int(input(" 距上次购买天数:").strip() or "10")
data.append({"user_id": uid, "purchase_frequency": freq,
"avg_order_value": aov, "days_since_last": days})
result = analyze_user_portfolio(data)
print(f"\n用户总数:{result['总用户数']}")
print("\n分层明细:")
for seg, segdata in result["分层明细"].items():
print(f" {seg}:{segdata['人数']}人({segdata['占比']})")
print("\n优先行动:")
for action in result["优先行动"]:
print(f" {action}")
print("\n" + "=" * 55)
print("留存率参考指标")
print("=" * 55)
metrics = calculateRetentionMetrics(1000, 450, 300, 150)
for k, v in metrics.items():
if k != "健康标准":
ref = metrics["健康标准"].get(k, "")
print(f" {k}:{v} 参考:{ref}")
if __name__ == "__main__":
run()
Tool 3: 社群活跃度分析器
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
社群活跃度分析器
输入:社群每日发言数据 + 下单数据
输出:活跃度评分 + 健康诊断 + 优化建议
"""
def analyze_community_health(
community_name: str,
member_count: int,
daily_messages: int,
daily_orders: int,
active_members_7d: int,
new_members_7d: int,
quit_members_7d: int,
avg_response_time_minutes: float,
):
"""
分析社群健康度
Args:
community_name: 社群名称
member_count: 当前群成员数
daily_messages: 日均发言数(条)
daily_orders: 日均订单数
active_members_7d: 7日内活跃成员数
new_members_7d: 7日内新增成员数
quit_members_7d: 7日内退群成员数
avg_response_time_minutes: 团长平均响应时间(分钟)
Returns:
dict: 健康度评分 + 诊断 + 建议
"""
# 基础比率
active_rate = active_members_7d / member_count * 100 if member_count > 0 else 0
engagement_rate = daily_messages / member_count * 100 if member_count > 0 else 0
order_per_message = daily_orders / daily_messages if daily_messages > 0 else 0
growth_rate = (new_members_7d - quit_members_7d) / member_count * 100 if member_count > 0 else 0
# 社群活跃度评分(100分)
# 指标1:成员活跃率(30分)
if active_rate >= 60:
activity_score = 30
elif active_rate >= 40:
activity_score = 20
elif active_rate >= 20:
activity_score = 10
else:
activity_score = 3
# 指标2:发言率(20分)
if engagement_rate >= 10:
msg_score = 20
elif engagement_rate >= 5:
msg_score = 12
elif engagement_rate >= 2:
msg_score = 6
else:
msg_score = 2
# 指标3:转化率(30分)- 发言→下单
if daily_orders >= 20:
conv_score = 30
elif daily_orders >= 10:
conv_score = 20
elif daily_orders >= 5:
conv_score = 12
elif daily_orders >= 1:
conv_score = 5
else:
conv_score = 0
# 指标4:增长健康度(20分)
if growth_rate >= 2:
growth_score = 20
elif growth_rate >= 0:
growth_score = 12
elif growth_rate >= -1:
growth_score = 6
else:
growth_score = 0
total_score = activity_score + msg_score + conv_score + growth_score
# 健康诊断
issues = []
if active_rate < 30:
issues.append(f"🔴 成员活跃率仅 {active_rate:.1f}%,社群濒临死亡")
elif active_rate < 50:
issues.append(f"🟠 成员活跃率 {active_rate:.1f}%,低于健康线 50%")
if daily_messages < 10:
issues.append(f"🔴 日均发言仅 {daily_messages} 条,群已死寂")
elif engagement_rate < 5:
issues.append(f"🟡 发言率 {engagement_rate:.1f}%,低于健康线(目标 > 5%)")
if daily_orders < 3:
issues.append(f"🔴 日均订单仅 {daily_orders} 单,转化极差")
elif daily_orders < 10:
issues.append(f"🟠 日均订单 {daily_orders} 单,转化有提升空间")
if quit_members_7d > new_members_7d:
issues.append(f"🔴 退群人数 > 新增人数,群在萎缩")
if avg_response_time_minutes > 30:
issues.append(f"🟡 团长响应时间 {avg_response_time_minutes:.0f} 分钟,偏慢(目标 < 15 分钟)")
# 定级
if total_score >= 80:
grade = "🟢 优秀"
verdict = "社群活跃健康,用户粘性极强"
elif total_score >= 60:
grade = "🟡 良好"
verdict = "社群运营正常,但有提升空间"
elif total_score >= 40:
grade = "🟠 一般"
verdict = "社群活跃度不足,需加强运营"
else:
grade = "🔴 危险"
verdict = "社群濒临死亡,建议重组或解散"
# 优化建议
suggestions = []
if active_rate < 50:
suggestions.append("增加早报/晚安等日常互动内容,提升存在感")
if engagement_rate < 5:
suggestions.append("发起话题讨论(如:今天吃什么?),鼓励成员发言,提升发言率至 5% 以上")
if daily_orders < 10:
suggestions.append("增加限时秒杀/限量抢购等活动,刺激下单")
if growth_rate <= 0:
suggestions.append("启动老带新活动,邀请邻居进群")
if avg_response_time_minutes > 15:
suggestions.append("设置自动回复机器人,减少用户等待时间")
return {
"社群名称": community_name,
"社群规模": f"{member_count} 人",
"健康度评分": f"{total_score}/100",
"评级": grade,
"整体判断": verdict,
"核心指标": {
"成员活跃率": f"{active_rate:.1f}%(目标 > 50%)",
"日均发言率": f"{engagement_rate:.1f}%(目标 > 5%)",
"日均订单": f"{daily_orders} 单(目标 > 10 单)",
"7日净增长": f"{'+' if growth_rate >= 0 else ''}{growth_rate:.2f}%",
"团长响应时间": f"{avg_response_time_minutes:.0f} 分钟(目标 < 15 分钟)",
},
"分项得分": {
"成员活跃率(/30)": activity_score,
"发言率(/20)": msg_score,
"转化效果(/30)": conv_score,
"增长健康度(/20)": growth_score,
},
"健康诊断": issues if issues else ["✅ 暂无明显异常"],
"优化建议": suggestions if suggestions else ["✅ 继续保持当前运营节奏"],
}
def run():
print("=" * 55)
print("社群活跃度分析器")
print("=" * 55)
name = input("社群名称:").strip() or "XX小区群"
try:
members = int(input("群成员数:").strip() or "200")
except ValueError:
members = 200
try:
messages = int(input("日均发言数(条):").strip() or "35")
except ValueError:
messages = 35
try:
orders = int(input("日均订单数(单):").strip() or "15")
except ValueError:
orders = 15
try:
active = int(input("7日内活跃成员数:").strip() or "80")
except ValueError:
active = 80
try:
new_m = int(input("7日内新增成员:").strip() or "5")
except ValueError:
new_m = 5
try:
quit_m = int(input("7日内退群成员:").strip() or "2")
except ValueError:
quit_m = 2
try:
response = float(input("团长平均响应时间(分钟):").strip() or "12")
except ValueError:
response = 12
result = analyze_community_health(
name, members, messages, orders, active, new_m, quit_m, response
)
print(f"\n{'='*55}")
print(f"社群健康度报告:{result['社群名称']}")
print(f"{'='*55}")
print(f"\n社群规模:{result['社群规模']}")
print(f"健康度评分:{result['健康度评分']}")
print(f"评级:{result['评级']}")
print(f"判断:{result['整体判断']}")
print(f"\n核心指标:")
for k, v in result['核心指标'].items():
print(f" {k}:{v}")
print(f"\n分项得分:")
for k, v in result['分项得分'].items():
print(f" {k}:{v}")
print(f"\n健康诊断:")
for issue in result['健康诊断']:
print(f" {issue}")
print(f"\n优化建议:")
for s in result['优化建议']:
print(f" → {s}")
if __name__ == "__main__":
run()
Tool 2: 活动 ROI 计算器
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
活动ROI计算器
输入:活动成本 + 预期GMV + 拉新目标
输出:ROI分析 + 定价建议
注意:详细ROI计算逻辑和品类敏感性分析,见模块六 Tool 1。
本工具提供基础计算,复杂活动策划请参考模块六。
"""
def calculate_activity_roi(
activity_name: str,
# 成本项
subsidy_cost: float, # 补贴成本(优惠券/红包)
marketing_cost: float, # 营销成本(广告/物料)
commission_cost: float, # 额外佣金(团长活动奖励)
# 收益项
expected_gmv: float, # 预期 GMV
expected_new_users: int, # 预期新增用户
baseline_gmv: float, # 同期基准 GMV(无活动时)
):
"""
计算活动 ROI
Returns:
dict: ROI 分析报告
"""
total_cost = subsidy_cost + marketing_cost + commission_cost
incremental_gmv = expected_gmv - baseline_gmv # 增量 GMV
net_contribution = incremental_gmv - total_cost # 净贡献
# 平台综合佣金率(估算)
platform_rate = 0.15
platform_revenue = expected_gmv * platform_rate
contribution_margin = platform_revenue - total_cost
# ROI
roi = (net_contribution / total_cost * 100) if total_cost > 0 else 0
# 每新用户成本
cac = total_cost / expected_new_users if expected_new_users > 0 else float("inf")
# 判断活动可行性
if roi > 50:
verdict = "🟢 极好(ROI > 50%)"
advice = "立即执行,可加大预算"
elif roi > 20:
verdict = "🟢 良好(ROI > 20%)"
advice = "可以执行,建议监控实时数据"
elif roi > 0:
verdict = "🟡 保本(ROI 0-20%)"
advice = "谨慎执行,需确保新用户留存"
else:
verdict = "🔴 亏损(ROI < 0)"
advice = "不建议执行,重新调整方案"
return {
"活动名称": activity_name,
"成本明细": {
"补贴成本": round(subsidy_cost, 2),
"营销成本": round(marketing_cost, 2),
"佣金成本": round(commission_cost, 2),
"总成本": round(total_cost, 2),
},
"收益明细": {
"预期 GMV": round(expected_gmv, 2),
"基准 GMV(无活动)": round(baseline_gmv, 2),
"增量 GMV": round(incremental_gmv, 2),
"平台佣金收益": round(platform_revenue, 2),
},
"核心指标": {
"ROI": f"{roi:.1f}%",
"净贡献": round(net_contribution, 2),
"贡献利润率": f"{net_contribution/expected_gmv*100:.1f}%" if expected_gmv > 0 else "0%",
"每新用户成本(CAC)": f"{cac:.1f}元" if cac != float("inf") else "∞",
},
"评估": verdict,
"建议": advice,
}
def compare_activities(activities: list):
"""活动横向对比(修复:ROI字符串→数值排序)"""
results = sorted(
activities,
key=lambda x: float(x["核心指标"]["ROI"].rstrip("%")),
reverse=True
)
for i, r in enumerate(results):
r["排名"] = i + 1
return results
def run():
print("=" * 55)
print("活动 ROI 计算器")
print("=" * 55)
activity = input("活动名称:").strip() or "限时秒杀"
try:
subsidy = float(input("补贴成本(优惠券/红包,元):").strip() or "5000")
except ValueError:
subsidy = 0
try:
marketing = float(input("营销成本(广告/物料,元):").strip() or "2000")
except ValueError:
marketing = 0
try:
commission = float(input("佣金成本(团长活动奖励,元):").strip() or "1000")
except ValueError:
commission = 0
try:
expected_gmv = float(input("预期 GMV(元):").strip() or "80000")
except ValueError:
expected_gmv = 0
try:
new_users = int(input("预期新增用户(人):").strip() or "200")
except ValueError:
new_users = 0
try:
baseline = float(input("基准 GMV(无活动同期,元):").strip() or "60000")
except ValueError:
baseline = 0
result = calculate_activity_roi(
activity, subsidy, marketing, commission, expected_gmv, new_users, baseline
)
print(f"\n{'='*55}")
print(f"【{result['活动名称']}】ROI 分析报告")
print(f"{'='*55}")
print("\n成本明细:")
for k, v in result["成本明细"].items():
print(f" {k}:{v:.0f} 元")
print("\n收益明细:")
for k, v in result["收益明细"].items():
print(f" {k}:{v:.0f} 元")
print("\n核心指标:")
for k, v in result["核心指标"].items():
print(f" {k}:{v}")
print(f"\n评估:{result['评估']}")
print(f"建议:{result['建议']}")
if __name__ == "__main__":
run()
3.9 各渠道获客话术模板
五类渠道话术:
渠道A:地推扫码话术(面对面)
开场白(3秒吸引注意):
"您好,打扰一下!我是XX社区团购的推广员,
我们在帮社区居民省钱,买菜水果比超市便宜20-30%。
扫码关注就送6枚鸡蛋,您看看了解一下?"
需求挖掘:
"您平时在哪里买菜呀?
菜市场还是超市?
我们比菜市场还便宜,而且明天就能送到小区门口。"
处理抗拒(用户说"不需要"):
"完全理解!您可以先看看,不买也没关系。
关注了以后有优惠活动您就知道了,
反正不花钱,先占个便宜呗😊"
促成(用户犹豫不扫码):
"这样吧,我送您一袋小橘子,
您扫码进群了解一下,不喜欢随时退出来就行。
群里的东西真的比超市便宜很多!"
---
渠道B:老带新(团长推荐)话术
团长推荐团长话术(私信):
"XX姐,您做团长做得真好!
我们现在招募新团长,您有没有朋友住在别的社区想做的?
推荐成功的话,您和您朋友都能拿200元奖励!
她们要是做得好,您还能拿她们GMV的永久分成呢~"
邀请新用户话术(私信):
"您好,我是XX团长的助理~
XX姐推荐您来了解我们的团购!
她的社群口碑特别好,您在她的群里买东西特别靠谱。
我给您发个链接,您可以先看看有什么实惠的~"
---
渠道C:微信群裂变话术
群发话术(邀请好友进群):
"【福利到】🎉
邀请2位邻居进群,双方各得5元无门槛券!
蔬菜水果比超市便宜20%+,明日送达~
想省钱的邻居扫码进群👇"
助力话术(分享链接):
"【0元免费拿】🎁
帮我点一下,助力成功就能0元拿这箱牛奶!
感谢感谢🙏 [链接]
(这活动真的免费,我已经拿到了)"
拼团话术:
"【2人成团】智利车厘子2斤,原价58,两人拼团只要38!
差1人,快来和我一起拼!
点击链接立即参与👇"
---
渠道D:流失用户召回话术
轻度流失(7-14天)私信:
"您好,我是团长小XX!
您之前在我们这买过土鸡蛋,还记得吗?
最近到了特别好吃的草莓,给您留了一份专属价¥19.9(市场价¥35)
这是您的专属优惠哦,点击领取👇"
中度流失(15-30天)私信:
"您好!我是XX,好久没见您来了~
想问一下是不是最近比较忙呀?
我们上了很多新品,给您申请了一张20元无门槛券,
有效期7天,不用就浪费啦,点击领取👇"
重度流失(31-60天)私信:
"【专属召回福利】🎁
您已经60天没来啦,我们非常想念您!
为您准备了一份超级回归礼包:
1分钱换购任意商品 + 10元无门槛券
仅限您一人,戳链接领取👇"
---
渠道E:朋友圈推广话术
日常推广(图文):
"【社区团购日记】🏠
今天到了一批阳山水蜜桃,邻居们都说特别甜!
比超市便宜一半,明日送达,扫码下单👇
[配图:实物图+价格对比图]"
活动预告:
"【明早10点 限量秒杀】⏰
土鸡蛋30枚,市场价32,我们只要19.9!
只有100份,手慢无,扫码进群预约👇"
好评晒单:
"今天邻居们的反馈来了👏
张姐说'鸡蛋特别新鲜,比菜市场好还便宜'
李哥说'排骨收到了,很嫩,推荐!'
想买的邻居,点下面链接下单👇"
3.10 各平台获客成本(CAC)详细对比
各平台真实获客成本数据(基于2021-2023年行业调研):
多多买菜:
┌─────────────────────────────────────────────────┐
│ 获客渠道 成本/人 用户质量 备注 │
│ ───────────────────────────────────── │
│ 1分钱秒杀引流 ¥30-45 极低(羊毛党) 已停 │
│ 邀请助力 ¥8-15 中等(真实用户) 主力 │
│ 拼团裂变 ¥5-12 较高(目标用户) 最佳 │
│ 团长私域转化 ¥3-8 高(信任关系) 最低 │
│ 朋友圈广告投放 ¥25-40 中等 补充 │
│ 加权平均 CAC ¥12-18 — — │
└─────────────────────────────────────────────────┘
注:多多买菜重拉新轻留存,实际有效用户CAC更高
美团优选:
┌─────────────────────────────────────────────────┐
│ 获客渠道 成本/人 用户质量 备注 │
│ ───────────────────────────────────── │
│ 美团APP流量导入 ¥2-5 高(既有用户) 优势 │
│ 地推扫码 ¥15-25 中等 主力 │
│ 团长拉新 ¥5-10 高(团长信任) 主力 │
│ BD团队拓展 ¥20-35 中等 早期 │
│ 社交裂变 ¥8-12 较高 辅助 │
│ 加权平均 CAC ¥8-15 — — │
└─────────────────────────────────────────────────┘
注:美团APP流量是核心竞争力,CAC显著低于行业
兴盛优选:
┌─────────────────────────────────────────────────┐
│ 获客渠道 成本/人 用户质量 备注 │
│ ───────────────────────────────────── │
│ 门店自然流量 ¥1-3 极高(进店顾客) 核心 │
│ 团长社交推荐 ¥3-8 极高(强关系) 核心 │
│ 社区活动 ¥5-15 高(情感连接) 低频 │
│ 口碑传播 ¥0(几乎0) 极高 最优 │
│ 加权平均 CAC ¥2-6 — 最低 │
└─────────────────────────────────────────────────┘
注:兴盛CAC最低,用户质量最高,LTV/CAC表现最优
淘菜菜:
┌─────────────────────────────────────────────────┐
│ 获客渠道 成本/人 用户质量 备注 │
│ ───────────────────────────────────── │
│ 88VIP会员导入 ¥5-10 极高(付费会员) 优势 │
│ 淘宝直播导流 ¥15-25 中等 流量大 │
│ 地推扫码 ¥20-30 中等 成本高 │
│ U先试拉新 ¥12-18 较高 试用转化 │
│ 加权平均 CAC ¥12-20 — 偏高 │
└─────────────────────────────────────────────────┘
注:依托阿里生态,但CAC偏高,规模效应不明显
行业健康标准参考:
CAC < ¥10:优秀(兴盛优选水平)
CAC ¥10-20:良好(美团优选水平)
CAC ¥20-30:一般(多多买菜/淘菜菜水平)
CAC > ¥30:危险(纯补贴拉新模式)
案例库
案例1:多多买菜"1分钱秒杀"裂变活动复盘
活动设计:
→ 每天 10:00 上线 100 份 1 分钱秒杀商品
→ 用户需邀请 2 位好友助力才能购买
→ 邀请链接分享到朋友圈/微信群
分渠道数据效果:
活动期间(2021年3月,日均):
日均新增用户:+15 万(峰值)
活动页面 UV:80 万
邀请转化率:35%(80万UV→28万完成助力)
每邀请 1 人成本:约 ¥0.8(平台补贴0.01元商品)
实际CAC:¥8-12/人(均摊运营成本)
用户质量分层(1分钱活动专项分析):
┌─────────────────────────────────────────────────┐
│ 用户类型 占比 30日复购率 60日复购率 │
│ ───────────────────────────────────── │
│ 真实消费者 35% 42% 28% │
│ 羊毛党 45% 8% 3% │
│ 沉默用户 20% 15% 8% │
│ 整体均值 100% 15% 8% │
└─────────────────────────────────────────────────┘
ROI 分析:
活动成本:¥15万 × 30天 = ¥450万/月(补贴+运营)
带来新用户:15万 × 30天 = 450万用户
实际CAC:¥450万 / 450万用户 = ¥1/人(表面)
真实CAC(含羊毛党剔除):¥450万 / (450万×35%) = ¥2.9/人
但留存价值:30日复购率仅15%,LTV < ¥5
结论:ROI 为负,长期亏损
教训:
→ 低价拉新用户质量极低(45%羊毛党),不是目标用户
→ 真实消费者 CAC = ¥2.9,但 LTV < ¥5,LTV/CAC < 2,不合算
→ 建议:取消纯补贴拉新,改用"拼团+内容"组合(真实用户占比提升至60%+)
案例2:兴盛优选社区活动留存打法
活动设计(湖南某社区):
→ 端午节:团长组织"包粽子大赛",社区免费参加
→ 参与用户现场下单可领粽子材料包
→ 赛后合影发朋友圈,额外领 5 元无门槛券
数据效果:
活动参与人数:50 人(社区 200 户家庭)
活动当天 GMV:3.2 万(日常 5000 元)
参与用户 30 日复购率:82%
参与用户 90 日留存率:71%
核心逻辑:
→ 用社区活动建立情感连接,不是纯利益交换
→ 用户记住了团长这个人,不只是记住"便宜"
→ 线下见过面,信任感翻倍
可复用经验:
→ 节日/节气活动 = 天然的社群活跃机会
→ 团长主办 + 平台补贴 = 最低成本的活动形式
→ 活动后的 UGC 晒单 = 最好的口碑传播
案例3:美团优选"早市经济"留存体系
策略设计:
→ 每天 07:00 推送"早市"专属优惠(限 2 小时)
→ 主打生鲜/蔬果/早餐食材
→ 文案强调"新鲜"、"今天吃"
→ 早市 GMV 单独统计,不计入日常 GMV 考核
数据效果:
早市用户月均购买频次:8-10 次(行业最高)
早市用户平均客单价:35 元(略高于均值)
早市专属用户 30 日留存率:65%
早市用户向全品类延伸率:40%
核心逻辑:
→ 习惯养成:每天同一时间推送,用户形成"早餐买菜"习惯
→ 场景绑定:早市 = 新鲜 = 兴盛优选
→ 频次优先:先养成频次,再提升客单价
可复用经验:
→ 固定时间 + 固定内容 = 最简单的习惯养成机制
→ 早起用户 = 高价值用户(有时间购物 = 家庭采购决策者)
案例4:某平台"广告投放ROI崩溃"的获客教训
背景:2022年某中型社区团购平台(月GMV约5000万)为快速扩张,大量投放信息流广告
问题:获客效率持续恶化,广告成为纯烧钱机器
数据暴露问题:
→ 月均广告投放:¥300万
→ 月均新增用户:3万
→ 实际 CAC:¥100/人(目标 ¥30/人,严重超标)
→ 新用户30日复购率:8%(目标 > 30%)
→ 计算:¥100 × 3万 × 30天 = 月亏损 ¥900万
根因分析(Step 1:用户来源拆分):
投放渠道效果对比:
┌────────────────────────────────────────────────────────────┐
│ 渠道 投放占比 CAC 30日复购率 ROI │
│ ───────────────────────────────────────────────────── │
│ 抖音信息流 50% ¥150 5% 0.2 │
│ 微信朋友圈 30% ¥80 10% 0.4 │
│ 百度搜索 15% ¥60 15% 0.6 │
│ 团长老带新 5% ¥15 35% 2.5 │
└────────────────────────────────────────────────────────────┘
发现:80%的预算花在ROI<0.5的渠道,只有5%预算在团长老带新(ROI最高的渠道)
根因分析(Step 2:用户质量验证):
→ 广告用户 vs 团长用户对比:
广告用户:首单¥12(多为凑单),7日复购率5%,30日复购率8%
团长用户:首单¥38,7日复购率30%,30日复购率35%
→ 广告用户几乎100%是"羊毛党",有补贴就下单,没补贴就消失
应急处置:
→ 第1周:立即暂停抖音/朋友圈广告投放(ROI<0.5的一律暂停)
→ 第2周:将80%预算转移到团长老带新(ROI 2.5)
→ 第3周:保留百度搜索(ROI 0.6但品牌价值),降低投放
→ 第4周:建立广告ROI红线,任何渠道CAC>¥50立即暂停
数据效果(调整后3个月):
月均CAC:¥100 → ¥35(下降65%)
新用户30日复购率:8% → 28%(提升20pp)
月均获客成本:¥300万 → ¥120万(下降60%)
但月GMV从¥5000万 → ¥4500万(牺牲了扩张速度)
核心教训:
→ 社区团购获客绝对不能依赖广告投放(用户太容易薅羊毛)
→ 团长老带新是ROI最高的获客方式,应占预算60%以上
→ 广告投放CAC红线:>¥50立即暂停,>¥80全面审查
→ 获客质量比获客数量重要10倍:10个真实用户 > 100个羊毛党
案例5:某平台"拉新裂变活动被薅羊毛导致巨额损失"
失败背景:2023年某平台中秋活动,推出"邀请好友得20元红包"裂变机制
事故经过:
① 活动设计:
→ 邀请1个新用户注册,得20元红包(无门槛提现)
→ 预算:活动期间发出红包上限100万元
→ 预期:5万新用户(CAC约20元)
② 风险识别失败:
→ 活动上线前,风控团队未做"羊毛党识别"测试
→ 技术团队未设置"一人多邀请"上限(允许无上限邀请)
→ 黑产发现漏洞:一人控制100+账号邀请,套取红包
③ 发现时损失:
→ 活动上线4小时,发出红包50万元
→ 核实发现:80%红包被约200个账号薅走(人均套取2000元)
→ 实际新用户仅8000人(大量虚假注册)
→ 当日紧急停止活动,最终损失:¥38万(仅2.8万真实用户)
损失分析:
→ 红包成本:¥50万(其中¥38万被薅走)
→ 实际有效获客:2.8万人,CAC实际约¥17元(看起来还行)
→ 但虚假用户:7.2万人,贡献GMV为0,平台额外承担¥12万补贴成本
→ 更严重后果:虚假团长入驻后,平台商誉受损,真实团长流失
整改措施:
① 邀请活动必须设置上限:每人最多邀请10个新用户
② 引入风控系统:识别设备指纹/IP异常/账号关联
③ 新用户必须完成首单才可提现红包(不能仅注册)
④ 活动预算分批释放:先放20%预算,观察数据再决定是否继续
⑤ 建立"薅羊毛监控大屏":实时监控异常邀请行为
核心教训:
→ 任何"邀请得红包"活动必须预设风控措施,不能上线后再补救
→ 羊毛党的组织化程度远超想象,要有专人负责风控
→ 活动预算不能一次性全放出,必须分批+实时监控
→ 虚假用户不仅是钱的问题,还会破坏平台生态(真实团长流失)
附录:获客与留存检查清单
月度获客与留存健康检查:
□ 1. 获客成本:本月 CAC 是否 < 50 元?(超过则预警)
□ 2. 拉新质量:本月新用户 30 日复购率是否 > 30%?
□ 3. 社群活跃:团长社群发言率是否 > 5%?(日均发言数/群成员数)
□ 4. 流失预警:轻度/中度沉默用户是否已推送召回?
□ 5. 复购激励:本周是否有限时复购活动?
□ 6. 内容运营:每天推送消息条数是否控制在 5-7 条?
□ 7. 用户分层:高价值用户是否有专人维护?
□ 8. 活动策划:本周是否安排了主题活动?
□ 9. 好评展示:是否每天固定晒出 2-3 条用户好评?
□ 10. 留存复盘:本月留存率环比是否提升?
红线预警(任一触发立即复盘):
→ CAC > 100 元
→ 月流失率 > 30%
→ 团长社群退群率 > 5%/月
→ 沉默用户占比 > 30%