来源: 申探社:深入互联网广告中的出价模式(补充篇)

之前出价模式 深入互联网广告中的出价模式 (上中下完整版) 的文章得到了几千次的转发,也得到很多朋友的私信评论和反馈,非常荣幸。有些朋友也提出了一些想进一步了解的内容,另外在和读者群一些朋友的探讨中,笔者对部分内容也有了一些新的认知。因此再攒出了这一篇狗尾续貂的“补充篇”和大家进行探讨。(距离上一篇文章已经8个月,本来早就该写,只是工作太忙,基本都在晚上23点之后才有时间写,这篇拖拖拉拉地也写了1个多月。还好有文末发招聘广告的动力支撑着笔者写下去。请催更的朋友见谅啦)

本文中的探讨都基于出价模式三篇文章内容的基础之上,如果没有看过前三篇的朋友,建议先阅读一下 深入互联网广告中的出价模式 (上中下完整版)

本文将会主要探讨以下几个问题:

  1. 保率双出价与不保率双出价有什么区别?分别适用于什么情况?以及和带加强点的单出价有什么区别?
  2. 什么是一价计费,广义二价(GSP)计费?为什么大多数广告平台要用GSP计费?
  3. oCPX的"一键起量"是个什么产品?为什么需要有这个产品?
  4. 智能出价产品是否可以用一价计费?
  5. 用RTA做动态过滤是怎么一回事?
  6. 广告产品如何支持广告主更好地进行表达?

问题1:保率双出价与不保率双出价有什么区别?分别适用于什么情况?以及和带加强点的单出价有什么区别?

首先我们来看一下什么叫做保率双出价。双出价大家可能都比较熟悉,但是对保率和不保率的差异可能不是所有朋友都了解。下面我们以“激活付费双出价”来举例,在这个产品里,广告主需要设置激活出价和付费出价两个出价。

  • 不保率双出价:系统目标是激活成本不超过激活出价(或不超出出价的某个比例,例如20%,下面讨论简化为不超过激活出价),并且付费成本不超过付费出价。
  • 保率双出价:系统目标是激活成本不超过激活出价,并且付费成本不超过付费出价,并且激活到付费的率(即付费数/激活数,也就是激活成本/付费成本),不低于激活出价/付费出价。

假设客户的激活出价是100元,付费出价是1000元,最终激活成本是40元,付费成本是800元。那么对于不保率双出价而言,是达成目标的(因为40<100, 800<1000)。但是对于保率双出价而言,多了一个要求,就是从激活到付费的率(=40/800=0.05)不小于激活出价/付费出价的(=100/1000=0.1),在这个case里是没有达到的。也就是说保率双出价是更严格的一个目标,除了成本达标,率也要达标。

为什么要求率也要达标呢,如果我们的更加深度的目标(本例为付费成本)都已经达到了,为什么还需要关心激活到付费的率呢?原因在于付费成本也不是广告主要的最终目标,付费只是出价点,真正的考核点可能在付费金额上。而在大多数时候,激活到付费的率,是正相关于付费到付费金额的率(也就是付费金额/付费数,或者叫ARRPU。为了和前面的链路说法保持一致,我们把付费金额/付费数,也叫做付费到付费金额的率(虽然这个率可能大于1),也记做p(付费->付费金额)。把付费金额简称为v,如下图所示)。在保证付费成本一定的情况下,激活到付费的率越高,通常ARRPU越高,最后的ROI越高。比如同一个游戏两个推广计划,都买了100个付费用户,平均付费成本都是1000元。A计划的100个付费用户是从1000个激活用户转化来的,B计划是从300个激活用户转化来的,B计划的激活到付费率明显更高。大概率可以推断B计划带来的用户更加精准,这些用户最终付费的金额也会更高。

同样的,其他双出价也是类似,例如保率激活次留双出价,如果保激活到次留的率在一个比较高的水平,在相同次留成本情况下,7留数,14留数也会比较高。

当然,增加了对精准度的要求,就需要付出量减少的代价。好的投放系统和差的投放系统,差异只在于好的投放系统量和质的换算效率高一些,如果进行了保率,量掉得少一些。

什么时候适合用保率的双出价,什么时候适合用不保率的双出价?

那就得回到前面说的基本假设上来,即:出价点1到出价点2的率,是正相关于出价点2到考核点的率。以激活付费双出价举例,就是激活到付费率,正比于ARRPU。虽然大多数时候这个关系是成立的,但是不同广告主可能这个正相关性是有高有低的。正相关性越高的广告,越适合用保率的双出价;正相关性越弱的广告,越适合用不保率的双出价。举个极端的例子,如果一款应用,它的ARRPU是固定的,比如付12元就终身免广告,没有其他变现方式。这个正相关性就为0。对于正相关性较弱的广告主,可能保率带来的量的下降的损失,就超过了ARRPU增加带来的好处,可能用不保率的双出价就会更加合适。

保率双出价和带加强点的单出价有什么区别呢?

我们用“激活付费双出价”和“付费出价带付费金额加强点”这两个具体的例子来分析。这两个产品同样是在保证了付费成本的基础上,优化了付费金额。“激活付费双出价”是通过优化激活付费率,并且利用了激活到付费率正比于p(付费->付费金额)的方式,不需要广告主回传付费金额数据,对于激活到付费率高低的控制,交给广告主自己控制。“付费出价带付费金额加强点”则是通过直接预估p(付费->付费金额)的率,然后算ratio的方式(详见(中篇)关于加强点的描述)。如果在预估p(付费->付费金额)的率的模型里,把激活到付费率也作为一个特征,那么也能利用激活到付费率正比于p(付费->付费金额)这个特性。只不过这个率的权重和这个模型里其他特征的权重,需要通过广告主回传付费数据来训练。

总结一下就是,保率双出价通过广告主手动控制“出价点1到出价点2的率”这一个因素来影响出价点2到考核点的率,不过不需要广告主回传考核点数据。带加强点的单出价可以通过模型自动控制包含“出价点1到出价点2的率”在内的多个因素来影响出价点2到加强点的率,不过需要广告主回传加强点数据。

从量上来说,付费出价>不保率激活付费单出价->保率激活付费单出价/带加强点的付费单出价->付费金额出价(ROI出价)。牺牲量依次带来的好处的是,前期成本更加稳定,ARRPU提升,ARRPU进一步提升且能赔付。

广告主可以根据自己对于量和质的区别,对稳定程度的区别,来选择适合自己当前阶段的出价产品。

问题二:什么是一价计费,广义二价计费(GSP)?为什么大多数广告平台要用GSP计费?

在(上篇)中,讲CPC广告时,举过一个例子,广告A和广告B的CTR分别是0.03和0.02,出价分别是0.3元和0.4元。讲到“排序按eCPM排,但不是按照eCPM来计费的,还是按照CPC来计费。也就是说,如果这条广告被用户点击了,媒体平台会收广告主0.3元。如果没有被用户点击,媒体平台不收广告主钱。“。

eCPM_A = 0.03 *0.3 * 1000 = 9元

eCPM_B = 0.02 *0.4 * 1000 = 8元

这里为了让概念更清晰,是按照一价计费的情况下解释的。也就是排名第一的广告主出多少钱,计费的时候就扣第一名的广告主多少钱。事实上,在大多数广告平台使用的广义二价(GSP)计费中,媒体平台收广告主的钱比0.3元要少。二价计费就是排名第一的广告主获得展现后,计费(也就是扣第一名广告主的金额)是排名第二广告主的出价(广义二价是指第n名用n+1名的出价计费,以下讨论我们不特意区分广义二价和二价)。比如CPM出价下,广告主A出10元排第一,广告主B出9元排第二,那么这次展现就扣广告A 9元/1000=0.009元。

另外,在计费点不等于排序点(也就是展现)的时候,GSP的具体的计费规则要稍微变换一下。因为在按cpm排序的最终队列里,因为第一名和第二名的广告的点击率不一样,可能出现第二名的点击出价还比第一名的高的情况(例如上面的例子,广告主B的点击出价是0.4元比0.3元还高,不能直接扣第二名的点击出价。这里就需要用点击率来换算下。

GSP的计费公式是这样的(当计费点不等于排序点时)

在CPC(或oCPC) 的情况下为

然后在上面的基础上再扣一个最小货币单位,比如1厘钱。下面会解释为什么需要加1厘钱。

在上文的例子中,广告主A最后计费的金额是:0.02*0.4/0.03=0.267元,如果加上一厘钱,就是0.0268元,比0.3元少。

关于GSP计费,记住两个性质就好了。

一是计费值等于让广告ad1保留在第一位的最低出价。

把计费公式两边都乘以 ,则有

这里如果广告ad1按 出价,最左边就是广告ad1的eCPM。右边就是广告ad2的eCPM。如果广告ad1的出价比 少1厘钱,广告ad1的eCPM就要低于广告ad2的eCPM了。也就不能排到第1位了。如果出价按 出,eCPM也只是刚好和ad2的一样。因此,大多数广告系统会在 的基础上,多扣1厘钱,保证广告ad1的eCPM是大于广告ad2的eCPM。

二是计费的最高值一定不会超过广告ad1的出价 。

因为广告ad1既然能排第一,说明它的eCPM比第二名的广告ad2的eCPM高,也就是说有

两边同时除以 则有

左边就是 ,所以

接下来解释下为什么需要用GSP计费。我们上面的第二个性质也说了,计费的最高值不会超过出价,而如果用一价计费,计费就等于出价。也就是说GSP计费的钱,是一定小于等于一价计费的值的。那为什么广告平台不选择一价计费,岂不是更赚钱?

严谨的证明需要涉及博弈论,要证明二价计费是纳什均衡的。大概意思是说,在二价计费机制下,广告主直接给出心里能承受的真实的价格,对广告主和平台而言都是最佳的选择。这里的证明比较复杂,笔者不展开说明了。从一个简单的角度举个例子,大家也许更直观体会到二价计费的好处。

为了好理解,我们用计费点就在展现的二价计费来举例。假设我们在拍卖某一个广告位的流量,按cpm一价计费拍卖,也就是出价高的人拿走流量,计费完全等于出价。假设有两个广告主竞价,保留价是10元。那么一开始广告主A出10.1元买走了第一个的流量,广告主B出10.2元买走了第二个的,这个时候广告主A会调整出价到10.3元,广告主B又调到10.4元。。。直到当前价格是广告主A出100元,这个时候广告主B算了下再加价要亏本了,决定不再跟了,反正是第二名,出99.9元也是输,出10元也是输,不如把价格调回到10元,这样如果广告主A预算撞线了或者退出了,还能捡个漏。这个时候广告主A发现B已经把价格调到10元了(不能直接看到B的出价,但是可能会逐渐试探到),自己也不用花100元去买,直接出10.1元就可以了。广告主B又把价格提高到10.2元。。。于是,一个新的循环又开始了。排名第一的广告的价格呈现锯齿状,非常不稳定。这就是没有达到纳什均衡的现象,即没有达到:博弈的任何一方,只要改变当前的选择,双方各自的利益都不会增加。不管现在这个循环的哪个阶段,总有一方可以针对性地调整自己的出价,从而提高自己的收益。

如果是二价计费会怎么样?当广告主B把价格调整到10元后,广告主A不需要再把价格调到10.1元。因为计费按第二名+最小货币单位,也是按10元+0.001元计费。不管是保持100元出价还是修改到10.1元,都是按10.001元计费。这个时候循环就被打破了。在这个阶段,广告主A是没有办法再通过调整自己的出价,来提高自己的收益。广告主B也没有办法再调整出价,来提高自己的收益。这个时候就达到了所谓的纳什均衡。

这是在一个两人竞价的理想态的分析,真实的广告竞价场景要复杂一些,虽然Google和FB在一些特殊产品上,也有应用一价计费的case,但是总体来说,大多数的广告系统还是采用GSP二价计费。

问题3. oCPX的"一键起量"是个什么产品?为什么需要有这个产品?

稍微介绍下“一键起量”是个什么产品。它的功能是这样的:

在一个广告单元冷启动阶段(已经过了冷启动就不能用了),广告主可以自己出一笔预算,让平台用这笔预算对这个单元进行冷启动探索。通常平台会通过在智能出价中提高出价的方式,来把这笔预算花掉。等到这个单元积累到了足够的转化数据,证明了自己是个好单元/或者差单元,再把出价降回到正常出价。这样这个广告单元冷启动成功概率就增加了。

即使不用这个产品,平台也会有自己的冷启动机制,来对广告进行探索。所以一般情况下,广告主并不需要使用这个产品。只有当广告主对一些比较好的素材有信心的时候,但平台并没有给这个素材足够的探索量。或者在探索的时候,这个素材因为运气不好,在较少的展现中,没有展现出足够的实力。那么这个时候,广告主可以通过这个产品来告诉平台,“这个素材麻烦你提高出价探索一下”。其实,即使没有这个产品,很多广告主也是通过自己主动提价,等过了学习期再降价的方式,变相实现了这个功能。

另外,之前广告平台之所以有超成本赔付,是因为平台需要有个机制来保证自己不会故意对广告主的各种率预估偏高,从而盲目提高出价使得最后超成本。但是现在是广告主自己要求对这个广告提价。因此“一键起量”这一类产品起作用的单元,是不会进行超成本赔付的。这个从机制上看也是非常合理的。如果平台还是会进行超成本赔付,那么广告主就会对所有的单元,都应用这个功能,让投放系统进行提价,反正超成本了平台还会进行赔付。

我们再来分析下为什么需要有这个产品。先回顾下前面讨论的oCPM里智能出价这部分,它的本质是媒体平台免费为广告主提供把出价点价格转化成计费点价格的出价转换服务。这个智能出价即使完全交给广告主自己来出,是没有机制上的问题的。广告主自己不做是因为p(计费点->出价点)的数据都在平台手里,自己没有办法做得比平台好。基于这个机制上的合理性,广告主可以用各种手段对这个出价进行有利于广告主自己的干预,都是符合双方利益最大化的。包括使用一键起量来要求提高出价。

有些广告主试图通过回传等手段来hack投放系统智能出价算法对这个单元的出价,其实是平台没有对应的产品来支持广告主对出价的干预(虽然大多数时候,广告主的出价干预也许不一定比程序做得更好)。

问题4. 智能出价产品是否可以用一价计费?

在oCPX产品中,每次竞价的计费点出价都是平台的出价算法出的,它考虑了p(计费点->出价点)的率,也考虑了当前出价点成本的达成情况。有些读者可能自然而然就会想,既然现在出价都是平台出的了,是不是就不需要二价计费了,直接用一价计费是不是就可以了?

前面举例的一价情况下,广告主A出10.1元,广告主B出10.2元。。。形成恶性循环的情况,因为现在都是广告主A和广告主B都是通过平台来出价,平台理论上可以通过集中管理,来避免这样情况的出现。其实这么做的缺点也很明显,就是从原来机制上的保证,变成了平台算法实现上的保证。例如按照前面的例子,假如是一价计费,当广告主A出到100元,广告主B把出价调回到10元的这个时刻,如果广告主A自己来出价,是会把价格调整到10.1元的。但是平台为了不让价格出现波动,可能把广告主A的出价稳定在100元。在这个时刻,平台为了自己的利益(计费稳定)和广告主的利益出现了分歧。长此以往,广告主就有动力要求平台把出价交给自己来控制(因为虽然比平台缺少数据,但至少能往自己利益最大化的方向去出价),或者通过各种hack方式来试图影响平台的出价。另外,智能出价算法在优化的时候,除了优化客户的成本达成情况,还需要额外考虑价格的平稳性(在二价的情况下,通过机制保证了)。这些都是智能出价产品仍旧使用二价计费的原因。

问题5. 用RTA做动态过滤是怎么一回事?

在(下篇)中,我们探讨了RTA这种新的生态。回顾一下,文章中提到“所以RTA不适合于买新用户,而更适合对广告主旗下某产品A的用户投放旗下其他产品B的广告。所以RTA特别适合电商广告,因为大部分用户其实都在电商广告主那里买过东西,电商广告主已经有了这些用户的特征数据,可以对这些用户推荐他们没有买过的新的商品的广告。而RTA就不太适合游戏类广告,因为游戏类广告主通常需要买旗下所有游戏都没用过的新用户,对于这些新用户,广告主一点特征数据也没有。” 这里主要描述的是RTA作为“动态出价”产品的使用场景。

在微信文章中遗漏了RTA作为动态过滤的一种用法,在知乎的文章里是有的,这里统一补充下。RTA其实也可以用来买新用户的,但是主要是作为一个“实时黑名单(realtime blacklist)”的方式用来做用户的动态过滤。具体的运行方式是,RTA的广告主,对平台发过来的每个广告请求,看看这个请求对应的用户,是否已经在别的平台转化过自己的这个产品,或者转化过自己的类似的产品。如果是的话,就返回0告诉平台说我不要这个流量;否则返回1,告诉平台这个流量我要了。各种率都还是平台去预估,使用RTA的广告主自己不预估(因此广告主还是需要回传转化等后链路数据给平台,进行点击到转化率或其他率的预估)。这个用法和平台的排除人群包比,差异在于这个黑名单是实时更新的,广告主不用经常update排除人群包。

总结一下RTA的用法主要分为两种:

RTA这个产品的问题主要在于,广告平台需要把自己的请求发送给广告主,这个请求至少是带了用户ID信息。对平台来说,有数据泄漏的风险。因此这个请求数的规模不能太大,另外可能可以有选择性地发送请求。ADX发请求给DSP也会有类似的问题,不过好像在ADX的请求是从很多小媒体来的,小媒体对于数据不是太care,另外成熟的ADX也会有选择性给DSP发请求的策略(例如长期对接ADX只拿请求不竞价的骗数据的DSP,流量是要被ADX卡掉的)

  1. 广告产品如何支持广告主更好地进行表达?

匹配效率对于广告系统来说可能是最核心的诉求。要提高用户和广告的匹配效率,一方面要足够了解用户(用户画像,用户数据和特征挖掘等等),另外一方面要足够了解广告(素材,广告主诉求)。用户侧和推荐等产品没有明显差异,下面主要关注广告主侧。要让广告系统尽可能了解广告,需要支持广告主的以下两类表达:

  • 诉求表达(例如:各种出价产品,消耗速度选择)
  • 先验表达(例如:定向产品,标签产品,一键起量,一键继承)

(a) 诉求表达

诉求表达主要让广告主告诉平台,要的是量还是质,优化到激活就够,还是需要优化付费甚至ROI。这些都可以通过让广告主选择不同优化侧重目标的出价产品来表达,因此很难有一个出价产品一统天下。出价产品的多样性也是需要一定保障的。

另外广告主在不同的阶段,诉求也是不一样的。例如在有些游戏早期上市的时候,会在于先把市场铺起来,不太在乎ROI,只要激活成本达标,激活越多越好,玩游戏的人多了以后,形成一定的传播性,社交性。等到中期后期的时候,前期已经积累了一部分数据,再开始优化付费/ROI,从要量转为要质。早年间,Facebook的MAYA, AEO, VO产品就形成了这么一套满足不同阶段广告不同诉求的出价产品矩阵。处在不同阶段的广告主同一时间也不是只用其中一个产品,而是搭配使用,只是预算占比不同。

(b) 先验表达

诉求表达支持广告主表达:我要什么要的广告。先验表达则是广告主告诉投放系统:你一开始没数据的时候,可以先按我告诉你的这样去投,效率会好一些。等你有数据了,再按照数据里统计出来比较好的方式去投。

先验后验是算法里最经常遇到的概念,不做算法的同学可能陌生一些。先验和后验的关系大概可以理解为:


    先验+数据观察->后验

只有先验需要广告主表达,后验是投放平台自己计算的。这里有两种情况都需要满足才能形成完善的广告产品组合

  1. 没数据(或者数据少的时候)用先验
  2. 有数据的时候用后验

例如定向产品,提供了很多人口属性,兴趣标签等定向条件给广告主选择。有一部分广告主并不在乎谁下载了自己app或者购买了自己的产品,他们只是通过对自己产品的理解,选择合适的启动人群,来告诉广告系统,投放这些人群效果会比较好。这就做到了第1点,没数据时候用先验,但是没有做到第2点,就是有数据的时候用后验。因此后来有了“智能扩量”产品,让单元投放到一定量级的时候,系统可以根据投放历史数据,适当放宽定向。

同样的例子还有“一键起量”,广告主提供的先验是:这个素材转化好,出高点的价格探索它。但是过了冷启动,如果实际数据表现不好,系统会忽略这个