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

时间: 2024-10-09 08:23:27

RTB撕开黑盒子 Part 1: Datacratic's RTB Algorithms的相关文章

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

曾尝试为我们的RTB客户解决过Pacing问题,Pacing问题要解决的问题是:如果一个客户给你一笔预算,让你去运营一个广告推广计划,在一定的时间内投放广告,将这笔预算在指内的时间内,比较均匀地将预算消耗完.如果把预算消耗超出了,那就要自己贴钱了.如果没消耗完,这对于下次和客户合作的时候会有点丢脸.并且如果你不是均匀地进行消耗,你会发现自己面对着一堆愤怒的客户.比如几分钟就烧完客户50美元的预算.听起来很显然,是吧?但这问题比听起来要困难的多. Doing it wrong 当Datacrati

RTB撕开黑盒子 Part 2: Algorithm Meets World

Part 0介绍了RTB的胜出价格会在凌晨陡升.我们还介绍了一个Pace系统,如果这个系统所有的DSPs都用,那陡升的问题就会消失.Part 0中的系统中含有一个隐式的假设:任何两个请求都认为是相同的,而忽略其它因素,比如请求时间.在Part 1中介绍的竞争价格会随时间而变化,但这个Part 0中的系统是忽略了这一点的. 一些思维敏捷的读者意识到了这个问题,他们评论到如果知道一些时间的胜出价格很高,那这些时间是不应该去竞价的. 本文中将介绍我们以逐请求的方式计算利润的方法,并会解释一个Pacer

RTB撕开黑盒子 Part 3: Beyond Surplus

在本文中,我将解释如果要对整个推广计划最大化利润,决定是否应该出价的应该是期望回本率(ROI),而不是期望利润,这与我们以前介绍的有所不同.在Datacratic,我们已经在2012年底切到了基于ROI的策略. Too Little of a Good Thing 推广计划的全部利润可以表达为: 通过这个公式,看起来似乎是最大化每个竞价的期望利润,就是最大化整个推广计划的.但事实上不是,因为它有一个约束条件:所有的消耗加起来要等于预算.如果要最大化期望利润,是要每个请求需要更高的出价,那么你的竞

RTB撕开黑盒子 Part 4: Shady Bidding

在这篇文章中,我将告诉你"真实的出价"比你想的微妙,并且你可以使用基于ROI的pacing策略,不需要构建一个期望扣费的模型,你就可以得到完美的期望扣费模型. Same Same but Different 我们假设你按Part3中的广告实现了基于ROI的策略.现在有一个请求,你计算出它的pCTR为0.1%,如果广告主出价是$1,那么你愿意出价1000微元.你的pacing系统告诉你,ROI阈值是50%,你是否决定出价呢?答案是是否出价依赖于你认为这次展示会被扣费多少:如果你认为会扣费

OSPF的七种状态机

Router ID:在一个OSPF域内,用于标识每台路由器的ID. 选举规则: 1.手工指定(建议) 2.如果没有手工指定,使用Loopback接口中最大的IP地址作为Router ID 3.如果没有配置Loopback接口,那么使用物理接口中最大的IP地址作为Router ID 链路状态信息 链路信息包括有: 1.链路的类型 2.接口IP地址和掩码 3,链路上所连接的邻居路由器 4.链路的带宽(开销) Hello报文: 作用:发现建立并维护邻居关系 OSPF内的路由器在交换链路状态信息时,首先

HCNP学习笔记之OSPF协议原理及配置9-OSPF故障排除

如何去定位故障的原因以及准确的排除故障,都需要建立在对协议运作非常了解的基础上. 本文就是介绍OSPF故障排除的思路和操作. 用到的命令: display ip routing-table //先看路由,确定故障位置 display ospf peer      // 根据邻居关系,进一步确定故障点 display ospf error     // 华为,华3路由器专有,思科不支持,很强大 display current-configuration   //不推荐用,现网中配置数据量很大 di

C#编写记事本(高仿)

近一周写的关于记事本的代码,高仿记事本.本人C#入门不久,其中存在代码冗余,但懒得修改了. 经测试运行正常. 一.主窗体设计及代码 1 namespace BestEditor 2 { 3 public partial class Main : Form 4 { 5 private bool isTextChanged; 6 private string path;//记录文件路径(刚新建的文件路径为"",打开的文件路径为原路径) 7 8 public Main() 9 { 10 In

bzoj4539【HNOI2016】树

4539: [Hnoi2016]树 Time Limit: 40 Sec  Memory Limit: 256 MB Submit: 415  Solved: 157 [Submit][Status][Discuss] Description 小A想做一棵很大的树,但是他手上的材料有限,只好用点小技巧了.开始,小A只有一棵结点数为N的树,结 点的编号为1,2,-,N,其中结点1为根:我们称这颗树为模板树.小A决定通过这棵模板树来构建一颗大树.构建过 程如下:(1)将模板树复制为初始的大树.(2)

5.HCNA-HNTD——ICMP协议

Internet控制报文协议ICMP是网络层的一个重要协议.ICMP协议用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息.诊断和排除各种网络故障具有至关重要的作用.使用基于ICMP的应用时,需要对ICMP的工作原理非常熟悉. 学习目标: 1. 描述ICMP的应用场景 2. 理解常见的ICMP报文类型 3. 掌握ping和tracert的应用 ICMP是TCP/IP协议簇的核心协议之一,它用于在IP网络设备之间发送控制报文,传递差错.控制.查询等信息. ICMP Redirect重定