合约广告实战解析:从定价逻辑到流量预测与履约

发布时间:2026/10/17 13:12:31
合约广告实战解析:从定价逻辑到流量预测与履约
前两天有个做品牌投放的朋友问我现在满世界都在讲RTB、讲实时竞价还有必要花力气研究合约广告吗我的回答是太有必要了。且不说市面上大量品牌投放至今仍然以合约方式在走即便从理解计算广告整体架构的角度合约广告也是绕不开的一环——它是整个程序化广告逻辑的起点也是“确定性投放”这套商业规则的奠基者。这一章我准备把合约广告从头捋一遍包括它的商业模式、定价逻辑、流量预测、在线分配、合同履约以及我在实际项目中踩过的一系列坑。适合刚接触计算广告的同学也适合做了几年竞价投放、想补齐体系化知识的从业者。我不会去堆一堆教科书定义而是尽量用实际做过的项目和真实场景来讲这些内容你在任何公开文档里都不一定能看全。1. 合约广告的底层商业逻辑1.1 先看这是一门什么生意合约广告英文叫 Guaranteed Delivery直译过来是“保量投放”。一句话说清楚它的核心逻辑广告主和媒体方签一份合同约定在某个时间段内、某个广告位上、面向某类人群至少展示多少次广告广告主按合同金额付费。媒体方的核心义务就是“保证量”——不管流量够不够、系统稳不稳定、中间出了什么幺蛾子都得想办法把这个量交付出去。这个模式看起来简单背后的商业逻辑却值得细嚼。常规理解里广告是一个概率性生意你投放广告根本不知道哪个用户会看到、会不会产生效果。但合约广告把这种概率性压缩成了一定程度的确定性广告主买到的是确定的展示次数媒体方卖出的是一种可控的库存承诺。双方用一个书面合同把广告这种“虚拟商品”变成了可预期、可结算的标的物。理解这门生意要把握三个关键角色广告主需求侧要品牌曝光要保量触达目标人群要的是稳定预期。媒体方供给侧手上有流量库存希望通过合约承诺卖出更好的价钱同时平滑收入波动。广告系统平台侧负责预测、分配、投放、监测本质上它就是一个“履约系统”。三者的诉求不完全一致但合约广告这种模式恰好能把它们统一到同一个合同框架里去。广告主获得了确定性媒体方获得了稳定收益平台则通过履约获得相应的服务价值或者差价。这也是为什么合约广告在互联网广告发展了十几二十年后依然没有退出主流舞台。1.2 衡量合约广告的三个核心指标在项目里做合约广告我一般盯着三个核心指标看它们基本决定了一个系统做得好不好。第一个是展示量Impressions这是合约的基础单位也是最硬性的约束。合同上写3000万次展示系统就必须完成少了就是违约赔钱、补量都得认。第二个是千次展示成本CPM。这是定价和结算的核心单位。合同金额 展示量千次× CPM单价。实际操作中CPM定价的合理性直接决定了媒体方能不能赚到钱广告主愿不愿意续签。第三个是目标人群覆盖指标。除了数量还要看质量。合约广告通常会定定向条件比如一线城市、20到35岁、数码兴趣人群。系统不仅要保证展示次数够还要保证这些展示确实发生在了约定的人群身上。定向越窄系统完成履约的难度越大对流量预测的精度要求也越高。这三个指标相互牵连。只保量容易——算法上随便乱投也能凑够数但量又保、定向又准、频次还合理难度就指数级上升。大多数合约广告技术上翻车翻的都是后两点。1.3 为什么竞价广告没能完全取代合约广告很多人问都已经实时竞价了为什么还要合约广告答案其实很务实。第一品牌广告主的诉求就是确定性。品牌广告需要稳定、可预测的曝光不能完全靠竞价去碰运气。对市场负责人来说花两百万做一场品牌活动预算就是要买到确定量的曝光不能说“系统尽力了、曝光没跑完”。合约广告提供的恰恰是这种可承诺、可追责的确定性。第二媒体方的优势资源天然适合合约方式。开屏、首页焦点图、热门综艺的贴片位这些供给有限、需求旺盛的位置按市场行情溢价签合同比每次请求都跑一遍竞价更稳定高效也不容易出现流拍、价格倒挂。第三效果广告和品牌广告的度量体系完全不同。效果广告看点击、看转化、看ROI品牌广告看覆盖、看频次、看心智渗透。合约广告的度量方式正好匹配品牌广告的这套逻辑它以展示为交付单位以人群覆盖为质量指标。所以竞价广告不是取代了合约广告而是和它共存在同一个生态里合约广告负责提供确定性竞价广告负责盘活剩余流量与长尾需求。两者拼在一起才构成了完整的广告市场。2. 定价模式与合同设计从CPT到CPM2.1 CPT包时段粗放但依然好使CPTCost Per Time按时间付费是最早出现的合约模式。逻辑非常简单把某个广告位在一个时间段内包下来。比如首页顶部横幅包一周、开屏广告包一天、一场直播的贴片包整场。CPT模式的优势是把库存整块打包卖给了广告主媒体方不用太操心填充率广告主也能获得独占性、排他性的曝光机会。但劣势同样明显定价粗放不区分流量质量广告主几乎没办法做精细化的效果衡量。所以CPT现在主要用在超高价值、具有稀缺性的广告位上——比如开屏、首页首屏这一类天然就是“大曝光”的位置。现在很多媒体平台上的CPT已经相当自动化了广告主在后台选好素材、时段、位置系统自动排期下单即生效。但本质上它依然是“包时段”的逻辑卖的是时间段而不是精确的展示次数。2.2 CPM按展示量结算的正确理解CPM是合约广告里更主流的结算方式。它的单位是“千次展示”广告代码在用户页面加载一次就算一次展示。但这里有个非常容易踩的坑展示量的统计口径。媒体自己的统计、第三方监测平台、广告主SDK的回传数据三种口径之间在同一场景下可能相差5%到10%。网络丢包、SDK初始化失败、广告位遮挡判定差异都会变成对账时的扯皮点。合同里如果不写清楚“以谁的口径为准”后面结算必出纠纷。我见过最极端的案例媒体后台显示完成率100%第三方监测只认了88%双方在会议室对了一个星期账才勉强达成一致。合约广告的CPM单价通常由几个因素决定广告位价值等级开屏 信息流 视频贴片 Banner定向精度定向越窄单价越高但系统能完成的总量越小投放时段旺季、大促期间价格坚挺淡季会有议价空间合同总量量越大单价的谈判空间越大这里有一个定价上的对冲逻辑值得注意广告主追求低CPM媒体方追求高收入但系统能不能履约才是底层的约束。如果媒体方为了签单把CPM压得很低合约量又定得很高结果流量不足导致赔偿不仅不赚钱还赔了库存。所以成熟的报价逻辑是“先让系统跑一版预测看看这个定向条件下能完成多少量再反向推一个能履约的合约”。2.3 合同设计里的实操细节系统能读懂的合同才是好合同做合约广告合同不只是法务的事更是系统研发和运营的输入条件。我见过一些团队把合同只当结算依据系统完全读不懂最后全部靠人工补量痛苦不堪。一份可以直接进入系统的合约至少需要包含以下字段合约ID、广告主ID、投放周期开始时间、结束时间广告位信息精确位置或者位置池定向条件人群标签、地域、设备、网络环境等目标展示量频次上限单个用户最多看几次结算方式和单价优先级别多个合约竞争同一库存时谁先谁后监控日报口径、异常处理流程这些字段直接决定了系统的流量分配策略。尤其是优先级它决定了系统在流量不足时的取舍顺序。如果合同里没有写明优先级流量紧张时系统就会“眉毛胡子一把抓”最后好几个合约同时接近违约运营人员只能通宵抢量。3. 流量预测合约广告的第一道坎3.1 预测不准的代价超额售卖与库存浪费合约广告本质上是“先卖后生产”的生意流量还没产生合约就已经卖出去了。这意味着媒体方必须在投放开始前对未来的流量库存做预判——总共会有多少可售流量其中符合这个合约定向条件的有多少预测不准的后果是两个方向的灾难低估流量合约量定少了、可售库存大量空置出现白白浪费的展示机会收入直接受损。高估流量卖出去的合约量超过实际库存后期根本无法履约要么赔付违约金要么临时去外部渠道高价补量。我在实际项目中见过一个很典型的案例。某位媒体运营在大型促销活动前用历史均值预测流量结果活动期间流量是平时的三倍。系统里的合约很快就全部完成了但仍有大量优质库存没有安排任何投放眼睁睁看着广告位空转。另一边广告主得知活动流量这么大抱怨合约量给得太少想追加已经来不及安排排期。问题的核心不在流量暴涨——这在促销场景里本来就可以预见——而在于预测流程没有把“活动排期”这个信息纳进来。3.2 三层预测方法从经验到机器学习流量预测的方法可以理解成三个层级从“验证过最稳”到“上限最高”递进。第一层是经验估计。直接拿去年同期数据乘以一个增长系数。这套方法在业务平稳期完全够用但一遇到节假日、大促、突发热点就彻底失灵。第二层是时间序列模型最常用的有指数平滑Holt-Winters和ARIMA。这类模型天生会捕捉周期性小时的峰谷、周末效应、季节性趋势。做常规流量预测Holt-Winters的实际表现往往比复杂模型更稳定。互联网流量本身自带强周期性模型简单一点反而不容易过拟合调参成本也低。第三层是机器学习模型比如GBDTLightGBM、XGBoost或者轻量级神经网络。这类模型的优势是能把非结构化因素作为特征加进去天气、热点事件、竞品投放动作、版本发布时间、平台活动排期、异常流量清洗规则的变化统统可以进特征。它的上限更高但代价是需要稳定的特征工程和数据管道团队没有积累就用不好。我通常的做法是组合使用先用时间序列模型预测一个基线再用机器学习做增量修正。比如某天触达流量的基线预测是1000万次展示模型再根据当天是节假日前一天、有一个媒体热点事件等信息把预测调到1050万或960万。这样既保证常规场景的稳定性又兼顾异常场景的灵敏度。3.3 流量预测落地时的两条经验预测这块我提两个踩出来的经验。第一条是关于分粒度。流量预测不能只看日级别的总量合约广告是按小时消耗库存的。如果某个合约要求全天均匀覆盖但预测模型只给了一个日总量系统在流量预测偏高的时段容易过度消耗到了晚上突然发现库存不够只能猛拉量结果把原本为高价值时段预留的库存提前吃掉后面时段直接哑火。我的实践是把全天拆成24个小时粒度分别预测、分别控制投放节奏让合约消耗尽量平滑地分布在全天。第二条是关于校准。任何预测模型都会有偏差所以投放过程中必须持续校准。我常用的做法是每小时做一次实际流量与预测流量的对比一旦偏差超过15%就触发后续时段的预测修正。修正方法可以用贝叶斯更新也可以直接做比例缩放。关键是“预测—监测—修正”的闭环必须跑起来而不是等到投放结束之后看报告那时一切都晚了。4. 在线分配与履约保证系统的心脏4.1 分配问题的数学本质合约广告在线分配要做的事一句话总结每次广告请求到达时系统决定把它分配给哪个合约。这里的决策约束非常复杂请求是否符合合约A、B、C的定向条件合约A距离完成任务还差多少量如果这次曝光分配出去会不会导致A提前超额完成而后面根本没有匹配流量多个合约之间的优先级怎么平衡如果完全用数学语言描述这是一个多背包问题或者最大流问题的变体。目标是满足约束的同时最大化所有合约的加权履约率或者最大化可分配流量的整体价值。但难点在于流量动态到达系统必须在线决策不能等所有请求都收集完再统一优化。4.2 三种分配算法的演进逻辑贪心算法最直接来一个请求分配给还缺量且优先级最高的合约。实现简单但问题也明显——如果早期流量结构偏向高优先级合约的目标人群那些合约可能很快就超额完成而定向条件严格的长尾合约到了投放后期再也找不到匹配流量直接违约。**HWM算法High Water Mark水印算法**是我在实际系统里用得最多的方法。核心思路是用历史预估数据算出每个合约在不挤压其他合约的前提下最高能分配到的量把这个量作为“水印线”。每次请求到达时优先分配给水印值高的合约当一个合约达到水印线就不再给它分配流量。HWM的关键价值在于提前划定了每个合约的流量天花板避免某一个优质合约把所有高质量库存全部吃光。举个具体场景。合约A定向“一线城市、20到35岁、汽车兴趣”合约B定向“数码兴趣”两者都会命中一部分重叠人群。如果按贪心算法一路喂合约AA可能提前超额完成但B到后期就再也找不到足够的数码人群了。HWM通过提前估算出A在不挤压B的前提下最多能吃多少量把这个上限锁死再用剩余流量去满足B整体履约率反而更高。**鲁棒分配Robust Allocation**是在HWM基础上进一步考虑预测偏差。做法是预留10%到20%的“安全库存”不参与正式分配专门用来应对极端情况。比如预测总量1000万HWM只分配900万剩余100万作为缓冲。只有当某个合约实在找不到量、且风险预警触发时才启用缓冲库存。平时这笔缓冲不会动但它极大提高了整个系统的抗风险能力。4.3 违约控制保量不是一句口号“保量”必须落到机制上我把它拆成三步。第一步是余额监控。每天跟踪每个合约的完成进度计算“剩余天数”和“待完成量”的比值判断按当前消耗速度能不能准时完成。一旦预测到可能无法按时完成立刻触发预警。预警阈值我会设置得保守一些比如完成率低于计划8%以上就开始人工介入而不是等到最后三天才手忙脚乱。第二步是保量优先切换。当某个合约风险升高系统要动态调整流量倾斜方向降低超额完成合约的投放速度把流量匀给低完成率合约或者在合同允许的范围内适当放宽定向条件扩大可投流量池。第三步是合同赔付机制。在合同中明确未完成部分的赔偿方式比如按未投放量价值的120%到150%进行补偿。这不只是法务条款更是给技术和运营一个清晰的目标函数尽量少产生赔付。有了这个约束系统从算法调参到值班安排都会把履约优先级放到最高。5. 从合约广告到程序化现在的形态5.1 PDB模式程序化直接购买程序化直接交易PDBProgrammatic Direct Buying可以理解为“合约广告的程序化升级版”。它保留了合约的保量逻辑但把这套逻辑放进了实时交易技术体系里。具体怎么跑广告主和媒体方约定固定CPM价格、锁定一定量级的展示机会但投放请求是通过程序化接口实时发出的。相比传统人工下单和排期PDB把定向策略、频次控制、素材轮播全部自动化广告主可以在一个后台统一管理多家媒体的合约资源。但PDB不是向RTB看齐它依然保留了“优先购买权”概念媒体的流量会优先满足PDB合约剩余库存才进入公开实时竞价市场。所以PDB恰好站在一个中间位置它继承了合约广告的稳定和保量同时引入了程序化的效率和实时性。5.2 合约广告在品牌投放里不可替代的价值我做了这些年广告系统有一个很深的体会品牌广告主对确定性的需求比大家想象的要强得多。举个例子。某汽车品牌做新车型发布要求预热视频在7天内覆盖某城市全部汽车兴趣人群的80%且平均每人看到3次。这种需求用纯RTB很难做规划也很难给到承诺。但合约广告可以非常清晰地定义这个目标把它拆成合约项再分配库存逐条执行。投放完成之后品牌方拿到的不是“大概投了”的报告而是一份可审计的履约账单。另一个角度是商业结构的稳定性。竞价市场一旦出现剧烈波动媒体收入会跟着大幅震荡合约部分相当于给媒体提供了一层“压舱石”保证基本的收入底盘。竞价负责冲高合约负责保底两者协同才是一个健康可持续的商业结构。6. 实操避坑与常见问题排查6.1 七个我踩过的坑第一个坑预测模型只看均值不看分布。流量分布常常是“平时平稳、高峰期暴增”的尖峰形态只看均值会在高峰期严重低估库存在低谷期高估库存。正确的做法是分位数预测用95分位数评估理想分配用5分位数评估风险底线。第二个坑没有预留缓冲。合约量想压到100%库存利用率但凡遇到一点波动就会顾此失彼。一般合约定量控制在可售库存的90%以内剩下10%留给安全和运营操作空间。第三个坑只看总量不管时段结构。有些合约只需要覆盖“9点到22点”但预测却参考全天总量结果白天不够量晚上又大量浪费。合约排期必须和时段目标对齐。第四个坑频控设成全局参数合约之间互相干扰。某个高频合约把用户曝光次数耗光了其他合约的人群覆盖立即缩水。建议每个合约独立设置频控同时对全局频控单独设置上限。第五个坑忽视第三方监测口径差异。系统显示完成100%第三方只给到92%对账时纠缠不清。合同里要写清楚监测口径系统里也要设置安全阈值一般完成率做到103%到105%比较稳妥。第六个坑计划与执行脱节。投放计划定了执行过程里素材、定向、排期一变再变系统记录和实际投放完全对不上。合约一旦确定变更必须流程化、留痕不能让运营在后台随意改。第七个坑异常流量清洗规则和合约履约没有联动。检测到异常流量后合约完成率会被“打折扣”但合同里并不会把这些量算作有效展示。所以洗量规则一定要提前和预测模块、分配模块做口径对齐否则履约数据两边各说各话。问题现象主要成因排查方向合约到期但量没跑完流量预测偏高或分配不均检查分时段预测、HWM水印线设置多个合约互相挤兑优先级未定义或HWM未启用梳理合同优先级检查分配日志完成率数据两边对不上监测口径不一致核对三方口径在合同中约定标准定向人群覆盖严重不足定向过窄、频控互相干扰检查定向条件独立设置合约频控高峰期流量先耗完预算分配未按小时控制拆细粒度分配设置小时预算线6.2 合约广告项目复盘的方法论投完之后怎么评估一个合约广告项目成不成功我一般看五个维度投放完成率是否足量、按时完成合约人群精准度实际触达人群中符合定向条件的占比频次分布曝光是否过度集中在少数用户身上报表稳定性投放数据是否连续、无异常突刺成本效率实际执行CPM和合同CPM之间的偏差复盘的核心不是追责而是给下一轮做输入。我会把这五个维度的数据整理成一张表拉上投放的运营同事把每条数据的波动都对齐到具体的业务事件上。比如完成率低是因为活动流量激增导致库存结构变化还是素材在某个时段被审核卡住还是第三方监测的丢单率异常只有把原因定位到具体环节下一轮的流量预测模型参数、分配算法权重、排期策略才有了真实的修正依据。合约广告这个领域和竞价广告很不一样。竞价广告可以不断试、不断调、靠算法自动探索合约广告更像一场精密的时间赛跑——你要在正确的时间把正确的量送到正确的人面前中间还有合同、监测、赔付这些硬约束压着容错空间非常小。我在实际操作中最深的体会就是三个字留余量。预测留余量、分配留余量、运营节奏上也留余量几乎能解决掉一半的履约问题。如果你正准备做合约广告或者接手一个合约系统我建议你从这三个字开始落地先把基础盘做稳再谈复杂的算法和模型。