在本文中,我将解释如果要对整个推广计划最大化利润,决定是否应该出价的应该是期望回本率(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. ArcGIS网络分析之Silverlight客户端路径分析(三)

    原文:ArcGIS网络分析之Silverlight客户端路径分析(三) 首先贴上最终的效果图: a.路径查询 2.最近设施点查询 3.服务区分析 说明: 1.以上的示例使用的数据是随意在ArcMap中 ...

  2. Yii Framework2.0开发教程(10)配合mysql数据库实现用户登录

    1.首先在mysql创建一个存用户的表格 create table test_user ( user_id bigint(20) unsigned not null auto_increment co ...

  3. curl 简单使用

    cURL -- Command Line URL viewer -u username:password 以 Basic 方式发送用户名和密码 -d 以 POST 方式发送数据 -X 支持其它动词, ...

  4. github basic usage in windows

    1. create a new accout, create orginazation, create repo 2. install git in your local pc Note: you c ...

  5. MVC应用程序使用Web Services(asmx)

    原文:MVC应用程序使用Web Services(asmx) 这次,我们练习MVC应用程序中,应用web service.先在MVC应用程序中创建一个目录Services,将用来存储Service.a ...

  6. Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁可是不能切换

    Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁可是不能切换 1. 可能你的Alt+Tab键被别人禁用了,试下以下的方法: 1 2. 为什么要禁用Alt+Tab 1 3. ALT+TAB ...

  7. MySQL 存储过程 经常使用语法

    MySQL 存储过程是从 MySQL 5.0 開始添加的新功能.存储过程的长处有一箩筐.只是最基本的还是运行效率和SQL 代码封装.特别是 SQL 代码封装功能,假设没有存储过程,在外部程序訪问数据库 ...

  8. IOS被遗忘的知识

    IOS ARC项目使用非ARC文件 1.自己的旧项目没有使用ARC,可是引入的第三方库却是使用了ARC的. 对于第一个情况,给採用了ARC的源文件,加入-fobjc-arc选项 2.自己的新项目使用了 ...

  9. Visual Studio 单元测试之二---顺序单元测试

    原文:Visual Studio 单元测试之二---顺序单元测试 此文是上一篇博文:Visual Studio 单元测试之一---普通单元测试的后续篇章.如果读者对Visual Studio的单元测试 ...

  10. java基础知识汇总

    1.     类的访问控制权限共有两种:public和默认.默认级别的类只能被同一个包中的类看到,包外不可见. 2.     类成员的访问权限共有四种:public,protected,private ...