程序化广告行业(46/89):竞价结算规则、底价策略与内部排名解析
大家好!在之前的几篇博客中,我们已经深入探讨了程序化广告的多个重要方面,从基础概念到实际操作流程。我写这些博客的目的,就是希望能和大家一起学习进步,把程序化广告这个复杂的领域研究透彻。今天,咱们继续深入了解程序化广告中竞价相关的知识,包括AdX/SSP的结算规则、底价规则,以及DSP内部的竞价排名规则。
一、AdX/SSP结算规则:GSP与GFP的差异及应用
在程序化广告的竞价过程中,AdX/SSP的结算规则是影响各方利益的关键因素。目前主要有广义第二价格(GSP)和广义第一价格(GFP)两种模式。
- GSP模式的优势与原理:GSP模式下,出价最高的DSP赢得竞价,但以比第二高出价多0.01元的价格进行结算。这种模式符合买家追求“最合适的价格”的心理。因为出价并不代表最终结算价,买家在竞价时会更积极地报出心理价位,不用担心出价过高导致成本大幅增加。从长期来看,它有助于建立一个稳定且活跃的流量市场,保障AdX/SSP的收益。比如,在一场竞价中,DSP A出价3元,DSP B出价2元,DSP C出价1.9元,那么DSP A赢得展示机会,并以2.01元结算。
- GFP模式的问题与影响:GFP模式是出价最高的买家赢得竞价,并以First Price结算。表面上看,这种模式能让媒体获得更高的价格,但实际上却存在弊端。买家为了降低成本,会不断试探出价,导致市场价格波动很大,媒体费用也不稳定。同时,这种模式下竞价性能成本高,媒体收益反而没有保障。
- 实际应用中的多样性:虽然IAB的标准是“价高者得,次高价多一分结算”,但在实际中,AdX/SSP并不完全遵循这一标准。不同的AdX/SSP可能会采用比次高价多一定比例结算,或者是GSP和GFP的结合方式。这就要求广告从业者在实际操作中,需要根据不同平台的规则,灵活调整竞价策略。
二、AdX/SSP底价规则:多种策略影响竞价门槛
AdX/SSP的底价规则直接影响着DSP的出价决策和广告投放成本。目前主要有以下几种底价规则。
- 固定底价:这是行业内常见的方式,为广告位设置一个固定的底价,只有DSP出价高于这个底价时,才有资格参与竞拍。这种方式简单直接,让DSP明确知道出价的最低门槛。
- 双重底价:部分AdX/SSP采用双重底价标准。比如不设广告位底价(统一为0),同时设定一个隐性底价(仅用于区分结算模式,假设为2元)。当DSP出价大于0而低于2时,采用GFP模式以最高价结算;当出价大于2时,采用GSP模式以次高价结算。例如,若该广告位只有DSP A出价为1元,那么DSP A赢得展示并以1元结算;若DSP A出价1元,DSP B出价0.8元,同样是DSP A赢得展示并以1元结算;若DSP A出价3元,DSP B出价1.5元,则DSP A获得展示并以1.51元结算。
- 静态多重底价:根据流量的不同属性、广告主的不同行业设置不同底价。一线城市的流量更有价值,所以底价比二三线城市高;汽车行业的广告需求相对较高,其广告底价比游戏行业高;周末及节假日的流量需求大,底价也比平时高。这种方式能够根据市场情况和行业特点,更精准地设置底价。
- 动态多重底价:部分AdX/SSP会根据广告质量动态地设置不同底价。点击率高的广告,说明其内容更受用户欢迎,可能获得更低的底价,从而鼓励广告主增加投放量,提高广告的曝光率和效果。
三、DSP内部竞价排名规则:eCPM的计算与应用
在DSP内部,当多个广告主的广告活动同时竞争同一个流量时,需要进行内部竞价排名。这主要通过预估eCPM(有效千次展示费用)来实现。
- eCPM预估公式:RTB竞价一般按CPM出价,部分DSP支持按CPC(oCPC)或CPA(oCPA)出价,通过算法将其转换为CPM出价。oCPC出价预估公式为eCPM = 1000 × pCTR × CPC,oCPA出价预估公式为eCPM = 1000 × pCTR × pCVR × CPA。其中,pCTR是预测点击率,pCVR是预测转化率。例如,某广告主预期CPC价格为2元,通过算法预测pCTR为0.05,那么其eCPM = 1000 × 0.05 × 2 = 100元。
- 点击率和转化率预估模型:pCTR和pCVR数值通过离线模型和实时模型共同得出。离线模型一般按天更新,使用一定时期(如60天)内的日志数据进行特征分析,包括用户特征、广告位特征、创意特征、广告主特征等。在广告初次投放时,主要依靠离线模型的历史数据进行预估。实时模型则准实时更新,比如每10分钟(不同平台更新时间不同),将实时效果数据加入特征分析,使预估更加准确。
四、代码示例:计算eCPM值
下面用Python代码来模拟计算oCPC和oCPA模式下的eCPM值。
# 模拟oCPC模式计算eCPM
def calculate_ecpm_oCPC(cpc, pctr):
return 1000 * pctr * cpc
# 模拟oCPA模式计算eCPM
def calculate_ecpm_oCPA(cpa, pctr, pcvr):
return 1000 * pctr * pcvr * cpa
# 假设数据
cpc_value = 1.5
pctr_value = 0.03
cpa_value = 50
pcvr_value = 0.02
# 计算oCPC模式下的eCPM
ecpm_oCPC = calculate_ecpm_oCPC(cpc_value, pctr_value)
print(f"oCPC模式下的eCPM值为: {ecpm_oCPC}")
# 计算oCPA模式下的eCPM
ecpm_oCPA = calculate_ecpm_oCPA(cpa_value, pctr_value, pcvr_value)
print(f"oCPA模式下的eCPM值为: {ecpm_oCPA}")
通过这个代码示例,大家可以更直观地理解eCPM值的计算过程。
写作这篇博客花费了我不少时间和精力,每一个知识点都经过了仔细的梳理和思考。希望这篇文章能帮助大家更好地理解程序化广告的竞价规则和内部运作机制。如果您觉得这篇博客对您有帮助,请点赞、评论支持一下,也请关注我的博客,后续我还会分享更多关于程序化广告的精彩内容,咱们一起在这个领域不断探索、共同进步!