美团开屏量级优化


背景

当前美团开屏广告存在问题:

  1. CPM优先级较低:开屏流量优先级分配为 平台大促>CPT>运营活动>CPM,且前三者占比很大,难以轮到CPM展示
  2. CPM展示成功率较低:CPM广告实时性较高,所以即使已经预加载到用户手机中,在曝光前仍需要校验,确认是否可以展示,但该接口返回的成功率很低

开屏展示机制

  1. 用户在打开时,会将运营活动以及广告,预加载到用户手机中,不在这一次打开时展示
  2. 用户再次打开时,会根据优先级的顺序去展示缓存在本地的广告,其中CPM需要曝光前校验,确认是否仍有预算、仍在投放列表中等信息,校验通过则展示,否则不展示

产品侧优化方案

解决的问题 解决方案描述 需求承接方
CPM优先级低 调整优先级,30%下CPM>运营活动 玲珑
CPM实时校验成功率低 不做实时校验,缓存直接展示,超播流量不计费 广平
控制预加载比例 控制预加载比例 广平

广平侧方案

预加载控制策略

  1. 放弃实时请求流程,仅通过预加载加载广告
  2. 控制预加载量级,基本思路是通过控制单个广告的预加载量,来控制其实际曝光量
投放时长 时间点 方案
非持续投放 T-1无效 最大预加载量=系数k×有效投放天数 ×日最大曝光量
T-1有效 1. T-1预算消耗比C≥90%,停止预加载
2. 10%≤C≤90%,继续预加载,新增预加载量=已预加载量×(1-C)/C,(已预加载量=totalPreloadCnt-todayPreloadCnt)
3. C<10%,继续预加载,最大预加载量=系数k×有效投放天数 ×日最大曝光量
持续投放 T-1无效 最大预加载量=系数k×5天 ×日最大曝光量
T-1有效 1. T-1预算消耗比C≥90%,停止预加载
2.10%≤C≤90%,继续预加载,新增预加载量=已预加载量×(1-C)/C,(已预加载量=totalPreloadCnt-todayPreloadCnt)
3.C<10%,继续预加载,最大预加载量=系数k×5天 ×日最大曝光量

解释:

  • T-1预算消耗比C≥90%,停止预加载:说明T-1广告主投放金额消耗率很高,动态调整预加载,防止后面的超播
  • 为什么是已预加载量×(1-C)/C,这样如果C较小,那么继续加载量级会大,C较大,继续加载量级会小,很好

备注:

  • 预算消耗比:实际消耗的预算/广告主投入的金额

  • 有效投放天数=min(投放天数,预加载天数+1),之所以是预加载天数+1,是因为今天展示的其实是-n天加载的广告,今天仍有预加载过程

    • 投放天数:在今天到未来preloadday内,结合launchtime计算得,比如今天是5号,preloadday=5,launchtime=3-5,7-8,10-14,则投放天数为4(5,7,8,10)
  • 日最大曝光量=当日预算/出价

  • 持续投放是指投放时长未做限制的投放

  • 一个开屏广告的预加载过程:从投放成功到创建索引开始进行预加载,至实际预加载量>=最大预加载量或T-1有效为止

  • T-1是否有效的逻辑为:begintimestamp是否≤昨天凌晨,表示广告投放的开始时间是否早于昨天凌晨,以此判断昨天是否有预加载

过滤逻辑

详细改动点

  1. 业务层引入中间件记录预加载情况
  2. 检索层基于规则控制预加载量级

数据存储方式

  • 当日预加载数量:
    • key格式:投放id+当日距离1970-1-1的距离
    • value:计数
    • 过期时间:两天
  • 总预加载量:
    • key:投放id+0
    • value:计数
    • 过期时间:一年

上线观察

指标:

  1. 超播比例:如果过高,说明量级宽松
  2. 预算消耗比:如果较高说明量级合适
  3. 是否有实时请求的曝光:是否成功放弃了

  目录