原文:http://ju.outofmemory.cn/entry/116780

一分钟读懂互联网广告竞价策略GFP+GSP+VCG

两个广告位,三家广告主竞价,广告平台究竟应该制定广告竞价策略呢?这是本文即将分享的一个问题。

一、前序知识-传统竞价策略
英式拍卖(English Auction)
英式拍卖又叫公开增价拍卖OAB(Open Ascending Bid),卖家提供物品,在物品拍卖过程中,买家按照竞价阶梯由低至高喊价,出价最高者成为竞买的赢家。为了保证竞价收敛,一般会为竞价设定一个终止时间。这种模式非常容易理解,平时电影电视中经常看到。

荷兰式拍卖(Sealed-bid Auction)
荷兰式拍卖亦称公开减价拍卖ODB(Open Descending Bid),其过程与英式拍卖过程相反:竞价由高到低依次递减直到第一个买家应价时成交的一种拍卖方法。

第一价格密封拍卖FPSB(The first-price sealed auction)
第一价格密封拍卖,买方将自己的出价写在一个信封里,众多买方进行投标,同一时间揭晓信封价格,出价最高者竞价成功。

第二价格密封拍卖SPSB(The Second Price Sealed Auction)
又称为维克里拍卖(Vickrey Auction),其拍卖过程和第一价格密封拍卖过程一样,由出价最高的买家获得物品,但他只需要支付所有投标者中的第二高价。

二、核心章节-互联网广告竞价策略
广义第一价格GFP(Generalized First Price)
和传统第一密封竞价类似,出价高者得,需要支付自己提出的报价。
互联网广告竞价(例如搜索广告位竞价)如果按照这种形式竞价,缺点是:
1)平台方收益会非常不稳定;
2)竞价效率不高;

价格的波动:
B -> 2.01(出价超过2,C就会放弃出价)
A-> 2.02
B-> 2.03
A-> 2.04
A和B均会采取“微小差值策略”,直到一方放弃(此例中B会比A先放弃)。
一方放弃之后,另一方失去的竞争者,从而再次把价格拉低(A想,我没有竞争者了,为啥还出价这么高)。
放弃方得知价格被拉低后,又会开始新一轮的“微小差值策略”。

于是,广告位的价格极不稳定,呈现上图中的态势,Yahoo和Google初期都是采用这种策略,直到2002年Google提出了GSP竞价算法。

广义第二价格GSP(Generalized Second Price)
和传统第二密封竞价类似,出价高者得,需要支付出价第二高着提出的报价再加上一个最小值。

此时:
A的实际出价为4+0.01=4.01
B的实际出价为2+0.01=2.01
C竞价失败
GSP是一种稳定的竞价方式,可操作性很强,现阶段几乎所有的互联网广告平台都使用这一种竞价方式。
GSP的不足是,它也不是一种“鼓励讲真话”的机制,说实话不一定形成纳什均衡,竞价的结果不一定全局最优化的。于是,VCG竞价算法出现了。

VCG(Vickrey-Clarke-Groves)竞价机制
广告主为网民的一次点击支付他对其他广告主造成的效用损失。

上面的竞价机制描述比较晦涩,举例以说明定价过程:
1)假设A不参加竞价,B和C的社会总效用为200*4 + 100*2 = 1000元
2)A如果参加竞价,B和C的社会总效用为100*4 + 0*2 = 400元
3)因为A参加了竞价,导致B和C的社会总效用损失了1000 – 400 = 600元
4)于是,A需要为每一次点击支付600 / 200 = 3元
但实际应用中,受损者的社会总效用损失难于计算,故VCG竞价机制几乎没有谁真的来使用。

一分钟读懂互联网广告竞价策略GFP+GSP+VCG的更多相关文章

  1. 【转】一分钟读懂互联网广告竞价策略GFP+GSP+VCG

    参考这篇文章: http://ju.outofmemory.cn/entry/116780 一分钟读懂互联网广告竞价策略GFP+GSP+VCG 两个广告位,三家广告主竞价,广告平台究竟应该制定广告竞价 ...

  2. 一片非常有趣的文章 三分钟读懂TT猫分布式、微服务和集群之路

    原文http://www.cnblogs.com/smallSevens/p/7501932.html#3782600 三分钟读懂TT猫分布式.微服务和集群之路   针对新手入门的普及,有过大型网站技 ...

  3. 一分钟读懂低功耗蓝牙(BLE)连接数据包

    一分钟读懂低功耗蓝牙(BLE)连接数据包 1.概述 BLE 连接过程中有三个重要的数据包:SCAN_REQ, SCAN_RSP 和 CONNECT_REQ. SCAN_REQ: 扫描请求,由主设备(M ...

  4. 五分钟读懂UML类图

    平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧: 一.类的属性的表示方式 在UML类图中,类使用包含类 ...

  5. 五分钟读懂UML类图(转)

    平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧: 一.类的属性的表示方式 在UML类图中,类使用包含类 ...

  6. 五分钟读懂UML类图(转)

    平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧: 一.类的属性的表示方式 在UML类图中,类使用包含类 ...

  7. 一分钟读懂MySQL分布式消息的处理

    在很多MYSQL环境中,对于MYSQL的分布式事物处理一直是个难题,在当前互联网环境中,大多数应用系统是基于SOA的很多复杂接口之间的调用,并且事物之间的处理优先级也是有先后的,所以对于实际入库的数据 ...

  8. 三分钟读懂TT猫分布式、微服务和集群之路

    针对入门新手的普及,有过大型网站技术架构牛人路过,别耽误浪费了时间,阅读之前,请确保有一定的网络基础,熟练使用Linux,浏览大概需要3-5分钟的时间,结尾有彩蛋. 目录 分布式 微服务 负载均衡集群 ...

  9. 三分钟读懂TT猫分布式、微服务和集群之路 (转)

    http://www.cnblogs.com/smallSevens/p/7501932.html 针对新手入门的普及,有过大型网站技术架构牛人路过,别耽误浪费了时间,阅读之前,请确保有一定的网络基础 ...

随机推荐

  1. 让Win2008+IIS7+ASP.NET支持10万并发请求

    今天下午17点左右,博客园博客站点出现这样的错误信息: Error Summary: HTTP Error 503.2 - Service Unavailable The serverRuntime@ ...

  2. LightOJ 1118 - Incredible Molecules (两圆面积交)

    1118 - Incredible Molecules   PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit: ...

  3. TCP选项之SO_RCVBUF和SO_SNDBUF

    每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的滑动窗口便是依赖于这两个独立的buffer以及此buffer的填充状态.接收缓冲区把数据缓存入内 ...

  4. WebLogic使用总结(二)——WebLogic卸载

    一.WebLogic 12c的卸载 WebLogic的卸载是非常容易的,找到WebLogic的卸载程序,如下图所示: 启动卸载程序,如下图所示:

  5. AngularJS使用angular-formly进行表单验证

    当验证表单中有很多字段时,这时候可能希望把html的生成以及验证逻辑放到controller中,在页面,也许是这样的: <some-form fiedls="vm.someFields ...

  6. Android之 系统启动流程

    在前一篇文章"Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --&g ...

  7. UIWindow 介绍:概述、作用、主要属性及方法

    概述: UIWindow 类是 UIView 的子类,用于管理.协调应用中显示的窗口,其两个最重要的职能就是 容器,给 view 提供展示的区域: 将事件(例如:点击事件.拖拉事件等)分发给 view ...

  8. Android之仿心跳动画实现

    // 按钮模拟心脏跳动 private void playHeartbeatAnimation() { AnimationSet animationSet = new AnimationSet(tru ...

  9. nodejs ffi(DLL)

    npm install ffi Error: The specified module could not be found. npm rebuild var ffi = require('ffi') ...

  10. dip和px的相互转化

    /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { fina ...