RTB撕开黑盒子 Part 4: Shady Bidding
在这篇文章中,我将告诉你"真实的出价"比你想的微妙,并且你可以使用基于ROI的pacing策略,不需要构建一个期望扣费的模型,你就可以得到完美的期望扣费模型。
Same Same but Different
我们假设你按Part3中的广告实现了基于ROI的策略。现在有一个请求,你计算出它的pCTR为0.1%,如果广告主出价是$1,那么你愿意出价1000微元。你的pacing系统告诉你,ROI阈值是50%,你是否决定出价呢?答案是是否出价依赖于你认为这次展示会被扣费多少:如果你认为会扣费低于666微元,那么超过了ROI 50%阈值,可以出价,如果高于666微元,那不应该出价。
现在假设你估计胜出后的扣费为500微元(预出价的期望ROI是100%),所以你会出价1000微元。噢...太糟了,你的预估偏差了50%,并且你被扣费750微元。你的胜出后期望ROI现在是33%,它比你在胜出前期望的ROI要小。郁闷。
等一下,现在的问题是如果扣费低于666,你想出价1000微元,或是高于666微元,不竞价。如果你不想冒着预估错扣费的风险进行竞价,你可以只出价666微元。因为反正扣费是按第二名的出价:如果第二名出价低于666,那么你胜出了,你可以只付费666得到价值1000的曝光机会。如果第二名出价高于666,就不能胜出,也不用付任何费用。
现在我们来用数学公式来描述一下:在Part 3中讨论的方案,如果期望ROI大于或等于阈值X,你愿意出价期望价值V。如果C是期望扣费,那么期望ROI是(V-C)/C,那么当扣费小于等于V/(X+1)时,ROI大于等于X。

在二阶扣费的机制下,如果你有一个非常好的扣费预测模型,并且在当扣费C小于或等于D的情况下,出价B,这里设B>D,那你会比较愿意出价D:你想胜出或者不胜出,都在期望的扣费条件上。我们称这种对商品估值为B出价为D的出价策略为:shaded出价策略。在这种情况下,下面的出价策略其实是等价的。

下面是所有扣费的一个粗糙的证明:
|
Cost |
Truth-or-Nothing Bid |
Shaded Bid |
Truth-or-Nothing Win? |
Shaded Win? |
|
C > B |
0 |
D |
No |
No |
|
B>C>D |
0 |
D |
No |
No |
|
C<D |
B |
D |
Yes |
Yes |
把上面的话串起来,X永远大于0,下面的出价策略是等价的:

这种shaded出价策略最大的惊喜就是:在真实出价或不出价的策略下,你可以不需要计算期望出价就可以得到相同的结果。事实上,如果你选择shaded出价策略,与你在真实出价或不出价策略下,你有一个完美的扣费预估模型的效果是一样的。如果有一个非完美的模型,真实出价或不出价策略会表现的差很多。因为没有人会有一个完美预测计费的模型,并且即使是构造一个差不多的计费预测模型也要大量的工作量,所以shaded策略是一个很大的进步。
the Lower the Better
我在Part 1中留下的问题是:你有一笔预算,你会一定时间内将它消耗完,要取到一定数量的类点击行为,这些类点击行为是可估值的。在效果广告中,类点击的行为的价值是可行的,比如CPC。但在一些品牌广告中,点击的价值就有点不确定了。CPC的价格不是广告主认为一次点击的价值,而是广告主与其它广告渠道对比的结果(基于ROI)。在这种情况下,广告的出价就是最高的CPC:没有人会报怨CPC比自己设定低。事实上,你要尽力找到你能找到的最低的CPC请求,约束条件是总扣费加起来等于预算。在这种情况下,很难真实的出价。
事实上处理这种问题有一个很简单的方法。shaded策略是对请求出价V/(X+1),其中V是targetCPA * P(action),X是你最低期望ROI。根据Part 0中所描述的反馈Pacer控制器。Pace控制器并不需要知道或是关心ROI,它只需要输出一个与出价速度相关的控制值,以保证Pacing。这意味着我可以调整一下公式,得到下面的公式:

我们用K做为Pacing控制因子而不是X。
RTB撕开黑盒子 Part 4: Shady Bidding的更多相关文章
- RTB撕开黑盒子 Part 1: Datacratic's RTB Algorithms
这篇文章是讨论Datacratic所用的统计和经济理论的一些内容.我们开发了real time bidding算法s.为了实现广告主的目标,我们的算法自动地利用其它广告主的次优策略,并再查看广告的底价 ...
- RTB撕开黑盒子 Part 2: Algorithm Meets World
Part 0介绍了RTB的胜出价格会在凌晨陡升.我们还介绍了一个Pace系统,如果这个系统所有的DSPs都用,那陡升的问题就会消失.Part 0中的系统中含有一个隐式的假设:任何两个请求都认为是相同的 ...
- RTB撕开黑盒子 Part 0:Pacing: is everyone doing it wrong?
曾尝试为我们的RTB客户解决过Pacing问题,Pacing问题要解决的问题是:如果一个客户给你一笔预算,让你去运营一个广告推广计划,在一定的时间内投放广告,将这笔预算在指内的时间内,比较均匀地将预算 ...
- RTB撕开黑盒子 Part 3: Beyond Surplus
在本文中,我将解释如果要对整个推广计划最大化利润,决定是否应该出价的应该是期望回本率(ROI),而不是期望利润,这与我们以前介绍的有所不同.在Datacratic,我们已经在2012年底切到了基于RO ...
- 品友推广的投放原理 RTB:Real Time Bidding(实时竞价) DSP:Demand-Side Platform(需求方平台) 广告交易平台:AD Exchange
总结: 1.实时竞价 0.1秒出价各个广告主出价,投放价高者: RTB(Real Time Bidding)实时竞价,是一种利用第三方技术在数以百万计的网站或移动端针对每一个用户展示行为进行评估以及出 ...
- [DEMO] 互联网广告RTB机制简介
前言: 传统的互联网广告一般都是大流量网站在页面中留出一定空位,某些推广商家通过买位的方式来展示自己的广告. 我们这里引入一个案例:假设大访问量网站为博客园,想要广告推广的公司为阿里云平台. (场景为 ...
- RTB
RTB —— Real Time Bidding 的简称,就是实时竞价.跟传统购买形式相比,RTB是在每一个广告展示曝光的基础上进行竞价,就是每一个PV都会进行一次展现竞价,谁出价高,谁的广告就会被这 ...
- [转]浅析AD Exchange——RTB模式
在上一篇文章中,我们了解了程序化购买,并且知道程序化购买的最基本的一种RTB的竞价模式,了解了DSP.SSP.Ad Exchange等概念,不清楚的同学可以看看上一篇文章<程序化购买>. ...
- RTB广告展示分步说明
原文:http://contest.ipinyou.com/cn/manual.shtml RTB (Real Time Bidding, 实时竞价) 是近年来计算广告领域最激动人心的进展之一. 它增 ...
随机推荐
- 魔兽世界服务器Trinitycore分析二:auth server的main函数
TrinityCore由生成两个运行文件authserver和world server以及一堆DLL(或so)文件的子项目组成(先忽略map_extractor等几个工具项目). authserver ...
- asp.net 一般处理程序session 为 null
必须继承 IRequiresSessionState 接口才行!
- 给Notepad++ 6.7 加右键菜单带图标
使用的是Notepad++ 6.7,下载 NppShell64.dll 和 NppShell.dll方法:将BAT文件和下载的NppShell64.dll 和 NppShell.dll放置Notepa ...
- Spring之使用Annotation注解开发项目
我们也可以使用Annotation来实现注入操作,提高我们写代码的灵活性和效率.spring中要使用annotation,需要在配置文件中增加: <beans xmlns="http: ...
- 第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写<深入理解 MonkeyRunner>书籍“.但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在 ...
- SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识
原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...
- touch命令功能
touch命令功能 touch fileA,如果fileA存在,使用touch命令可更改这个文件或目录的日期时间,包括存取时间和更改时间:如果fileA不存在,touch命令会在当前目录下新建一个 ...
- 一步一步实现基于Task的Promise库(一)Promise的基本实现
如果我们现在有一个需求,大概是先读取一个文件的内容,再把得到的内容传给后台去解析,最后把解析后的结果再保存到那个文件,按照最原始的做法代码就是下面这个样子的: //读取文件的原始内容 var read ...
- Javascript中布尔运算符的高级应用
对象检测语句:var W3CDOM = document.getElementsByTagName && document.createElement 为了执行运算符&& ...
- Akka入门实例
Akka入门实例 Akka 是一个用 Scala 编写的库,用于简化编写容错的.高可伸缩性的 Java 和 Scala 的 Actor 模型应用. Actor模型并非什么新鲜事物,它由Carl Hew ...