Part 0介绍了RTB的胜出价格会在凌晨陡升。我们还介绍了一个Pace系统,如果这个系统所有的DSPs都用,那陡升的问题就会消失。Part 0中的系统中含有一个隐式的假设:任何两个请求都认为是相同的,而忽略其它因素,比如请求时间。在Part 1中介绍的竞争价格会随时间而变化,但这个Part 0中的系统是忽略了这一点的。

一些思维敏捷的读者意识到了这个问题,他们评论到如果知道一些时间的胜出价格很高,那这些时间是不应该去竞价的。

本文中将介绍我们以逐请求的方式计算利润的方法,并会解释一个Pacer同时处理竞争价格和展示质量的变化,并且不需要硬编码什么时间不竞价。而达到上述的目标只需要Pacing系统更新控制变量周期变长很多,比如一天,并且控制变量视为一个“最小可接受期望利润”阈值。下图中是比较平均竞争价格和平均期望利润随时间变化的图,图中收集了多天数据,注意可以看到凌晨价格陡升,利润下降:

一个经过很好调整的,不常变化的Pacing系统最后会在图中显示为一条横向的直线,我们只对期望利润超过阈值的请求竞价。这种做法的核心思想是图中的曲线表示某种分布较宽且偏峰的分布平均值,所以即使平均价格上升并且期望利润下降,也并不意味着没有任何好的请求,它只是意味着好的请求变少了。通过设置一个固定的,不常更新的阈值,我们可以在一天任何时间都竞价,只是可能在凌晨少消耗,而且凌晨前多消耗。

这可以说是利用了其它竞价者的次优行为,因为一些竞价者不理性的在凌晨进入竞价,使得市场价格陡升。

我们的算法是采用刮奶油的方式,只对最好的请求竞价。我们在白天竞价时是有所保留的,当其它竞价者预算消耗完后,请求的需求就下降了,这导致市场价格下降,并同时导致期望利润上升,这时我们会加大竞争量。

Navigating Around Publisher Price Floors

我们已经介绍了我们针对其它竞价者的算法策略,再将介绍关于针对发布者的策略。这个系统如何应对发布者的底价呢?底价是指发布者最低愿出售的价格。其实可以理解为发布者也参与这个广告位的竞价。如果没有竞价者超过这个底价,那么就没有竞价者得到这个曝光机会。如果有多于一个竞价者高于这个底价,那么底价是没有影响的,胜出者仍然是付第二名的出价。如果只有一个出价高于底价,那么发布者会多获得一些利润。

First Price

Second Price

Reserve Price

Clearing Price

5

3

n/a

3

5

3

2

3

5

3

4

4

5

3

6

no transaction

这在微观层面是很合理的,如果我们胜出竞价,我们是很乐意接收扣费更高的扣费的:因为我们的出价是我们认为的价值,我们所付的是第二名的出价,两者之差即是我们的利润。发布者更想让按我们的出价扣费,因为如此,他们是有动机将底线不断向上提,这样他们能得到更多的利润。我们的算法采用了应对竞价者的方法来应对发布者的提升底价。在任一时间,Pacer的控制变量告诉我们最小期望利润的阈值。如果发布者提升了它的底线,它们的展示机会的期望利润会下降。如果它下降到阈值之下,我们就不会再对这次请求竞价,而不会去接受它提高会后底线。这就是我们所指的查看底价。控制变量的设置由预测决定的,并基于整个exchange的利润空间决定的。所以任何提高底价的发布者都可能失去我们的竞价,因为我们可以从其它发布者那取得曝光。底线的设置可能会低于我们的出价,但是可能高于第二名的出价,所以我们就会放弃一部分利润给发布者。这也就是exchange存在的意义:市场机制利用竞争使利润空间变大。

值得注意的是在宏观层面上,发布者不需要把它们的流量全部通过RTB方式售出:他们可以以合约广告的方法以更高的价格售出。用广告术语来讲,合约广告流量是“优质流量”,其它的流量是“剩余流量”。发布者因为有广告主可能通过比如RTB的方式得到价格更低的广告效果,发布者是有动机将底价设置的比较高。广告术语是“交叉渠道冲突”,因为剩余流量可能会伤害优质流量的利益。如果发布者出于这种考虑设置底价,那么它们可能设置的比我们的出价还要高,而不是想榨出第一名和第二名之间的利润。结果就是期望利润是零,作为DSP的我们没有必要去为没有利润的请求去出价。Mike on Ads对这个问题有一篇文章很好的解释了为什么发布者这么做不是个好主意。

RTB撕开黑盒子 Part 2: Algorithm Meets World的更多相关文章

  1. RTB撕开黑盒子 Part 1: Datacratic's RTB Algorithms

    这篇文章是讨论Datacratic所用的统计和经济理论的一些内容.我们开发了real time bidding算法s.为了实现广告主的目标,我们的算法自动地利用其它广告主的次优策略,并再查看广告的底价 ...

  2. RTB撕开黑盒子 Part 0:Pacing: is everyone doing it wrong?

    曾尝试为我们的RTB客户解决过Pacing问题,Pacing问题要解决的问题是:如果一个客户给你一笔预算,让你去运营一个广告推广计划,在一定的时间内投放广告,将这笔预算在指内的时间内,比较均匀地将预算 ...

  3. RTB撕开黑盒子 Part 4: Shady Bidding

    在这篇文章中,我将告诉你"真实的出价"比你想的微妙,并且你可以使用基于ROI的pacing策略,不需要构建一个期望扣费的模型,你就可以得到完美的期望扣费模型. Same Same ...

  4. RTB撕开黑盒子 Part 3: Beyond Surplus

    在本文中,我将解释如果要对整个推广计划最大化利润,决定是否应该出价的应该是期望回本率(ROI),而不是期望利润,这与我们以前介绍的有所不同.在Datacratic,我们已经在2012年底切到了基于RO ...

  5. 基于消逝时间量的共识机制(POET)

    来自于Intel project:Hyperledger Sawtooth,目前版本 PoET 1.0 PoET 其实是属于Nakamoto consenus的一种,利用“可信执行环境”来提高当前解决 ...

  6. Hyperledger中的共识机制

    Hyperledger Consensus 共识过程 Hyperlydger中建立共识的过程由以下两个独立的过程构成: Ordering of transactions (交易排序) Validati ...

  7. Customizable Route Planning

    w https://www.microsoft.com/en-us/research/wp-content/uploads/2011/05/crp-sea.pdf 1 Introduction The ...

  8. [Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型

    深度学习掀开了机器学习的新篇章,目前深度学习应用于图像和语音已经产生了突破性的研究进展.深度学习一直被人们推崇为一种类似于人脑结构的人工智能算法,那为什么深度学习在语义分析领域仍然没有实质性的进展呢? ...

  9. LEETCODE —— Linked List Cycle [Floyd's cycle-finding algorithm]

    Linked List Cycle Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it ...

随机推荐

  1. WebBrowser!

    原文:WebBrowser! 我现在先放一些基础的文章在这里,以后再放别的上来官方范例连接http://www.microsoft.com/china/msdn/library/langtool/vc ...

  2. Socket 学习(二)

    1对1的发送和接收 Client 端         void ThreadReceive()         {             try             {              ...

  3. C语言与sqlserver数据库

    原文:C语言与sqlserver数据库 1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作. step1:启动SQLSERVER服务,例 ...

  4. java之JAVA异常

    异常的分类 1. 编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系.         此类异常在处理时必须进行声明或进行捕捉         这 ...

  5. 【麦子学院】OpenCV教程函数总结

    个自带样例. parter 1: No1. adaptiveskindetector.cpp 利用HSV空间的色调信息的皮肤检測,背景不能有太多与肤色相似的颜色.效果不是特别好. No2. bagof ...

  6. Linux---江湖

    Linux江湖13:我该如何备份系统 Posted on 2014-12-18 10:39 京山游侠 阅读(497) 评论(3) 编辑 收藏 在前面的一些文章中,我反复提到经常会把系统搞崩溃,所以备份 ...

  7. MVC 使用jQuery上传文件

    在ASP.NET MVC Framework中,上传文件真是超级简单,看代码: View <formaction="<%=Url.Action("Process&quo ...

  8. 使用rem设计移动端自适应页面三(转载)

    使用rem 然后根据媒体查询实现自适应.跟使用JS来自适应也是同个道理,不过是js更精确一点.使用媒体查询: html { font-size: 62.5% } @media only screen ...

  9. 【腾讯开源】Android性能测试工具APT使用指南

    [腾讯开源]Android性能测试工具APT使用指南 2014-04-23 09:58 CSDN CODE 作者 CSDN CODE 17 7833 腾讯 apt 安卓 性能测试 开源 我们近日对腾讯 ...

  10. Android中那些权限

    Permission Permission Permission Group Permission Tree Users Permission ACCESS_CHECKIN_PROPERTIES 允许 ...