方糖试玩 ASO 优化 编辑部
前两篇写完之后,问得最多的问题不是“活动怎么设计”,而是“钱到底该怎么花”。稿一拆的是从开发到落地的链路,稿二拆的是用哪六张报表看数据,这一篇只回答一件事:渠道怎么分层、素材怎么测、预算怎么切、放量怎么排节奏。
先把结论放前面:拉新亏钱,通常不是花多了,而是把不可控的渠道当可控渠道放量,以及在素材还没跑赢的时候加预算。 这两件事都不体现在当天的花费里,只体现在七天后结出来的 CAC 上。所以这篇的顺序不是“先花钱再看数”,而是“先过门、再分层、再测素材、最后才谈加量”。
01 放量之前,先过三道门
任何一个渠道在拿到放量预算之前,都要先过三道门。过不了的渠道不是不能投,而是只能进兜底池,不能进放量池。
第一道门是口径分层。有效新增按“设备未安装、首启注册、完成关键行为”三层分着记,和渠道结算对齐的是哪一层,谈成本就用哪一层。混着谈的结果是同一笔钱在两张表里算出两个 CAC,谁也说服不了谁。
第二道门是结算周期对齐。拉新普遍按 T+7 结算,今天的量要等七天才结得清,所以“当天 CAC 很好”这件事没有结论价值,只能作为过程观察。判断一个渠道能不能加量,看的是它连续几天结清后的口径,而不是昨天的报表。
第三道门是单渠道可单独追踪。渠道参数必须落到设备维度,跟着首启一起回传,才能在报表里把这条渠道抠出来。追不出来的渠道,花多少都说不清,也就谈不上优化。
| 门 | 判断标准 | 过不去的后果 | 补法 |
|---|---|---|---|
| 口径分层 | 三层口径分开记,结算口径与报表口径一致 | 两张表两个 CAC,预算会分给其实更贵的渠道 | 先统一结算层,再对齐报表字段 |
| 周期对齐 | 按 T+7 结清后的数据做放量判断 | 把前三天便宜、七天后变贵的渠道当成好渠道 | 设一个“待结算”状态,不进加量决策 |
| 可追踪 | 渠道参数随首启回传,能按渠道单独出报表 | 花出去的钱说不清来源,素材和人群都无法归因 | 补齐回传参数;补不齐的只进兜底池 |
02 渠道分四层,别用一套标准管
把所有渠道放在一张表里比 CAC,是最容易得出错误结论的做法。自有阵地的量便宜但天花板低,投放渠道能起量但成本随规模上升,两者的“好”根本不是一个含义。按可控程度分成四层,每层用各自的判断标准,才不会拿自家的社群去和联盟比单价。
自有阵地是社群、任务中心、老客邀请。成本最低、衰减最慢,但量有明确上限,作用是把基本盘托住,不能指望它冲量。判断标准只有一条:来的人是不是真实用户。
内容渠道是抖音、快手、小红书、B 站的自主内容与达人合作。素材可控、可复制、可复用,起量慢但单量质量通常更好。判断标准是素材是否可控——一条素材能不能被拆成钩子和权益两个变量重新组合,决定这个渠道能不能持续产出。
投放渠道是信息流、应用商店推广和联盟。起量快、可扩量,代价是成本随规模上升,一旦素材衰减就会立刻体现在 CAC 上。判断标准是能否单独追踪,追不出来的投放渠道等于在黑箱里加预算。
换量渠道是互相导量、资源置换。单价通常好看,但结算周期长、对账口径容易扯皮。判断标准是结算周期和对账方式,先谈清楚怎么算量,再谈换多少。
| 层级 | 典型来源 | 起量速度 | 规模上限 | 放量资格 |
|---|---|---|---|---|
| 自有阵地 | 社群、任务中心、老客邀请 | 慢 | 低,受存量用户限制 | 不需放量,按节奏运营 |
| 内容渠道 | 自主内容、达人合作 | 慢到中 | 中,受内容产能限制 | 素材跑赢后可加量 |
| 投放渠道 | 信息流、商店推广、联盟 | 快 | 高,成本随规模上升 | 过三道门后可放量 |
| 换量渠道 | 互导、资源置换 | 中 | 取决于合作方 | 只进兜底池 |
03 一条素材只测一件事
素材测试最常见的浪费,是一次改三个地方:换了画面、换了文案、还换了奖励。跑出来效果好,也不知道是哪一处起了作用,下一版只能凭感觉复刻。
正确的切法是两个变量叉开:钩子决定“为什么点”,权益决定“为什么来”。钩子分四类——利益直给、场景痛点、身份认同、结果承诺;权益分两级——首启奖和行为奖。四个钩子叉两个权益,就是八格,一格一条素材,一次只改一格。
命名要能进报表。素材名写成“日期_渠道_钩子_权益_版本”,例如 1112_douyin_liyi_shouqi_v2。 名字里带不进的字段,报表里就查不到,事后复盘只能靠记忆,八格测完等于白测。
素材有生命周期。一条素材在单一渠道通常三到五天走完起量期,点击率掉三成就是衰减信号。这里要分清两件事:衰减是换素材的信号,不是加预算的信号。 很多人看到量还在就跑,顺手把预算翻倍,结果是在一条已经开始变贵的素材上加速花钱。
测试期只看两个组合判断:点击率高但有效新增低,说明钩子和人群错配,人点进来了但不是你要的人;点击率低但 CAC 便宜,说明素材不吸引人,来的人却是真的。前者换人群,后者换钩子,动作完全不同。
| 素材ID | 钩子 | 权益 | 点击率 | 有效新增 | 结论 |
|---|---|---|---|---|---|
| 1112_douyin_liyi_shouqi_v1 | 利益直给 | 首启奖 | 记录实测值 | 记录实测值 | 留、换、停 |
| 1112_douyin_kadian_xingwei_v1 | 场景痛点 | 行为奖 | 记录实测值 | 记录实测值 | 留、换、停 |
| 1112_xhs_tongleiren_shouqi_v1 | 身份认同 | 首启奖 | 记录实测值 | 记录实测值 | 留、换、停 |
04 预算三段切,别一个池子花到底
预算最常见的错误切法,是每个月定一个总数,然后按渠道分。这样做的后果是测试永远排不上队——钱都在老渠道里,新渠道没有预算试,第二个月还是老渠道,第三个月老渠道衰减,就没有然后了。
三段切法解决的就是这件事:测试池占两成,只给新渠道和新素材,单渠道单日不超过总额的百分之五,最多同时跑四个;放量池占六成半,只给已经过了测试期、连续五天 CAC 低于上限且次日留存不低于基线的渠道;兜底池占一成半,留给结算周期长、无法单独追踪的换量渠道,以及月底冲量。
切之前先算能承接多少,别先定预算再倒推量。可承接预算等于目标有效新增乘 CAC 上限。 这个顺序反过来,就会变成“这个月有十万预算,得花完”,于是花完比花对更重要,最后半个月专门用来找地方花钱。
CAC_CAP = 12.0 # 单个有效新增的成本上限(元)
TARGET_NEW = 3000 # 本月目标有效新增(按完成关键行为口径)
budget_cap = CAC_CAP * TARGET_NEW
print(f"本月可承接预算上限:{budget_cap:,.0f} 元")
pools = {"测试池": 0.20, "放量池": 0.65, "兜底池": 0.15}
for name, ratio in pools.items():
print(f"{name}:{budget_cap * ratio:,.0f} 元")
切完之后还要有熔断。单渠道当日花费超过该渠道日预算的百分之一百二十,自动停投当天剩余时段;单渠道日 CAC 超过上限的一点五倍并连续两天,退出放量池,回到测试池重新跑素材。熔断写进系统,不要靠人盯——忙起来的时候,没人会记得停。
05 放量分三段,每天加量不超过三成
放量不是把预算调大,是换一个跑法。整个过程分三段:试跑、爬坡、稳态,每段的预算、加量幅度和必看指标都不一样。
试跑阶段的目标不是省钱,是拿到有判断力的样本。单条渠道有效新增不到两百,谈 CAC 其实没有意义,样本太小的波动会被当成趋势。爬坡阶段每天加量不超过百分之三十,加完观察次日留存和驳回率;一次翻倍等于换了一个投放环境,前后数据接不上,等于重新开始。稳态阶段预算锁在上限内,动作换成“换素材、换渠道”,而不是继续加钱。
| 阶段 | 日预算 | 单日加量 | 必看指标 | 退出条件 |
|---|---|---|---|---|
| 试跑 | 单渠道不超过总额百分之五 | 不加量,固定预算 | CAC、次日留存、驳回率 | 有效新增够两百且两项达标 |
| 爬坡 | 逐日阶梯上浮 | 不超过三成 | 加量后的留存与驳回率变化 | CAC 触线或留存掉两成 |
| 稳态 | 锁在上限内 | 不加量,换素材换渠道 | CAC 周均值、素材衰减速度 | 连续两周 CAC 上行 |
06 三条止损线,比看 ROI 更早
因为 T+7 结算,ROI 是滞后的。等 ROI 出来才决定停,通常已经多花了两周的钱。所以止损要用更靠前的三条线。
第一条是成本线。 日 CAC 超过上限,减量到一半观察;连续两天超过上限一点五倍,暂停该渠道,退回测试池。第二条是质量线。 次日留存低于基线的八成,或者驳回率超过百分之十五,即使 CAC 便宜也要停——便宜的量留不住,等于把成本推到后面几个月。第三条是异常线。 同一设备多账号、IP 段过度聚集、首启时长低于一分钟的占比突然升高、注册后立刻沉默,这四条里出现两条,先暂停再复核,不要一边解释一边继续花。
import pandas as pd
CAP = 12.0 # CAC 上限(元)
D1_BASE = 0.30 # 次日留存基线
df = pd.read_csv("channel_daily.csv")
df["CAC"] = df["spend"] / df["valid_new"].replace(0, pd.NA)
df["over"] = df["CAC"] > CAP * 1.5
df = df.sort_values(["channel", "date"])
df["over_streak"] = (
df.groupby("channel")["over"]
.transform(lambda s: s.rolling(2).sum())
)
halt = df[(df["over_streak"] >= 2) | (df["d1"] < D1_BASE * 0.8)]
print(halt[["channel", "date", "CAC", "d1"]].to_string(index=False))
07 每周只看两个问题
渠道投放的周会很容易开成数据朗读会,一页页念完,散会没人知道要做什么。把周会压缩成两个问题就够:钱往哪挪,素材换哪一版。
- 钱往哪挪:按渠道列出本周花费、有效新增、结清后的 CAC、次日留存、驳回率,每个渠道只给一个结论——加量、维持、减量、停投。四条结论之外的讨论都算跑题。
- 素材换哪一版:下周上几条新素材、替换哪几条衰减素材、每条只动哪个变量。八格矩阵里哪几格还没测,一目了然。
这两件事定完,投放同学知道明天该动哪个渠道,素材同学知道这周该出哪几条片子,剩下的事情交给系统里的熔断规则去执行。
回到最开始那个判断:拉新投放的胜负,不在加预算那一刻,而在预算加上去之前——渠道是否分层、素材是否单变量、预算是否分段、节奏是否有阶梯。这四件事做对了,加量只是把已经验证过的东西放大;做错了,加量只是把没验证过的东西放大。


