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), 即对点击付费广告其展示一千次情况下的收入 (一价计费下等价于1000*CTR*Bid), 或是展示广告的千次展现固定价格
预估点击率 (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,广告主预算在一开始很短时间就被消耗干净(可能潜在的昂贵点击),前期竞争激烈,后期无竞争,形成一定的资源浪费。下面的图蓝色的点代表广告获得展示的机会,黄色的圈代表广告赢得展示,红线代表出价的价格。结果是平均成本会高些,但广告主会得到基于广告设置的最想要的投放。这叫做加速投放。
广告总点击价值 =6* $5= $30
每次点击价值 = $5
预算 = $10
广告总收益 = $30– $10= $20
案例二:出价过低
这种情况下,追求最低的点击价格,但是广告主的预算最后没有能用完,最终的广告效果也最差。
广告总点击价值 =4* $5= $20
每次点击价值 = $5