入職數位行銷產業近半年,當初的我沒有任何數位廣告的Knowhow,硬著頭皮就開始寫code了,每次開會或討論時,總有新的名詞會打斷我的思緒,當初的我多麼希望有一份文件可以補足工程師進入廣告產業時應該認識的知識,降低新人上手的門檻。然而時至今日,我還是沒能看到心目中期盼著的那份文件,但此時的我已稍有數位廣告供應商的經驗,因此決定自己執筆,希望提供後人一條捷徑,避免更多後輩一邊工作一邊抱著「要是當初有這篇文章該有多好」的遺憾。另外,畢竟小弟是個外行人,如文中有誤,也敬請見諒。
數位廣告是一個龐大的體系,可以把它想像成一個巨大的供需市場,裡面有企業主想透過廣告進行行銷,也有網站主或媒體想透過提供廣告版位來獲利。這裡條列出幾個經常出現在會議及討論裡的行話,並且搭配我自己的認知來詮釋,也歡迎自行Google更詳細更嚴謹的解釋。
認識完名詞,接下來該來談談廣告運作的流程了,以下我們用比較工程的角度來切入,看看數位廣告的pipeline究竟長什麼樣子
{ "targeting": { "gender": "male", "age": [15, 25], "country": "TW" }}
除了上述較為工程導向的介紹,本章節從營運的角度來看,了解更多背景知識及詞彙,幫助我們更加理解整個領域的生態。
相信大家對廣告早就不感到陌生了,從電視、電台、報章雜誌、平面廣告、車體、戶外電視牆/看板,到捷運燈箱等通路(Channel),總是能看到五花八門的廣告,這種的廣告就屬於傳統廣告。
反之,隨著電腦科技演進而發展出來,可以透過程式自動進行的廣告交易就屬於數位廣告,相較於傳統廣告,對廣告主(Advertiser)而言更容易追蹤成效,對網站主(Publisher)而言也能提升營收。
從歷史演進的角度來看,傳統廣告屬於直售廣告(Direct-Sold),通常有人為介入、買賣廣告版位、必須事先預定、計價模式採用固定價錢(CPM);隨著電腦科技發展,廣告的交易逐漸數位化,因而發展出程式化廣告(Programmatic Advertising),由電腦程式代操廣告交易,特色為非人為、買賣廣告受眾、即時競價、計價模式採用動態出價(eCPM),程式化廣告除了能將傳統的直售廣告程式化以外,甚至演化出程式化廣告才能辦到的即時競價廣告(Real Time Bidding,RTB)。
常見的程式化廣告競價策略包括Waterfall及Real Time Bidding,通常Publisher會兩者並用來使營收最大化。在Waterfall策略中,Publisher能夠給予各家DSP不同的優先次序(Priority);相對地,在RTB策略中,各家DSP都必須被設定成同樣的Priority,藉此使不同的DSP在公平的環境下競價。
Waterfall指的是各家DSP被Publisher設定成不同的優先次序,每一輪拍賣中,廣告版位由次序最高者流向次序最小者,依序詢問DSP是否願意出價,一旦目前被詢問到的DSP願意出價,且出價高於Publisher設定的底價(Floor Price),則該DSP標得版位(Fill),否則版位繼續流向下一家DSP詢問出價(Passback)。
下圖是一種Waterfall的範例:直售受到人為影響,可能簽署了合約,Priority因此最高,接著依序進入程式化廣告、PMP(Private Market Place,不在本文討論範疇)、ADX、AdSense,如果以上Demand Partners都未參與競價,則版位最終流入House。
實作Waterfall的方式有許多種,例如在DFP上可以透過設定改變Priority;或者,我們也可以透過SSP上的介面來設定各家DSP的Creative來達到Waterfall的效果(如將A公司的Passback Creative設定為B公司的Creative,使A公司有較高的Priority)。
參與同一個inventory拍賣的各家DSP會幾乎在同一時間收到impression,並決定是否出價,版位由出價最高者標得,但只需支付次高的標價(此機制稱為Second-price Auction,有利於DSP掌握市場行情),整個拍賣過程必須在一定時間內完成(通常是數百毫秒),逾時的DSP將直接被淘汰。
IAB(Interactive Advertising Bureau,互動廣告協會)制定了許多廣告界的標準,其中就是因應RTB所設計的標準,例如制定各家DSP必須在以內完成拍賣競價。
Header Bidding可以說是RTB在網頁技術中的一種表現形式,網頁可以很粗略地分為及,Publisher會在中埋入SSP提供的競價所需的程式碼,當瀏覽器解析完這段程式碼時就會觸發即時競價,因此Bidder在網頁內容不可知的情況下獲得first look的traffic,僅能由cookie或封包header資訊判斷是否要出價。
所謂的競價,其實就是Publisher埋入的程式碼會向Bidder發出POST請求,並且夾帶cookie、版位的id、該輪拍賣的uuid等相關資訊。而Bidder是一個伺服器端的程式,透過暴露出來的Endpoint接收客戶端的競價請求,背後則是依照各家服務自行實作,可能會串接AI模型來推論traffic的價值,也可能需要連接Ad Server,當需要出價時,連同Creative一起送回客戶端。
Prebid是由AppNexus開源的Header Bidding實作,可用於網頁及行動裝置。它的運作原理其實是濫用DFP的Line Item,Publisher必須在DFP建立許多Line Items,並且分別設置不同Key-Value來Target不同的價格區間(Price Bucket),然而這些Line Item都必須綁定到相同的Creative Set,如此一來,End User打開安裝了Prebid的網頁時將會依序發生下面的事件來曝光廣告:
Campaign:一次有始有終的行銷活動,如:雙11檔期
Order
Inventory
Traffic/Request -> Bid -> Bid Won -> Viewability -> Show/Impression -> Click -> Action(註冊、安裝App、加入購物車、付款、...)
對Advertiser:每千次曝光/點擊/行為所花費的廣告預算
對Publisher:每千次曝光所獲得的廣告營收
可以透過redis deduplicate來消除短時間內(如:一小時)的重覆impression
之前遇過某家SSP在auction結束後偷偷蒐集各家bidder的出價,雖然技術上可行,也算不上犯了什麼濤天大罪,但被抓到肯定永遠被貼上「商業手法不乾淨」的標籤,於是隔天這家髒髒的SSP就被Publisher拔掉了
真的是切身之痛