Skill: nic-yuan/03-acquisition-retention (version 1.0.0)

--- name: community-group-buying-acquisition-retention description: 社区团购获客与用户留存全链路技能包。涵盖获客渠道矩阵、社群运营SOP、用户分层体系、复购激励、各平台获客策略差异及配套工具。适用于平台运营者、团长管理者。不含选品（模块一）、团长运营（模块二）。 version: 1.0.0 created_at: 2026-04-14 license: MIT github_url: null --- # 模块三：获客与留存 > **模块边界说明** > 本模块聚焦"用户"的获取与留存，即流量从哪里来、怎么留住用户、怎么让用户反复购买。 > 选品策略 → 模块一 > 团长运营 → 模块二 > 各模块边界独立，不重叠。 --- ## 知识库 ### 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: 用户分层分析器 ```python #!/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: 社群活跃度分析器 ```python #!/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 计算器 ```python #!/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% ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)