计算广告基础概念
广告类型
- 原生广告
原生广告在视觉形式上与广告投放到的应用内容界面相契合,可为用户带来浑然一体的体验。这种类型的广告就是原生广告。(这个就是不容易让人发现它是一个广告)
- 搜索广告
搜索广告是以上下文查询词为粒度进行受众定向,并按照竞价方式售卖和CPC(即“按点击收费”)结算的广告产品。例如大家在百度上面搜索python,就会搜索出一堆培训机构放在前面,这就是搜索广告。
- 信息流广告
信息流广告是位于社交媒体用户的好友动态、或者资讯媒体和视听媒体内容流中的广告。
首先它是原生广告,也就是和内容放在一起很难区分。例如大家在刷朋友圈的时候会有一条朋友圈内容挺具有真情实感的,有文字感想还有配图,但是一看备注是拼多多。
- 直播广告
定向过滤、频控流控、打散
定向过滤
定向:在召回之前,每个广告都有自己的受众群体,例如这个广告只投男性之类的constraint。
过略:例如用户已经安装了该app,那如果还投该app的下载广告就不合理。所以会设置一些过滤规则,这个也可以做在定向中,或者模型预估之后吧。
频控/流控
频控:用户历史看过哪些广告,那这些广告再次曝光的话需要控制下频率。
流控:广告的投放速度控制,如果一直投某类广告,预算消耗过快也是广告主不想看见的。
这两步可以做在定向中,也就是模型预估前,也可以做在模型预估之后,看架构能力吧。
打散
最终投放的广告很有可能是类似的,所以需要将其打散到不同位置或者不同次曝光中。我理解一般是预估之后。
RTA/RTB
RTA就是在广告平台直投广告里,接入一个realtime api,在定向阶段,让广告主自己做定向。
RTB就涉及到了adx和dsp,广告平台提供流量位和用户等信息,然后通过adx将这些信息发送到dsp(广告主平台),他们基于这个流量,挑选出最好的广告创意(ctr和cvr预估)做出价,然后再发送给adx做竞价。现在oppo 信息流里就有adx广告
参考文章:
竞价/定价模式
分为两个阶段:竞价阶段+定价阶段。
- 竞价阶段:通过每个广告的bid,ctr,cvr,得到该广告的ecpm,按照ecpm排序进行竞价
- 定价阶段:为了得到truthful bidding,用GSP和VCG的方式来进行定价,这里会把ecpm(预计千次投放收益)转换成auction price(千次投放计费)
几种方式
CPM
最简单的方式,按照投放计费:
- 竞价:ecpm = bid * 1000,bid为单次投放出价
- 定价:auction_price = f(ecpm),price = auction_price / 1000,price为单次投放计费
CPC
按照点击计费:
- 竞价:ecpm = click_bid ctr 1000,click_bid为单次点击出价
- 定价:auction_price = f(ecpm),price = auction_price / ctr / 1000,price为单次点击计费
CPA/oCPC/oCPM
按照转化(action)计费:
- 竞价:ecpm = action_bid ctr cvr *1000,action_bid为单次转化出价
- 定价:注意,这里三种方式有所区别
- CPA:price = auction_price / ctr / cvr / 1000,price为单次转化计费。这种方式的问题在于,广告主可能作弊,因为他们如果不回传转化,就能薅羊毛了。
- oCPC:price = auction_price / ctr / 1000,price为单次点击计费。如果是一价计费,那么price = action_bid * cvr
- oCPM:price = auction_price / 1000,price为单次投放计费。
- 从CPA -> oCPC -> oCPM,平台风险越来越低,广告主风险变高。
字节现状:CPC -> oCPC -> CPA(中小广告主) + oCPM(其他)
如果ocpc模式下,预估cvr偏高会怎么样?
最近发生了个事故,就是cvr预测失败,恒定返回0.5,达魁说这就会对广告主造成损失。理由如下:
- 本身来讲,cvr和ctr预测不好,只会影响广告排序,不会直接造成损失。
- 同样不会影响流失训练,无非负例变多,但会影响online auc,因为预估得不准了嘛
- ocpc计费价格,在一价模式下,price = action_bid * cvr,如果cvr偏高,那么我们对单次点击的收费就会偏高,所以会对广告主多计费,但是广告主如果看后验cvr的话,发现转化没那么高,或者和以前相比,同样的预算,带来的实际收入却变低了,roi变低,那么广告主利益就受损,我们需要对广告主进行赔偿。
关于广告主价值和游戏ecpm
- 我们之前排序的时候,会计算广告的ecpm这个只是针对某个用户的,ctr*bid
- 计算广告主价值(ad_estimated_ecpm)时,统计的是所有广告的,所以是会按照实际的点击次数/转化次数 bid来算的(并不是针对某个用户的ctr bid),只是说广告主价值还是预估的,并非实际消耗的,因为实际扣费会涉及到风控以及二价计费等。
- 游戏归一化曝光价值也是如此(game_ecpm),只是会用点击次数 * ltv / 曝光总数,就有点ctr的意思在里面。
- 广告和游戏的arpu的话,就是实际产生的收入了。