小赖子的英国生活和资讯

广告实时竞价算法 (Real Time Bidding) 比赛 – 简介

阅读 桌面完整版

RTB 也就是 Real Time Bidding 是近几年新兴的广告行业.拿 adsense 来说吧, 我们在博客上比如放上 336×280 的广告位,同时 adsense 设置里又允许 Ads Networks

adsense-pinyou-1024x496 广告实时竞价算法 (Real Time Bidding) 比赛 - 简介 互联网 技术 数据结构与算法

Adsense and pinyou

这样在用户打开该页面时, adsense 会联系 比如 pinyou 广告交易平台 (Ads Exchange), 那么 AdX 会组织一次竞价,可以理解成广告出租位拍卖.并会将多家 DSP (也就是 Demand Service Platform 需求方平台) 发送当前用户的一些信息,还有URL,User Agent (含有一些浏览器的信息), 等.这时候 DSP也就可以决定是不是要拍了, 如果要的话给钱多少.

当然DSP需要在 100ms 内做出决定(硬规定),太慢广告显示慢会影响用户体验.出价最高的得到展示广告的机会,但需支付出价第二高的费用,这个和 Ebay 有点类似.

为什么要这么麻烦呢?这里有一个定向投放广告的用途,比如一个老奶奶上上网,你给她投放跑车的广告就是浪费,因为基本上不可能有转换率(也就是真正感兴趣的用户点击广告并注册什么的;一般来说广告主对于什么样的行为是有效的转化会有自己的定义).DSP的存在是利用技术手段帮助publisher~advertiser实现利益的最大化.

DSP需要快速的决定竞拍的价钱,这里头就有学问了.根据已经有的信息进行大数据分析得到一个竞价模型.这个模型可以很简单也可以很复杂,可以考虑很多因素.比如周末的点击率要比平时的低,比如用IE的人更容易去点(文化水平比较低?),比如广告位置也有关系,Above the fold 和放右边的广告比较有人点, 等等.

2013年, 品友公司 有一个100万元的RTB算法大赛, 我也就打打酱油. 参加了三季, 但榜上有名的是第一季和第二季.

品友互动2013广告算法证书 (Certificate)

品友算法大赛排名

品友算法大赛排名

举办方有提供一些数据下载用于分析统计,并因此得到数学模型. 最后面实现的时候只需要完成 一个 getBidPrice 的函数就可以. 如果是随机的,也就是每次出价完全随机,实现则是:

    def getCTR(self, bidRequest):
        ctr = random.random()
        return ctr

    def getBidPrice(self, bidRequest):
        bidPrice = -1
        ctr = self.getCTR(bidRequest)
        if ctr > self.baseCTR:
            bidPrice = 300 * ctr
        return bidPrice

这样的模型并不能得到最优解,但是表现也不至于太差太差.至少在所有数据面前, 表现都很稳定,不会出现模型依赖某些数据(过分拟合的现象).

其实, 简单的可以用机器(统计)学习算法, 比如 Bayes 算概率, 可惜当时对机器学习不太了解.

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version