广告中oCPX到底是如何进行优化的
自從Facebook引入oCPM出價以來,國內的頭條廣告、微信廣點通、百度信息流都陸續(xù)推出了自己的oCPX出價,oCPX出價已經(jīng)成為主流廣告投放平臺的標配。
簡單而言,oCPX是一種出價機制,允許廣告主按照轉化行為成本出價;假設對于游戲類的廣告主,希望優(yōu)化App的激活,那么廣告主在投放系統(tǒng)中設置了激活成本之后,算法就會根據(jù)以往轉化數(shù)據(jù)和廣告主的出價,自動篩選有價值的人群,針對高激活概率的人提高出價贏得廣告曝光,對低激活概率的人群降低出價減少廣告曝光以減少廣告浪費。
常見的廣告出價方式還有CPM、CPC。
- CPM:Cost Per Mille,每千次曝光成本,即按照曝光次數(shù)出價,如微信朋友圈視頻形式廣告在上海就按照¥180一千次曝光扣費,不管你是否點擊了廣告。這在短期內顯然是最有利于媒體的,因為它不用care本次曝光是否有效;但是為什么說是短期?很簡單,廣告主又不是傻子,若發(fā)現(xiàn)廣告后續(xù)轉化一直很差,勢必會減少在該媒體的投放。
- CPC:Cost Per Click,按照點擊出價,如果廣告只有曝光沒有點擊,就不扣費;看似比較公平,但是廣告主需要大量的測試,才能找到最優(yōu)的投放方法,其實還是有一部分點擊是浪費的,這對于媒體也是損失。
于是oCPX模式就應運而生,它能幫助廣告主優(yōu)化更深層次的轉化行為,同時提升有效點擊,提高媒體受益。
這段時間在網(wǎng)上找到一篇淘寶的關于oCPC論文,邏輯很清晰,在這里簡單轉述一下。
文章細節(jié)很多,沒興趣看的同學只要關注以下幾點:
先定義:
為了簡化說明,做兩個假設:
要維持或者提升ROI,那么只需要保證 b1/b0 ≤ p/h。
b1代表算法優(yōu)化后的出價;舉個例子,假設本次曝光,預計能帶來1.5倍的轉化價值,那么只要優(yōu)化后的出價/廣告主出價小于等于1.5倍,那么整體的ROI是不會下降的;反之,若預估轉化價值低于歷史均值,那么降低出價;由于b0、p和h都已知,那么只需計算b1,滿足該約束即可。
真實廣告投放環(huán)境中,為了兼顧品牌安全和賬戶穩(wěn)定,將b1/b0的范圍控制在[1-α, 1+α]范圍之內,淘寶論文中將α值設置為0.4,即廣告最高出價不會超過廣告主設定的140%,下限也不會低于廣告主設定的60%。
- 若p/h≥1,那么系統(tǒng)優(yōu)化后出價b1的下限l(b)=b0,出價上限u(b)=b0*min(1+α, p/h))(因為有ROI約束在,不能突破p/h的約束);
- 若p/h<1,那么系統(tǒng)優(yōu)化后出價b1的下限是l(b)=b0*(1-α),上限是u(b)=b0。
通過以上約束,也就能實現(xiàn)我們經(jīng)常說的:對于轉化概率高的流量(p/h>1,即本次廣告轉化率比歷史平均轉化率要高)提高出價,獲得更高展現(xiàn)概率;反之,對于轉化概率低的流量(p/h<1)降低出價,減少展現(xiàn)機會。
那么問題來了,若多個廣告競爭,到底誰贏得此次出價?
廣告排序我們都知道采用了eCPM排序,eCPM=b0*pCTR,eCPM高者贏得廣告展現(xiàn)機會。那么在ROI約束下的,eCPM能夠取到的最大值即上限u(eCPM)=pCTR*u(b),eCPM能夠取到的最小值即下限l(eCPM)=pCTR*l(b);
淘寶給定的排序機制是:按照eCPM排序,同時保證各方利益總和最大。
各方利益總和的計算,淘寶給出了兩個公式:
f(1) = pCTR1 * pCVR1*V
f(2) = pCTR2 * pCVR2*V+β*CTR2*b0
f(1)計算的是廣告帶來的所有GMV;f(2)計算的是廣告帶來的GMV和平臺的廣告收益。需要指出的是,f可以擴展,因此可以優(yōu)化任何目標;這里認為f是單調遞增函數(shù),隨著系統(tǒng)調整后的出價b1提高,收益也提高。f(1)雖然沒有將b1作為參數(shù),但是假設b1的增加,能拿到更好的資源位從而帶來更高的CTR、更加優(yōu)質的流量。
廣告排序過程如下(稍微有點繁瑣,請記住每個字母代表啥意思):
① 對候選廣告池子A中每一個廣告計算f(u(eCPM)),按倒序排序;即按照最高出價來計算f,由于假設f是b1的遞增函數(shù),那么按照b1的上限值來計算,理論上是能保證f最大,即保證各方收益總和最大;
② 計算所有備選廣告中,所有eCPM下限的最大值t=l(eCPM);
③ 按順序,找到第一個滿足u(eCPM)≥t的廣告k,k廣告贏得此次競價,并將該廣告移出A池子;即,只要某條廣告最高出價下的eCPM大于其他廣告的最低出價下的eCPM,就能贏得此次廣告曝光。這是為了保證媒體收益,如果只按照f排序而不考慮eCPM,那么可能對于媒體而言是一個虧本的買賣;
④ 比較剩下所有廣告的最大出價下的eCPM即u(eCPM)與上一個贏得廣告k的u(eCPM),取兩者當中最小值,這樣就能保證已經(jīng)贏得展現(xiàn)機會的廣告k的eCPM,在所有候選廣告中是最大的;若廣告i的eCPM上限u(eCPM)被調整,也就意味著廣告i的eCPM上限u(eCPM)大于廣告k的u(eCPM),將其調整為廣告k的u(eCPM)。
此時,那么廣告i的出價同樣需要被調整,看淘寶的代碼更直觀一點:
- 第一步:u(i-eCPM)=min(u(i-eCPM),u(k-eCPM));
- 第二步:u(b)=min(u(b),u(i-eCPM)/pCTR);
第一步首先比較廣告i的上限eCPM與已經(jīng)贏得展現(xiàn)機會的廣告K的上限eCPM,取兩者 當中最小值,這就能保證已經(jīng)贏得曝光的廣告k的eCPM是最大的。
第二步,更新廣告i的出價上限;如果u(i-eCPM)在第一步被更新了,那么廣告i的出價 在第二步也會被更新;需要注意的是,由于出價上限改變了,那么廣告i的f(u(eCPM)) 同樣會被更新(由于f()是一個單調遞增函數(shù),f()會減小);
至于這里為什么要調整剩余候選廣告上限eCPM,使其不高于勝選廣告的上限?我的理解是(不一定準確):首先是兼容eCPM排序機制,也就是保證了媒體收益最大化;其次,兼顧f(u())排序是為了保證平臺、廣告主和消費者的利益。
重復以上4個步驟,直至廣告數(shù)量填充滿所有廣告位,或者所有沒有廣告贏得該次展現(xiàn),此時結束循環(huán),并將所有廣告出價b1設置為u(eCPM)/pCTR,也就是所有廣告按照上限出價。
投放啟示:
① 單純從邏輯上看,真實出價是對廣告主最優(yōu)的策略。若廣告主最初出價b0小于其真實成本,那么拿不到預期的流量,這對廣告主不利;若最初出價b0高于其真實成本,這對拿量有好處,但是會導致模型會不斷往該出價水平去靠近(p(c|u,a)/h(c|u,a)不斷趨近于1),后期要控成本時勢必需要重新積累數(shù)據(jù)重新學習;
② 開啟oCPC之前,需要穩(wěn)定的投放。換句話說,用戶轉化路徑是走得通且成本達到預期的。比如目前雖然激活成本達標,但是后續(xù)的轉化(注冊、購買、申請貸款等等)都還不達標,即使開啟oCPC去優(yōu)化激活意義也不大,因為這樣帶來的激活用戶后續(xù)轉化率也不會存在很大變化。
這是淘寶oCPC的思路細節(jié),我們跳出這些細節(jié),看看一條廣告從請求到展現(xiàn)涉及到的全過程:
?
?
為了保證不丟失細節(jié),我直接把論文描述貼過來:Front Server接收到頁面曝光請求之后,將該用戶信息傳給Merger Server,Matching Server分析得到該用戶的特征(一連串的標簽),這些標簽被傳入Search Node Server檢索符合條件的候選廣告,此時候選廣告數(shù)量降低為400條左右。
Real-time Prediction Server預估得出pCTR和pCVR。Stragedy Layer包含oCPC的邏輯和GSP機制。經(jīng)過該邏輯層,贏得展現(xiàn)的廣告被Data Node Server和Smart Creative Service優(yōu)化,最后Front Server返回廣告元素并展現(xiàn)。
?
淘寶論文直達,點擊
總結
以上是生活随笔為你收集整理的广告中oCPX到底是如何进行优化的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用一张白纸推导出 RAFT 算法
- 下一篇: 为什么国内SaaS很难爆发