主题
第20课 用 ad-launcher 启动广告,campaign-monitor 每日监控
开场:广告建好了,但有个错误差点让它白跑
HazumiCrafts 的广告计划做完了。campaign-plan 输出了 Pinterest 广告方案,ad-creative-brief 生成了素材清单,Sarah 准备了两张场景图和两条文案——一切就绪。
ad-launcher 生成了一份 Python 脚本,按计划建了一个 Pinterest 广告活动,状态是 PAUSED。Sarah 看了看脚本参数,点了"启用"。
但在启用之前,她检查了一遍自动填充的字段——发现了一个问题:年龄段设置的是 18-65 岁(平台默认值),而 campaign-plan 里写的目标人群是 25-38 岁女性。
一个默认值没改,意味着广告会对着大量不相关的人投放。改过来之后,同样的预算,CPM(每千次曝光成本)降了 $2.3,因为不再和所有年龄段的广告主竞争同一批流量。
自动化工具能帮你把流程跑完,但最后的那一眼检查,只有你能做。
ad-launcher 做什么
ad-launcher 读取 context.json 里的 bee.campaign 段,生成对应平台的广告建立脚本,建立 PAUSED 状态的广告活动——不直接启用,等你检查确认后再启用。
它处理的繁琐部分:
- 把广告系列结构(Campaign → Ad Set → Ad)建完整
- 按 campaign-plan 的
budget_allocation分配每个广告组的日预算 - 把 ad-creative-brief 的素材清单填入广告(图片规格检查、文案截断检查)
- 设置目标受众(年龄/性别/兴趣标签对应
bee.audience的人群画像) - 出价方式和竞价策略按平台最优实践预设(不是默认的自动竞价,会根据你的保本 ROAS 选择合适模式)
你建广告时要做的:读一遍生成的脚本,确认参数没有填错,然后在平台后台点启用。
学习期:广告头两周别乱动
广告启用后,平台算法有一个"学习期"(通常 7-14 天)。
这段时间 ROAS 会不稳定——高高低低,有时候一天 ROAS 3×,第二天 ROAS 0.5×。这不是广告坏了,是算法在测试:把你的广告给不同的人看,学习哪些人更容易点击和购买。
about emotions 第一次投广告时,看到第三天 ROAS 只有 0.5×,差点直接停掉。坚持到第 14 天,ROAS 稳定在 1.6-1.8× 之间,超过了保本线,开始盈利。
学习期原则:预算不变、素材不变、人群不变。任何调整都会让算法重新开始学习,学习期重置。只有一种情况可以提前停:连续 3 天 CTR 低于 0.3%(说明素材有根本性问题,早停损失更小)。
campaign-monitor:让数据替你盯广告
广告上线之后,每天登录平台看数据是件累人的事——数字多,看不出规律,不知道什么值得关注。
campaign-monitor 解决这个问题:每天拉取广告数据,对照 campaign-plan 设定的阈值,给出判断。
它的四种输出:
- Hold:数据在正常范围,继续跑,不需要操作
- Scale:ROAS 超过目标值且稳定超过 5 天,建议加 20-30% 预算
- Swap:某个素材 CTR 持续低于阈值,建议换素材,其他参数不动
- Kill:ROAS 持续低于保本线超过 3 天(学习期结束后),建议停掉这个广告组
Campaign-monitor 只建议,不执行。 你看到"Kill"的建议,仍然需要自己去平台后台关掉广告组。它不会自动调预算或关广告——因为有时候你掌握算法不知道的信息(比如今天有个大促,ROAS 会回来)。
WILOOP 用 campaign-monitor 发现了一个反直觉信号:有个广告组 ROAS 低,但 campaign-monitor 标的是 Hold 而不是 Kill——因为阈值设置里给了学习期 14 天保护,正好在第 12 天。Sarah 看了看发现那个广告组确实刚进学习末期,等了两天,ROAS 从 0.9 回升到 1.8×,没有白白停掉一个正在爬坡的广告。
学习期结束后的第一次复盘
广告跑满两周,做第一次数据复盘:
看素材层:两个素材方向哪个 CTR 更高?高出 50% 以上的,把另一个停掉,把预算集中到好的。
看人群层:不同年龄段/性别/兴趣的 ROAS 差异?有没有某个细分明显更好?把人群缩窄到高 ROAS 的那部分。
看时间层:周几和几点表现更好?HazumiCrafts 发现 Pinterest 广告在周五下午 3-6 点 CTR 最高(工作快结束时购物心态),调整了分时段出价(提高这个时段的竞价系数)。
这三步复盘,通常能让相同预算的 ROAS 再提高 20-40%。
全链走通之后
campaign-monitor 闭环了整个 Bee 模块:
audience-finder→ 知道卖给谁campaign-plan→ 知道投多少、怎么分配ad-creative-brief→ 知道用哪些素材ad-launcher→ 建出 PAUSED 广告,检查后启用campaign-monitor→ 每天拉数据,给出操作建议
这条链走通之后,你的广告不再是"投出去等结果",而是有数据驱动的迭代节奏。about emotions 用这套系统从冷启跑到稳定盈利,花了 6 周。HazumiCrafts 因为有了更多前置数据(competitor-spy 的竞品分析 + Etsy 历史评价),第一次广告就跑出了 2.1× ROAS,超过保本线。
本课作业
两件事,按顺序做:
第一件:用 ad-launcher 生成你的第一个广告活动脚本,检查以下三项再启用:
- 目标年龄/性别是否和
audience-finder的人群画像匹配 - 素材是否正确加载(图片规格 + 文案字数)
- 预算分配是否和
campaign-plan的budget_allocation一致
第二件:学习期(7-14天)结束后,跑一次 campaign-monitor,看输出建议,决定做什么调整。
不要在学习期提前做决定——数据还没稳定,任何操作都是猜测。