Facebook 广告系统背后的 Pacing 算法

简介:

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

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

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

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

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

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

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

Facebook Pacing 算法是怎么工作的?

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

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

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

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

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

下面我们通过三个例子去理解 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 就是通过学习同一受众目标内的广告竞争环境来决定最优化出价。

本文转自d1net(转载)

相关文章
|
5月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
5月前
|
算法
基于MPPT算法的光伏并网发电系统simulink建模与仿真
本课题基于MATLAB/Simulink搭建光伏并网发电系统模型,集成PV模块、MPPT算法、PWM控制与并网电路,实现最大功率跟踪与电能高效并网。通过仿真验证系统在不同环境下的动态响应与稳定性,采用SVPWM与电流闭环控制,确保输出电流与电网同频同相,满足并网电能质量要求。
|
6月前
|
数据采集 边缘计算 算法
遗传算法+多目标规划算法+自适应神经模糊系统(Matlab代码实现)
遗传算法+多目标规划算法+自适应神经模糊系统(Matlab代码实现)
171 4
|
6月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
421 2
|
6月前
|
机器学习/深度学习 自然语言处理 算法
基于改进鲸鱼优化算法的微网系统能量优化管理研究(Matlab代码实现)
基于改进鲸鱼优化算法的微网系统能量优化管理研究(Matlab代码实现)
269 1
|
6月前
|
机器学习/深度学习 算法 算法框架/工具
256KB内存约束下的设备端训练:算法与系统协同设计——论文解读
MIT与MIT-IBM Watson AI Lab团队提出一种创新方法,在仅256KB SRAM和1MB Flash的微控制器上实现深度神经网络训练。该研究通过量化感知缩放(QAS)、稀疏层/张量更新及算子重排序等技术,将内存占用降至141KB,较传统框架减少2300倍,首次突破设备端训练的内存瓶颈,推动边缘智能发展。
411 6
|
7月前
|
机器学习/深度学习 边缘计算 算法
【状态估计】基于LMS类自适应滤波算法、NLMS 和 LMF 进行系统识别比较研究(Matlab代码实现)
【状态估计】基于LMS类自适应滤波算法、NLMS 和 LMF 进行系统识别比较研究(Matlab代码实现)
248 3
|
6月前
|
机器学习/深度学习 存储 算法
基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)
基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)
182 0
|
8月前
|
算法 数据可视化 数据挖掘
基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码
本内容展示了基于EM算法的高斯混合模型(GMM)聚类实现,包含完整Python代码、运行效果图及理论解析。程序使用三维数据进行演示,涵盖误差计算、模型参数更新、结果可视化等关键步骤,并附有详细注释与操作视频,适合学习EM算法与GMM模型的原理及应用。
|
7月前
|
机器学习/深度学习 人工智能 算法
【多智能体编队】基于自适应控制算法非线性输入的多智能体系统编队控制研究(Matlab代码复现)
【多智能体编队】基于自适应控制算法非线性输入的多智能体系统编队控制研究(Matlab代码复现)
185 0

热门文章

最新文章