热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Facebook广告系统背后的Pacing算法

Pacing是Facebook广告系统中调节花费预算节奏的一个算法,一个类比就是竞跑的运动员:过早冲刺意味着在终点前就没劲了,但过晚冲刺也许你就没完成这次比赛。Pacing保证对所有的广告主在竞争前提下自动分配不同的广告预算。Pacing就是优化的核心组件让广告主获得最大的投资回报率(ROI)。

Facebook 上个月公布亮瞎双眼的 2015 年第四季度财报,其中日活用户超过 10 亿,营收达到 58.41 亿美金,而广告就占了 56.37 亿美金,更恐怖的是来自于移动广告业务的营收占了 80%。笔者在 Facebook 上面也曾经创建过营销页面,其实是拿到内部朋友一定限额的广告 (Campaign) 推广费用,当时惊讶投放的高效(太快了,不到 1 小时几十刀都没了),由于自己也做过广告系统,也做过很多对比,从形式多样性,功能的完整性,定位用户,实时性,数据分析报告各项综合指标 Facebook 都是行业翘楚,下面就是它们内部对广告系统 Pacing 算法的剖析,也适合广告技术入门查看。

首先介绍一些在线广告术语

  1. 每个广告 (Ad) 有一个出价 (Bid), 并有其在某情形下实际的点击率 (Click-Through-Rate, CTR)

  2. 广告按点击收费 (Charge per Click, CPC), 策略有一价计费 (First-Price, FP, 即广告出价多少则一次点击计费多少) 和二价计费 (Second-Price, SP, 即广告按下一位出价来支付点击价格, 更普遍的是 GSP,Google,Yahoo, LinkedIn 都是用这一种)

  3. 千次展现收费 (Cost Per Mille, CPM, 或 RPM, R for Revenue), 即对点击付费广告其展示一千次情况下的收入 (一价计费下等价于 1000*CTR*Bid), 或是展示广告的千次展现固定价格

  4. 预估点击率 (predict CTR, pCTR) 是指对某个广告将要在某个情形下展现前, 系统预估其可能的点击概率

Pacing 是 Facebook 广告系统中调节花费预算节奏的一个算法,一个类比就是竞跑的运动员:过早冲刺意味着在终点前就没劲了,但过晚冲刺也许你就没完成这次比赛。Pacing 保证对所有的广告主在竞争前提下自动分配不同的广告预算。Pacing 就是优化的核心组件让广告主获得最大的投资回报率(ROI)。

Facebook Pacing 算法是怎么工作的?

我们通过一个例子解释 Pacing 工作原理。下面会涉及到点击,同样的想法可以应用到浏览,转换,行为,到达率等。

  1. 一个广告主想对一个运动品牌做广告。每天预算 $10,以 CPC 计费,我们预先假定每次广告点击能产生 $5 的收益。

  2. 当他/她创建广告后,对 LINK_CLICKS (点击链接)做优化, bid_amount(出价)设置为 $5, billing_event(触发收费的事件)为 LINK_CLICKS, 基于这些为真的条件. 目标用户群为男性 25-35 岁。

  3. 广告主的利润是这些点击产生的价值减去花去的预算。

为了简化起见,我们假设这些机会(点击,展示等)的当天价格是提前知道的。这样我们能更清楚阐明点击价格和收入关系。这些假设是基于目标产生的机会进行建模。

下面我们通过三个例子去理解 Pacing 算法对广告主提供最大的价值。

情况一:没有 Pacing 算法的时候

没有 Pacing,广告主预算在一开始很短时间就被消耗干净(可能潜在的昂贵点击),前期竞争激烈,后期无竞争,形成一定的资源浪费。下面的图蓝色的点代表广告获得展示的机会,黄色的圈代表广告赢得展示,红线代表出价的价格。结果是平均成本会高些,但广告主会得到基于广告设置的最想要的投放。这叫做加速投放。

广告总花费 = $10

广告总点击价值 = 6 * $5 = $30

每次点击价值 = $5

预算 = $10

广告总收益 = $30 – $10 = $20

案例二:出价过低

这种情况下,追求最低的点击价格,但是广告主的预算最后没有能用完,最终的广告效果也最差。

广告总花费 = $4

广告总点击价值 = 4 * $5 = $20

每次点击价值 = $5

预算 = $10

广告总收益 = $20 – $4 = $16

案例三:Pacing 算法下的均衡状态

这时候,广告客户获得了最大的点击数,获取到了最大收益,同时也用完了每日预算。

广告总花费 = $10

广告总点击价值 =7* $5 = $35

每次点击价值 = $5

预算 = $10

广告总收益 = $35 – $10 = $25

简单的公式

从上面例子中,当我们在整段时间内使用稳定的出价(Pacing),广告主的价值相比没有 Pacing 或者出价过高过低,得到了最大化。为了实现目标,Pacing 期望通过学习其他的有同样目标用户的竞争广告,提出一个优化的竞价。这就是个简单公式。

最终竞价 (每次展示) = 优化竞价 (每次展示)* CTR where 优化竞价 <= max_bid

决定优化竞价的是 Pacing 算法的核心,包括反馈系统让 Pacing 记录下来。

CTR 是点击率。我们使用相同理念来看查看率(VTR) 和转化率(CVR)。这些值的精确性会稳步提高,也受各种因素影响,比如广告类型,受众,时间点,广告上下文等。

Pacing 的重要性

Pacing 在给定预算下最大化广告主的利润。它让广告主更加真实,和 Vickrey–Clarke–Groves (VCG 通过计算一个广告主参加拍卖给别的广告者带来的损失之和来定价的) 拍卖,这里面欺骗价值没有任何好处,也没有必要去想最大竞价应该设多少。如此可以避免拍卖系统中的特殊机会。

Pacing 保证了可预测的投放。这种稳定投放让每日的价格稳定并帮助广告主公平获取他们目标用户的门槛。

FAQ

问:我的广告没有被 pacing 算法正确的优化,可能是什么原因?

答:如果广告显示正常,有两个原因,一个是最优化的价格太低,保证你的竞价在建议价格范围内这样你才有机会赢得席位。对于竞争力的受众,你需要把价格调高到建议价格之上。

另外一个原因是目标受众过于狭窄。

如果这个广告投放过度,你可能有个很大的受众但快速消耗你的预算。

问: 当我改变了我的预算的时候,Pacing 会受到什么影响?

答:Pacing 会去计算新的最优出价,但这个过程会需要一定的时间,这段时间内的出价不是最优的,所以建议不要频繁的修改出价和预算的设置。

总结:Pacing 就是通过学习同一受众目标内的广告竞争环境来决定最优化出价。


推荐阅读
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了解决Facebook脸书面试题中插入区间的方法,通过模拟遍历的方式判断当前元素与要插入元素的关系,找到插入点并将新区间插入。同时对算法的时间复杂度和空间复杂度进行了分析。 ... [详细]
  • Hello.js 是一个用于连接OAuth2服务的JavascriptRESTFULAPI库,如Go ... [详细]
  • 热点追踪深度探讨实地探访商务合作当一个哲学家遇到大数据分析会发生什么?如果告诉你,这个组合曾帮助美国“猎杀拉登”,你是否会惊讶到瞪眼睛。在 ... [详细]
author-avatar
球之音_970
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有