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

Too Little of a Good Thing

推广计划的全部利润可以表达为:

通过这个公式,看起来似乎是最大化每个竞价的期望利润,就是最大化整个推广计划的。但事实上不是,因为它有一个约束条件:所有的消耗加起来要等于预算。如果要最大化期望利润,是要每个请求需要更高的出价,那么你的竞价次数就会少,结果就是你可能整体的利润下降了。然而这并不意味着你应该在期望利润低时竞价,我的意思是你应该去权衡利润和消耗。

这个问题在很久之前就被经济学者注意到了,我们要使用的衡量标准是ROI,它是计算投资回报率。

如果你将每个请求都视为一次投资,你的反馈控制系统会告诉你现在是超速消耗或是次速消耗,你可以提高或是降低最小期望ROI阈值。你通过这个阈值决定是否竞价,而不是用最小期望利润阈值。在金融领域,这个阈值称为最低可接受的回报率(minimum acceptable rate of return (MARR))或门槛收益率(Hurdle Rate)。

A Thought Experiment

下面是一个假设的实验,我们通过它来说明基于ROI的策略是优于基于利润的。

假设一个推方计划预算是$1000,一次动作的扣费(CPA)是$1,动作可以是展示后的事件,比如点击或是转化或是看视频。假设A和B都有无限量的相同请求,所不同的是它们的响应率(比如关注点击,响应率就是点击率,关注转化,响应率就是转化率)和价格。我们进一步假设我们有很准确的响应率预估和消耗预测算法。我们设在A和B中曝光期望价值都高于市场价值,那么胜出概率是1。

 

Response Rate

Value

Cost

Surplus

ROI

Spend

Imps

Actions

CPA

A

0.1%

u$1000

u$750

u$250

33%

$1000

1.333M

1333

$0.75

B

0.05%

u$500

u$250

u$250

100%

$1000

4M

2000

$0.50

在A和B中利润是一样的,但在B中,有更高的ROI,所以它有着更低的CPA。

现在再假设一个实验:如果在A和B的请求是混合的,还有一个CTR特别低价格高的X流量,那我们的两种策略会如何呢?

Pacing Strategy

A Imps

B Imps

X imps

Actions

CPA

surplus-based

1M

1M

0

1500

$0.66

ROI-based

0

4M

0

2000

$0.50

两种策略都成功地没有购买X流量,因为无论从利润还是ROI的角度看,它都不是最优的。但是基于利润的策略,不能区分A和B的流量(它们有相同的利润),所以分别购买了1M的流量从A和B。而基于ROI的策略会像忽略X一样忽略来自A的流量,而只关注有着高ROI的B类型流量。

所以基于ROI策略的会比基于利润的策略有着更低的CPA。

Conclusion

广告主,就像基金经理,用ROI来决定他们使用什么渠道或是策略进行投资。基于ROI的策略,你的预算会消耗在最有效的曝光上,即最小化推广计划的CPA,且最大化ROI和利润。

RTB撕开黑盒子 Part 3: Beyond Surplus的更多相关文章

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

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

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

    Part 0介绍了RTB的胜出价格会在凌晨陡升.我们还介绍了一个Pace系统,如果这个系统所有的DSPs都用,那陡升的问题就会消失.Part 0中的系统中含有一个隐式的假设:任何两个请求都认为是相同的 ...

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

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

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

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

  5. [DEMO] 互联网广告RTB机制简介

    前言: 传统的互联网广告一般都是大流量网站在页面中留出一定空位,某些推广商家通过买位的方式来展示自己的广告. 我们这里引入一个案例:假设大访问量网站为博客园,想要广告推广的公司为阿里云平台. (场景为 ...

  6. python中几个常见的“黑盒子”之 列表list

    python常见的数据类型有:字符串,布尔类型,整数,浮点数,数字,日期,列表,元祖,字典.相信前面6个大家都非常的熟悉,但是对于python的列表,元祖,字典我有时候一直在想其内部的实现是怎么样子的 ...

  7. RTB交接

    RTB产品测试进度 元数RTB产品 元数的产品已经测过两个版本,分别是1.1版本和1.2版本,目前线上跑的是1.2版本.程序线上情况目前正常,没有问题. 元数功能账号为:yuanshu  需用root ...

  8. RTB

    RTB —— Real Time Bidding 的简称,就是实时竞价.跟传统购买形式相比,RTB是在每一个广告展示曝光的基础上进行竞价,就是每一个PV都会进行一次展现竞价,谁出价高,谁的广告就会被这 ...

  9. [转]浅析AD Exchange——RTB模式

    在上一篇文章中,我们了解了程序化购买,并且知道程序化购买的最基本的一种RTB的竞价模式,了解了DSP.SSP.Ad Exchange等概念,不清楚的同学可以看看上一篇文章<程序化购买>. ...

随机推荐

  1. 将图片转为ASCII字符画

    原文:将图片转为ASCII字符画 Copyright 2012 Conmajia 源代码下载:点击这里 什么是字符画?就是用ASCII字符来近似组成图像,就像这样: ╭╮ ╭╮ ││ ││ ╭┴┴—— ...

  2. 再议 js 数字格式之正则表达式

    原文:再议 js 数字格式之正则表达式 前面我们提到到了js的数字格式<浅谈 js 数字格式类型>,之前的<js 正则练习之语法高亮>里也提到了优化数字匹配的正则.不过最近落叶 ...

  3. C#函数式编程-序列

    C#函数式编程之序列 过了许久的时间,终于趁闲暇的时间来继续将函数式编程这个专辑连载下去,这段时间开头是为IOS这个新方向做准备,将OC的教程写成了SWIFT版,当然我个人是支持Xamarin,但是我 ...

  4. SSAS系列——【08】多维数据(程序展现Cube)

    原文:SSAS系列--[08]多维数据(程序展现Cube) 1.引用DLL? 按照之前安装的MS SQLServer的步骤安装完成后,发现在新建的项目中“Add Reference”时居然找不到Mic ...

  5. 关于android中sqllite对时间的操作

    sql 中有时间的类型,date,time,datetime,方便关于记录的维护,下面一个demo演示怎么在每条记录中默认增加时间 源码下载地址 http://www.codes51.com/code ...

  6. 查询DBlink创建

    DBlink创建 查询 博客分类: Oracle   当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据 ...

  7. 探究Java中Map类

    Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.       Map的接口       Map---实现Map       Map.Entry--Map的内部 ...

  8. Android自动化测试框架新书:交流

    大家觉得编写一本描述MonkeyRunner原理分析的书籍如何?估计大概10万字左右.内容大概分布如下: Monkey实现原理: 去描述运行在目标安卓机器的monkey是如何运行并处理MonkeyRu ...

  9. hdu1005 Number Sequence

    f(n-1)和f(n-2)所有组合都49种子,这期可达49,但f(n-1)=f(n-2)=0如果是,列的总数目0.话题条件f(1)=f(2)=1.因此排除这样的情况.的最长期限48. #include ...

  10. Windows Azure VM两shut down 道路

    今天调查Azure当价格,找到下面的语句,来自http://azure.microsoft.com/en-us/pricing/details/virtual-machines/ * If my de ...