RTB撕开黑盒子 Part 2: Algorithm Meets World
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的更多相关文章
- RTB撕开黑盒子 Part 1: Datacratic's RTB Algorithms
这篇文章是讨论Datacratic所用的统计和经济理论的一些内容.我们开发了real time bidding算法s.为了实现广告主的目标,我们的算法自动地利用其它广告主的次优策略,并再查看广告的底价 ...
- RTB撕开黑盒子 Part 0:Pacing: is everyone doing it wrong?
曾尝试为我们的RTB客户解决过Pacing问题,Pacing问题要解决的问题是:如果一个客户给你一笔预算,让你去运营一个广告推广计划,在一定的时间内投放广告,将这笔预算在指内的时间内,比较均匀地将预算 ...
- RTB撕开黑盒子 Part 4: Shady Bidding
在这篇文章中,我将告诉你"真实的出价"比你想的微妙,并且你可以使用基于ROI的pacing策略,不需要构建一个期望扣费的模型,你就可以得到完美的期望扣费模型. Same Same ...
- RTB撕开黑盒子 Part 3: Beyond Surplus
在本文中,我将解释如果要对整个推广计划最大化利润,决定是否应该出价的应该是期望回本率(ROI),而不是期望利润,这与我们以前介绍的有所不同.在Datacratic,我们已经在2012年底切到了基于RO ...
- 基于消逝时间量的共识机制(POET)
来自于Intel project:Hyperledger Sawtooth,目前版本 PoET 1.0 PoET 其实是属于Nakamoto consenus的一种,利用“可信执行环境”来提高当前解决 ...
- Hyperledger中的共识机制
Hyperledger Consensus 共识过程 Hyperlydger中建立共识的过程由以下两个独立的过程构成: Ordering of transactions (交易排序) Validati ...
- Customizable Route Planning
w https://www.microsoft.com/en-us/research/wp-content/uploads/2011/05/crp-sea.pdf 1 Introduction The ...
- [Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型
深度学习掀开了机器学习的新篇章,目前深度学习应用于图像和语音已经产生了突破性的研究进展.深度学习一直被人们推崇为一种类似于人脑结构的人工智能算法,那为什么深度学习在语义分析领域仍然没有实质性的进展呢? ...
- 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 ...
随机推荐
- Mac OS X于Android Kernel下载方法
于上一篇日志中,我总结了大家提供的下载Android源代码的方法.这里再简单总结一下内核的下载方法. 參考这里的介绍:http://source.android.com/source/building ...
- hdu2203 KMP水的问题
两种方法 首先是纯KMP #include<stdio.h> #include<string.h> #include<iostream> using nam ...
- SQL Server 得到SPID,唯一的sessionID
像.net中的session一样,假设能知道了数据库中的sessionID,那全部的操作都能知道了,由于有了这个唯一的身份识别的标识. 能够做的事情有非常多,如:当前哪个用户在做什么操作,在运行什么s ...
- 深入理解PHP中赋值与引用
原文:深入理解PHP中赋值与引用 先看下面的问题: <?php $a = 10;//将常量值赋给变量,会为a分配内存空间 $b = $a;//变量赋值给变量,是不是copy了一份副本,b也分配了 ...
- iOS_22自定义键盘工具栏
最后效果图: Main.storyboard KeyboardTool.xib watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ ...
- The Swift Programming Language-官方教程精译Swift(3)基本运算符
运算符是检查, 改变, 合并值的特殊符号或短语. 例如, 加号 + 把计算两个数的和(如 let i = 1 + 2). 复杂些的运行算包括逻辑与&&(如 if enteredDoor ...
- 通过MyEclipse工具直接操作数据库,执行sql语句,方便快捷
原文:通过MyEclipse工具直接操作数据库,执行sql语句,方便快捷 通过MyEclipse操作数据库,执行sql语句使我们不用切换多个工具,直接工作,方便快捷.效果如下: 步骤1:通过MyEcl ...
- 移植MonkeyRunner的图片对比和获取子图功能的实现-Appium篇
如果你的目标测试app有很多imageview组成的话,这个时候monkeyrunner的截图比较功能就体现出来了.而其他几个流行的框架如Robotium,UIAutomator以及Appium都提供 ...
- yii中登录后跳转回登录前请求的页面
当我们请求一个经过权限控制的请求不通过时,会跳转到一个地方请求权限,请求结束后需要跳转回之前的页面.比如我们请求一个需要登录的action,会被跳转到login页面,我们希望登录成功后跳转到我们之前希 ...
- c# 播放器 支持所有格式
原文:c# 播放器 支持所有格式 ---恢复内容开始--- 直接上代码 internal static class LibVlcAPI { internal struct PointerToArray ...