RTB撕开黑盒子 Part 1: Datacratic's RTB Algorithms
这篇文章是讨论Datacratic所用的统计和经济理论的一些内容。我们开发了real time bidding算法s。为了实现广告主的目标,我们的算法自动地利用其它广告主的次优策略,并再查看广告的底价。我们想让我们的合作伙伴理解我们用的技术,并且认为它是合理的。“相信黑盒子”的价值观在这我们这里不成立的。
First, Tell the Truth
假设现在有一个效果广告的业务,总预算是$100,000,CPC是$1.00。像其它的DSP一样,需要订阅一个每秒几千的竞价请求(即Ad Call),每次请求都代表一次在特定广告位向特定用户展示的机会。你必须在几十毫秒内,对匹配你定向条件的请求进行出价。那么如何决定出价多少钱呢?大多数实时竞价都采用VCG计费或是二阶计费方式。胜出的是出价最高的竞价者,但他只用付出价第二高竞价者的出价。Ad Exchange采用这种计费方式是因为这方式鼓励竞价者“真实地出价(bid truthfully)”。也是就你应该直接出你认为这次展示所值的价值。但这次展示值多少钱呢?首先目标CPC是$1.00,那么一个不错的假设是认为广告主至少认为这次点击值$1.00。我们假设这个推广计划平均点击率是0.05%。那么如果你胜出这次竞价,那么就有0.05%的机会得到价值$1.00的点击,我们将出价和点击率乘起来,我们可以认为胜出的价值是0.05分。如果你是真实出价(按拍卖理论,你应该这样做),你应该出价0.05分。将其概括成一个公式:
bid = value = targetCPC * CTR
这样解释是不是也太简单了点,而且它没有利用到Adx的实时特性。我们是一家预测分析公司,我们有一些炫的模型,它们可以在实时环境下,以一次预测一个请求的方式,预测一个在特定时间在特定广告位一个特定用户点击特定广告的概率。也就是说你不需要在计算出价时统计这个推广计划的历史CTR,我们使用pCTR模型来预测出价:
bid = value = targetCPC * P(click)
上面的推导看起来没问题,但似乎没什么特别的东西。除了pCTR这个超出本文内容的模型,那竞价的秘诀是什么呢?事实上这个公式只会答了如果你决定竞价你的出价应该是多少。但什么时候应该出价,这个公式没能回答。在出价时,事实上你不应该只看出价,而且要看花费。
To Bid or Not To Bid, or: Cost is not Value
我们在Part0中讨论过,如果你对每一次出价都竞价,你会很快消耗完$100,000,而不会坚持到3个月。我们会比Part0更深入思考一个问题:是否我们可以不随机的选择流量进行出价,而是选择一些最好的请求进行竞价?最好的请求并不是指价值最高的请求,价值最高只是决定最好定义的一半。为了解释这个问题,我们举一个例子,一个采购可以买下图A或B商品进行二次销售。商品A二次销售的价值比B低10%,但它的花费只有B的一半。

两个商品有着相似的价值但不同的利润
在这个例子中价值低的A是更好的商品,因为决定商品好坏的不是价值和花费,而是两者之差,我们称之为利润。
surplus = profit = payoff = value - cost
上面的公式在当你胜出时是成立的,但如果没胜出呢?你将没有可能得到一次点击,所以价值为0,但你的花费也是0。所以我们的期望价值是上面的公式乘胜出的概率:
surplus = (value - cost) * P(win)
现在假设除了Datacratic的pCTR模型,我们还有一个竞争价格(出清价格,是指在市场充分竞争下的价格)预测模型来告诉我们胜出每次请求的概率,那么有了它,我们就可以计算利润了。

曲面是出价和价值的函数,对于任何价值,最大的利润都是在出价=价值时
在Part 0中我们介绍了为了得到预算目标,我们可以只对一部分流量进行竞价,我们应该只选择期望利润最高的部分请求。意味着控制出价的变量不再是出价概率,而且一种衡量你多想参与竞价的一个值:这个值越小,你的选择性就越强。你仍然是通过反馈进行调整,但现在你只是针对你认为能获得最多利润的请求竞价,这样你得到一个较低CPC的机会就变大了。
当你采用真实出价并合理地Pace,你的预算会消耗在最好的请求上,原因或是这个用户很可能点击,或是因为当前没多少DSPs出价,或是没有发布者设置底价。
RTB撕开黑盒子 Part 1: Datacratic's RTB Algorithms的更多相关文章
- RTB撕开黑盒子 Part 0:Pacing: is everyone doing it wrong?
曾尝试为我们的RTB客户解决过Pacing问题,Pacing问题要解决的问题是:如果一个客户给你一笔预算,让你去运营一个广告推广计划,在一定的时间内投放广告,将这笔预算在指内的时间内,比较均匀地将预算 ...
- RTB撕开黑盒子 Part 2: Algorithm Meets World
Part 0介绍了RTB的胜出价格会在凌晨陡升.我们还介绍了一个Pace系统,如果这个系统所有的DSPs都用,那陡升的问题就会消失.Part 0中的系统中含有一个隐式的假设:任何两个请求都认为是相同的 ...
- RTB撕开黑盒子 Part 3: Beyond Surplus
在本文中,我将解释如果要对整个推广计划最大化利润,决定是否应该出价的应该是期望回本率(ROI),而不是期望利润,这与我们以前介绍的有所不同.在Datacratic,我们已经在2012年底切到了基于RO ...
- RTB撕开黑盒子 Part 4: Shady Bidding
在这篇文章中,我将告诉你"真实的出价"比你想的微妙,并且你可以使用基于ROI的pacing策略,不需要构建一个期望扣费的模型,你就可以得到完美的期望扣费模型. Same Same ...
- 记录Office Add-in开发经验
原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com 得益于微软系强大的共通能力和Visual Studio的开发支持,做Office插件不是什么难事.一点经验记录如下 ...
- 【项目】搜索广告CTR预估(一)
本文介绍CTR相关基础知识. 一.广告投放系统 广告系统包含多个子系统.除了上图所示的广告投放系统外,还包含商业系统(广告库的获得),统计系统(点击展示日志的获得)等. 广告投放系统主要是面向用户的, ...
- 详解eNSP下的PPP之MP、PAP/CHAP认证实验配置
一.PPP MP实验(用虚拟模板配置) 1.拓扑图
- C#编写记事本(高仿)
近一周写的关于记事本的代码,高仿记事本.本人C#入门不久,其中存在代码冗余,但懒得修改了. 经测试运行正常. 一.主窗体设计及代码 namespace BestEditor { public part ...
- C# 线程更新UI
最方便的用法: private void ViewMsg(string msg) { /* control.Invoke(new SetControlTextDelegate((ct, ...
随机推荐
- 优秀的前端project如何制定一个老师--html学习路径
一个好的前端project教师发展,不是一蹴而就,它需要大量的学习和积累. 至于谁刚开始学习的人,如何入门.学习如何选择我的路线,做了各种工具? 1. 学习之前 1.不要着急看一些复杂网页效果的代码 ...
- CocoaPods 建立私有仓库
CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便. [个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像 ...
- Spring该讲座
看看今天Spring. 国内搞Java开发的朋友们.对Spring一定不会陌生. Spring的历史? 谈起Spring.就会想起Ejb2.0.虽然.现实中有非常多基于Ejb2.0的成功系统,可是Ej ...
- 在C#编程中玩转枚举,分享我的EnumHelper。
在C#编程中玩转枚举,分享我的EnumHelper. 在软件开发过程中,我们经常会为特定的场景下的特定数据定义逻辑意义.比如在用户表中,我们可能会有一个用户状态字段,该字段为整形.如果该字段的值为1则 ...
- 去除a标签链接触摸时产生边框
排除误解 网络资料说这个属性只用于iOS(iPhone和iPad),其实是错误的,android手机大部分也是支持的,只是显示效果不一样,移动开发并不成熟,更多的还需要大家去实践来辨别真伪- - -w ...
- Object-C中Category类体验
Object-C中Category类体验 Object-C开发的时候有的时候会用到Category类,类似于Java和C#中扩展类,就是如果你觉得如果你觉得常用的方法在String中没有,可以根据业务 ...
- - C#编程大幅提高OUTLOOK的邮件搜索能力!
原文:[原创] - C#编程大幅提高OUTLOOK的邮件搜索能力! 使用OUTLOOK, 你有没有遇到过上图的问题? 多达18419封邮件! 太多了, 每次想找一个邮件都非常耗时, 想办法解决这个问题 ...
- [翻译]如何编写GIMP插件(一)
近期想尝试编写gimp插件,在gimp官网看到了三篇简明教程,顺便翻译了下,由于本人英文,计算机知识有限,文中难免有warning,error出现,欢迎指正. <How to write a G ...
- js 模拟QQ聊天窗口图片播放效果(带滚轮缩放)
页面效果如下: 完整代码如下: <!DOCTYPE html> <html> <head> <title>Test</title> < ...
- Bootstrap Paginator分页插件
Bootstrap Paginator分页插件使用示例 最近做的asp.netMVC项目中需要对数据列表进行分类,这个本来就是基于bootstrap开发的后台,因此也就想着bootstrap是否有分页 ...