投放广告时,运营经常会遇到这样的情况:同一条素材,在不同 App、广告位和时段,点击表现差别很大。用一个固定价格购买所有流量,容易在效果一般的地方花得太多,又错过更有价值的展示机会。
CTR 预估让 DSP 在每次出价前,多一个判断依据:这条广告如果展示出来,大概有多少概率被点击。 系统再结合广告目标、预算和价格限制,决定选哪条广告、是否参与竞价,以及愿意出多少钱。
理解它如何应用,不必先研究神经网络。沿着一次广告请求,看看数据怎么来、预测怎么用、结果怎么回流,就能掌握这套系统的工作方式。
一、从一次广告请求,看 CTR 预估的位置
当一个 App 准备展示广告时,会通过广告交易平台向 DSP 发送请求。请求通常会描述广告位、媒体、设备、地区等信息,但不同流量方提供的完整程度并不一样。
DSP 收到请求后,需要在对方规定的时限内完成判断。CTR 预估只是其中一步,前后还有广告筛选、预算检查和竞价决策。
一次广告机会 · 从请求到效果回流
- 收到广告请求
- 按定向、素材规格和预算筛选广告
- 整理媒体、广告位、素材与请求信息
- CTR 预估 · 给候选广告预测点击概率
- 结合目标、预算和限价进行排序与出价
- 赢得竞价后获得展示机会
- 实际展示及点击事件回流
- 更新统计、评估与训练数据
回流数据用于评估和更新模型,支持后续预测。
例如,一次请求来自某个游戏 App 的视频广告位。DSP 先排除不符合地区定向、素材规格或预算条件的广告,再为剩下的候选广告估计点击概率。如果候选很多,也可以先做粗筛,再对少量候选调用模型,控制耗时。
预估结果必须与具体候选广告对应。同一个广告位,换一条素材,点击概率也可能变化,因此不能简单给这次请求算一个分数,就不加区分地套用到所有广告上。
还要注意,赢得竞价只是获得展示机会。后续可能发生加载失败或用户离开,最终是否展示,要以实际展示事件为准。
二、工程系统怎样把数据变成预测
训练数据从已经发生的展示中来
系统需要把一次展示与后续点击关联起来。发生有效点击,记为点击样本;经过约定的观察时间、确认事件回流完整后仍没有点击,记为未点击样本。
没有参与竞价、没有赢得竞价,以及赢了但没有展示,都不能直接算作“展示后未点击”。重复上报的点击也需要去重。否则模型学到的就是错误的点击规律。
对运营来说,这里有一个很实用的判断:如果某个渠道的点击突然大幅下降,先确认回传是否延迟、统计口径是否变化、落地链路是否异常,再判断素材或模型是否失效。
在线预测用的是当时能拿到的信息
工程侧会把请求与广告信息整理成模型能识别的输入。它们在机器学习里叫“特征”,可以理解为判断一次机会时所参考的条件。
| 输入信息 | 常见例子 | 帮助判断什么 |
|---|---|---|
| 媒体与广告位 | App、广告位、视频或 Banner | 广告出现在哪里、怎样展示 |
| 广告与素材 | 推广产品、素材类别、素材 ID | 这次准备展示什么内容 |
| 请求环境 | 地区、设备、系统、时段 | 当前访问场景有什么特点 |
| 历史表现 | 过去一段时间的展示量与点击率 | 类似场景此前表现如何 |
这些信息必须在出价前可获得。本次广告展示后的观看时长、点击结果,不能反过来用于预测本次点击。历史统计也只能使用当时已经回流的数据。
训练和在线服务还必须对同一个字段有相同理解。例如,训练时某个广告位编号对应 A 广告位,线上也必须对应 A;时区、缺失值处理和设备解析规则同样需要一致。接口能返回数字,不代表输入一定正确。
