目錄
一. 背景
二. 概念
三. 程式化投放
四. 一次手動投放過程
五. 程式化投放--OA提升
六. 程式化投放--oCPX
七. 程式化投放--RTA
八. 程式化投放--聯邦學習
九. 總結
一. 背景
網際網路廣告是1993年在美國誕生的,那時候與傳統媒體類似,僅僅算是一個廣告傳播渠道。2000年,谷歌推出了針對搜素關鍵字進行廣告售賣的AdWords系統,拉開了近二十年網際網路廣告發展的序幕。隨著技術的不斷髮展,可以將網際網路廣告分為了四個階段:
第一階段是興起階段,主要是售賣方式的發展。第二階段是程式化投放,主要出現了程式化廣告售賣與購買的方式。第三階段是資料化應用,流量紅利的爆發,大資料技術的發展,使得媒體和廣告主更加註重資料的積累和應用,開始走向數字化運營的階段。第四階段是精細化發展,整個技術市場出現細分,投放技術日趨成熟,廣告形式不斷創新,比如小程式,短視訊等新的廣告媒體。
國內網際網路廣告市場規模這些年來持續提升,2017年規模就已達到3750億元,但近年增速將放緩。有三個趨勢值得關注:一是資訊流廣告的份額持續增長,2017年份額18%,預計2019年將佔到27.6%。二是頭部營收佔比,阿里廣告營收超1000億,TOP4營收佔比已超過60%。三是移動廣告佔比,隨著移動端的發展,移動廣告市場規模佔比也已經超過68%,並且有繼續增加的趨勢。
未來5-10年,網路廣告將繼續跟隨互聯產業發展進入以網際網路作為連線點,以技術為驅動,打通多種渠道和資源進行精細化管理,以內容創意和基於資料分析的優化能力作為核心競爭階段。如果沒有新的技術升級,網際網路流量紅利衰減會造成“收入減少—>廣告費用減少—>收入進一步降低—>廣告費用進一步降低”的負向迴圈,造成網際網路廣告行業整體增長降速。
說點現實的拿頭條係為例,2020年的廣告營收在1800億左右,21年的目標是2600億,在頭條系(例如抖音)月活、流量規模不大變的情況下,要達成這個目標除了流量主自身精細化流量運營,剩下的就得廣告主自己買單了。所以作為廣告主的一方如何進行精細化程式投放就成了關鍵。
二. 概念
一張圖看下近年中國廣告技術生態
講正題之前一些廣告生態的核心名詞概念必須瞭解
Super Platforms,超級平臺。目前只有百度、騰訊、阿里、頭條等幾家頭部流量主擁有,是一套綜合性的多功能平臺,包含DSP、SSP、TD、DMP等各種核心功能。具體分類解釋參考下文。
DSP(Demand-Side Platform 需求方平臺),在網際網路廣告產業中,DSP是一個系統,也是一種線上廣告平臺。它服務於廣告主,幫助廣告主在網際網路或者移動網際網路上進行廣告投放,DSP可以使廣告主更簡單便捷地遵循統一的競價和反饋方式,對位於多家廣告交易平臺的線上廣告,以合理的價格實時購買高質量的廣告庫存。
SSP(Sell-Side Platform 供應方平臺),供應方平臺能夠讓廣告主也介入廣告交易,從而使它們的庫存廣告可用。通過這一平臺,廣告主希望他們的庫存廣告可以獲得最高的有效每千次展示費用,而不必以低價銷售出去。
DMP (Data Management Platform 資料管理平臺),是把分散的資料進行整合納入統一的技術平臺。資料管理平臺能夠幫助所有涉及廣告庫存購買和出售的各方管理其資料、更方便地使用第三方資料、增強他們對所有這些資料的理解、傳回資料或將定製資料傳入某一平臺,以進行更好地定位。
Ad Exchange,廣告交易平臺。是一個開放的、能夠將廣告主和廣告商聯絡在一起的線上廣告市場(類似於證券交易所)。交易平臺裡的廣告存貨並不一定都是溢價庫存,只要廣告主想要提供的,都可以在裡面找到。Ad Exchange在網際網路展示廣告的高速發展創新中扮演了極其重要角色,它可以使網際網路展示廣告市場更加透明,高效,和可控。
Ad Network,廣告網路。是一個封閉的網路廣告市場,網路業主作為中間環節先向廣告主採購廣告庫存,然後再轉售給買家,雖然有時候廣告主也可以建立自己的廣告網路。在廣告業內,這是一個較為廣泛的概念。是一種介於想出售廣告空間的網站與想在網站上刊登廣告的廣告主之間的平臺. 比較知名的大型廣告網路公司如Google的AdSense。
RTB(Real-Time Bidding)即實時競價。是一種利用第三方技術在數以百萬計的網站上針對每一個使用者展示行為進行評估以及出價的競價技術。實時競價允許廣告買家根據活動目標、目標人群以及費用門檻等因素對每一個廣告及每次廣告展示的費用進行競價。一旦競價成功,廣告就會立刻出現在廣告主的網站中。這種允許進行動態交易的技術被業內稱為 “投標人”,而且可以嵌入相關平臺中。
TD(Trading Desk 程式化廣告交易平臺),需求方可以在TD上統一管理多個DSP平臺的投放,包括分配投放預算、制定和調整投放策略,檢視資料包告。比如你有一個店鋪,在天貓、京東、拼多多都有開,這幾個店鋪都有各自的店鋪管理後臺,管理起來非常麻煩,此時有一個後臺能讓你登入後直接管理各個渠道的店鋪。這個後臺的性質即類似於TD。
三. 程式化投放
重點在於我們之前介紹的Trading Desk以及DMP。部分能力如圖
核心功能及能力很多,總結來說分為2類。
1.提升OA效率的能力,包括一站式投放,批量操作,創意中心,報表/儀表盤,許可權管理等等,這部分不是重點我們一概而過。
2.提高投放轉化效果的能力,包括DMP資料中心,資料轉化回傳,RTA,聯邦建模等。
先說投放本身
程式化投放分為以下幾個元素,以騰訊為例:推廣帳號、推廣計劃、廣告組、廣告以及廣告創意。歸納來說,建立一條完整的廣告由建立推廣計劃、設定廣告、設定創意組成。
詳細可以參考 https://developers.e.qq.com/docs/api/adsmanagement
推廣計劃管理:介紹推廣計劃屬性,以及與之關聯的標的物屬性;
廣告組管理:介紹廣告組屬性,以及與之關聯的廣告版位、出價、定向屬性;
廣告管理:介紹廣告屬性,以及第三方監控的使用;
廣告創意管理:介紹廣告創意屬性,以及應用直達的使用;
投放一條廣告的所需的流程如下:
以手動投放的方式簡介下整個流程,這些過程全部可以用程式化的方式來管理
四. 一次手動投放過程
Step1 建立推廣計劃 圖片看不清可以點選放大來看。推廣計劃分為展示廣告計劃和搜尋廣告計劃。展示廣告計劃:常規展示類廣告.搜尋廣告計劃:QQ瀏覽器關鍵詞搜尋廣告。
step2 選擇廣告形式,分為常規展示廣告、商品廣告.常規展示廣告:常規投放場景,商品廣告:適合擁有海量商品投放需求的場景,圍繞商品進行批量投放和動態創意生成。
其中轉化歸因承載了客戶接收資料(點選監測)、客戶上報資料(上報行為、上報方式等)、平臺歸因(歸因方式)以及投放對應的標的物、優化目標等概念,是打通資料和投放的重要模組。全網歸因表示所有資料來源回傳的資料都有可能匹配到你的廣告;
精準匹配歸因表示只有通過你繫結的資料來源回傳的資料才能匹配到你的廣告。
step3 選擇廣告想要投放的目標人群,提供人口學屬性、使用者行為、自定義人群、裝置定向等多種維度的人群標籤。這一塊也是程式化投放的重點優化目標
step4 廣告僅在投放的日期和時間段範圍內向使用者展示。出價和預算會影響廣告獲得曝光的次數,系統會根據你的廣告設定提供建議出價範圍,你也可自行設定一個出價。不同版位和創意形式支援的出價方式不同。
step5 選擇廣告在流量上的呈現樣式,填寫對應樣式所需的內容。不同廣告版位下相同創意形式需填寫的資訊有所差異。
其他抖音、百度、阿里的結構也是大同小異。這些手動的過程大部分都可以用程式化投放來替代,並且進行功能增強。這裡先引出程式化投放第一個能力點
五. 程式化投放--OA提升
一站式整合投放(以Marketin TD為例)
傳統方式平臺間獨立、反覆對接。營銷人員需要維護多個平臺,各自賬戶在各個平臺中反覆登入操作並人工完成報告彙整。在程式化投放中一次性接入實現跨平臺協作,營銷人員可以在一個系統中實現統一賬戶管理多平臺並且實現跨平臺統一分析報告。
技術面這一塊內容的複雜度不高但是需要建立每個媒體平臺對應的適配層來應對不同媒體平臺週期性的API更新。為了保障程式化投放平臺的穩定性,這一塊的架構設計非常切合微服務架構。
另外就是不同媒體除了API不同,各自的定向策略也不一樣。我們需要搭建一個投放中間層來收口處理不同渠道上的策略配置,例如騰訊的性別有男、女、其他,抖音的性別有男、女、未知等。
智慧創意
創意降維:將完整影像或視訊拆解為雲端元素,智慧重組實現多樣化,通過實時資料進行創意精細運營。
其實這種技術可以歸為圖片處理範圍,早在很多年前阿里媽媽出的廣告牌功能就能做到圖片元素化自由裁剪組合。在廣告領域賦予更多的含義在以後面的資料整合,在相同的背景圖上結合我們的投放定向策略給予不同的分類客群展示出不同的產品內容。甚至在某些更高階的超級平臺可以自動形成千人千面的廣告圖片。
其他的oa效率類的功能顧名思義,如果大家有興趣再單獨開篇幅來說,後來我們重點來講解下程式化投放對於ROI的提升方法。
ROI的提升大概分為三類,1.廣告主主導優化,2.流量主主導優化,3.以流量主為中心,多方廣告主共同參與優化。這三類方式分別對應程式化投放的三項核心技術。
六. 程式化投放--oCPX
先看廣告主優化的方法 我們稱之為成本及效果可控的智慧出價模式
站在流量主的角度:
上傳發生在移動應用或網站中的使用者行為,這些行為資料會被儲存在廣告主專屬的第一方資料倉儲中,成為廣告主在資料資產的一部分。隨著這些行為資料的累積,廣告主可以基於這些行為資料靈活地進行人群提取,並在流量主提供的大盤中尋找相似使用者。廣告主可以對這些人群進行洞察分析、或者將它們實時關聯廣告進行投放。廣告主還可以建立轉化,利用這些行為資料統計廣告的轉化指標。 行為資料還可以用於動態創意廣告投放。
ps:流量主的心態是,我也知道現在流量人口紅利在下降,但是我的財報每年也得漲啊,我也只能做到精細化運營,不浪費流量資源,將使用者推送給更適合他們的產品,這樣我也能多收錢。
站在廣告主的角度:
提升廣告投放效果是廣告主始終追求的目標,而更精準的尋找目標客群是提升廣告投放效果最有效的手段。
這裡涉及到一個概念就是oCP(A,C,M...),拿oCPM為例,表示以展示計費的智慧出價廣告。你可以選擇特定優化目標(例如:啟用),並提供期望平均轉化成本,系統會根據你上報的轉化資料,預估每一次展示的轉化價值,自動出價,按照展示扣費。相對於傳統的CPm,這裡的O代表優化Optimized。o系列表示成本及效果可控的智慧出價模式。我們常用的oCPA,是一種針對效果廣告的智慧自動出價策略,廣告主可選擇特定優化目標(例如啟用、下單、表單預約),並提供期望的平均轉化成本。系統會根據廣告主上報的轉化資料,通過機器學習來預估每一次展示的轉化價值,自動出價,按點選扣費。
ps:廣告主的心態是,現在流量這麼貴,廣撒網的手段不適合現在的時代了,我也得控制下成本,把廣告頭給願意買我產品的那些人。
站在程式設計師的角度:
說了這些概念,對於程式設計師而言要乾的事實際上特別簡單,我們在投放廣告連結後,採取o系列的出價模式,流量主每次曝光都可以在我們的連結後面帶上他們的唯一標示。作為程式設計師捕捉到這些標示,然後按照業務策略將轉化後的資料對應的標示上傳給流量主,相當於告訴他這些使用者就是我的目標使用者,你們自己優化一下,後面就按照類似的使用者推送給我就好。至於優化怎麼做,做的效果如何都是流量主要做的事情。
ps:廣告的實時競價遠比目前介紹的程度要複雜的多。針對oCPA,競價成功後流量主的扣費策略實際上還是按照CPA來扣,如果實際轉化比oCPA的成本來的高,他們會持續優化資料模型。以達到接近oCPA的目標。如果持續優化幾輪還是達不到,流量主會補償廣告主部分廣告費用,並下架該廣告內容。
以騰訊為例 對應的資料轉化反饋介面 https://developers.e.qq.com/docs/api/apilist 使用者行為上傳 user_actions/add
百度的 http://ocpc.baidu.com/developer/d/guide/?iurl=api%2Fapi-doc%2Fapi-interface%2F
淘寶關於oCPX的論文 https://arxiv.org/abs/1703.02091
七. 程式化投放--RTA
再看流量主優化的方法 我們稱之為RTA,廣告主實時API響應。
背景及定位
為不進行敏感資訊回傳的廣告主,提升精準投放的能力。
換個角度來說:
RTA解決的是個性化定向的問題,擁有實時化以及資料安全這些特點。解決的是以下幾個個場景的問題:
一、 廣告主具備一方資料,但是投放的目標人群實時變動,通過平臺的定向標籤能力無法實現精準定向又或者通過使用者包無法實現實時定向更新的這樣的一種情況,需要結合雙方的資料能力共同提升廣告主投放效果的廣告主。所以這裡必須要求廣告主有一定的使用者甄別和篩選能力。
二、 出於資料安全或者價值的考慮,不願意將轉化資料回傳給廣告平臺的廣告主。比如金融公司投放金融廣告的時候,需要將無效徵信的使用者去除,但是由於無效徵信的屬於高度敏感的資料,廣告平臺其實是沒有這個資料的,金融廣告公司出於資料安全的考慮,無法將資料傳到廣告平臺上。所以金融公司投放廣告的時候需要經過RTA進行使用者的進一步的篩選。(當然,其實廣告平臺在RTA對接過程中是可以獲取到這些資料的)
三、 個性化買量需求的廣告主。針對不同的使用者選擇不同的投放策略和方案的廣告主。比如,不同的公司的增長團隊,對於純新增使用者,安裝解除安裝,安裝不活躍使用者有不同的投放策略。很多精細化的資料邏輯只有廣告主有,這個時候可以通過RTA進行廣告的投放。
定義
基於本地投放的程式化升級,根據廣告主不同的資料和技術能力,支援其逐步深入參與投放決策,最終共同優化提升廣告投放效率/效果;
進場門檻 (還以騰訊為例)
消耗門檻:客戶RTA日均消耗不低於5W元; 技術門檻:QPS建議支援4W;60ms內返回處理結果(包含網路傳輸);
退場機制
退出條件(完成RTA接入超30天 或 重啟放量15天),以下任一條件符合,即進行退出。 超過15天,RTA日均消耗低於5W 超過15天,RTA流量接受率(code=0佔比)低於10% 超時率大於5%,且警告後7天內仍未解決的;
站在程式設計師的角度
我需要做這麼一件事,在支援極高效能的前提下提供一個api給流量主呼叫,這個api會告訴給流量主當前訪問的使用者投放的廣告是否對其曝光。對應整體流程圖如下
整個生態確實很複雜,對於程式設計師來說,重點是要解決效能的問題避免被清退。那麼針對這種海量併發場景,有什麼好的解決方案呢
這裡推薦布隆過濾器
本質上布隆過濾器是一種資料結構,比較巧妙的概率型資料結構(probabilistic data structure),特點是高效地插入和查詢,可以用來告訴你 “某樣東西一定不存在或者可能存在”。相比於傳統的 List、Set、Map 等資料結構,它更高效、佔用空間更少,但是缺點是其返回的結果是概率性的,而不是確切的。對於其詳細的解釋 參考百科 https://baike.baidu.com/item/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8
總結來說:
布隆過濾器其中重要的實現就是點陣圖的實現,也就是位陣列,並且在這個陣列中每一個位置只佔有1個bit,而每個bit只有0和1兩種狀態。如上圖bitarray所示!bitarray也叫bitmap,大小也就是布隆過濾器的大小。
假設一種有k個雜湊函式,且每個雜湊函式的輸出範圍都大於m,接著將輸出值對k取餘(%m),就會得到k個[0, m-1]的值,由於每個雜湊函式之間相互獨立,因此這k個數也相互獨立,最後將這k個數對應到bitarray上並標記為1(塗黑)。
等判斷時,將輸入物件經過這k個雜湊函式計算得到k個值,然後判斷對應bitarray的k個位置是否都為1(是否標黑),如果有一個不為黑,那麼這個輸入物件則不在這個集合中,也就不是黑名單了!如果都是黑,那說明在集合中,但有可能會誤,由於當輸入物件過多,而集合也就是bitarray過小,則會出現大部分為黑的情況,那樣就容易發生誤判!因此使用布隆過濾器是需要容忍錯誤率的,即使很低很低!
在下面聯邦學習中,我們還會持續介紹布隆過濾器所涉及到的點陣圖演算法。
八. 程式化投放--聯邦學習
最後再看下廣告主和流量主一起優化的方法 我們稱之為聯邦學習。
背景及定位
在當前海量大資料時代,以及隨著計算機,人工智慧和深度學習的飛速發展,演算法模型的準確率越來越來依靠於大資料的支援。比如各種使用者的個性化推薦,以及廣告的定向投放的使用者群確定等等方面,剝離開資料,不可能建立出貼近實際情況的優秀模型。但是隨之逐漸浮出了兩個尖銳的難題——資料孤島難題和隱私安全難題。更嚴重的是兩者之間存在一定程度的制衡。尤其在銀行,金融行業,對使用者的資訊的安全要求更是高上加高。
資料孤島問題即:由於在某些專業的領域對機器學習模型學習和訓練的時候,缺乏標註資料的支援,同時存在在不同行業的之間的資料來源之間存在著難以打破的壁壘。由於行業競爭,使用者隱私,行政手續複雜等問題,甚至在一個企業的不同部門之間的實現資料共享和整合都存在重重阻力,導致當前的海量資料變成了一個個的“資料孤島”,資料之間的互動和通訊變得困難。在專案實施過程中對不同機構的資料進行整合的成本無疑是居高的。
隱私保護問題:歐盟在2018年5月出臺了《通用資料保護條列》,對於資料的收集,傳輸,保留或者處理過程進行了約束。重視資料隱私和安全已經成為一種世界性共識和趨勢。特別是像銀行金融對隱私比較敏感的行業。在隱藏安全保護要求變高的同時,資料孤島問題似乎變得更突出。
如何在如何平衡隱私保護與技術,如何在避免使用者資訊洩露的前提下,建立出優秀貼近實際的演算法模型,愈發重要。
核心思路
在人工智慧取得長足進展的背景下,樹立並且堅持嚴格的資料保障要求,利用消耗更多的計算機資源,來實現人工智慧時代的“保護隱私前提下的資料探勘”。多方共贏的機器學習方式,有助於打破資料孤島、提升AI 的應用效率,在市場監管、跨部門合作、資料隱私保護等領域,有著非常廣闊的應用前景。
騰訊側的資料 https://cloud.tencent.com/developer/article/1729569
聯邦學習的底層原理和實現非常複雜,這裡儘量會以非學術的表達以及應用層的角度來闡述整個內容。
聯邦學習的分為主要範圍縱向、橫向、以及遷移學習。常用的為縱向和橫向學習。
縱向聯邦學習主要針對擁有異構資料的機構,如銀行、電商等,通過融合多個機構對相同樣本的不同觀察進行AI聯合建模。也可以理解為兩個資料集的使用者 ( U1, U2, … ) 重疊部分較大,而使用者特徵 ( X1, X2, … ) 重疊部分較小;
橫向聯邦學習主要針對擁有同構資料的大量終端使用者,如網際網路APP 使用者,通過融合終端使用者對相同裝置或應用的不同體驗進行AI 聯合建模。在經使用者授權後,聯合建模過程中,使用者的個人隱私均不出個人終端裝置(如:手機、平板),從而保證了個人隱私安全。也可以理解為兩個資料集的使用者特徵 ( X1, X2, … ) 重疊部分較大,而使用者 ( U1, U2, … ) 重疊部分較小;
整體架構,以騰訊側為例
重點概念
模型角色:因為是兩個公司之間共同訓練同一個模型,因此在訓練時需要雙方各司其職,避免訓練紊亂,模型訓練角色分為 leader 和 follow 兩個角色,leader 角色負責模型的排程,包括模型啟動、資料排程等。還有一個需要提前約定的,就是模型訓練中誰更新主梯度(誰擁有label 去更新模型頂層的 loss)。雖然 leader、follow 角色和 label 擁有者可以解耦,但是一般約定為 label 擁有者承擔 leader 角色。
資料求交:因為涉及到雙方聯合訓練同一個模型,因此在訓練時需要保證雙方能夠識別到同一條樣本,樣本又不能交換,可能存在一些訓練資料的 diff,因此需要有一個資料求交的邏輯,得到雙方共同的訓練資料,並以相同的順序儲存。
站在程式設計師的角度
這概念看起來有點複雜啊,那麼作為客戶側的程式設計師需要做什麼呢,首先要理解下面幾個問題
1. 怎麼保障各自資料的安全
聯邦機器學習避免使用者資訊洩密的本質為:訓練時將訓練資料留在終端本地,不需要再收集、儲存上傳到雲端,使用者的本地資料,只有使用者本地知曉,最終同步更新全域性模型。在避免使用者資訊洩露的前提下,得到最終的模型。
還記得上文中提到的布隆過濾器嗎,本質上實現的原理是相同的,都是點陣圖演算法。
點陣圖演算法的模型具體原理為:通過將資料加密之後,通過k次hash函式的雜湊到點陣圖模型中。點陣圖模型其實為長度為m的陣列,陣列為01數值 。
點陣圖演算法具體原理:
- 確定客戶端私鑰和Host側加密的最大數。
- 確定分析資料總數n,當分析資料小於100000預設n=100000。使用預設長度。
- 錯誤概率定義,由於點陣圖是儲存的進過hash雜湊的數值,可以理解為是壓縮完之後的資訊,因此可能會出現點陣圖中資料一致,但是實際的原始資料不一致的現象。
- 通過相關加密使用者資訊,之後客戶端私鑰和Host側加密的最大數使用相關函式進行使用者資訊加密操作。
- 通過k個雜湊函式具體模型計算得到上述經過加密的使用者資訊的雜湊雜湊的序號,將點陣圖資料中對應序號的值置為1,將n個資料計算完畢之後得到對應的點陣圖模型。
匹配演算法具體原理:
首先通過聯邦技術訓練得到經過加密的使用者資訊之後,經過計算得到的離線點陣圖模型。之後通過客戶端私鑰和Host側加密的最大數對使用者資訊進行加密,之後和離線的點陣圖模型進行匹配,得到匹配結果。
總結:
拋開企業級方案所涉及的更深層次的內容,從應用層來看,基於聯邦技術的點陣圖匹配模型,通過使用聯邦技術完成對使用者資訊的保護,通過點陣圖模型,建立了不超過一定錯誤概率的點陣圖模型,並且通過該點陣圖模型,實現對在對使用者資訊匹配,確定該線上的使用者資訊的型別。該模型目前在廣告獲客平臺的應用為;投放廣告側向獲客平臺提供某條使用者資訊,獲客平臺通過點陣圖模型匹配,將使用者二分類為到:1.有投放價值2.無投放價值,輸出是否向該使用者投放廣告。
九. 總結
近年來到處都可以聽到數字化轉型、數字化經營/營銷等等。所謂數字化營銷不是簡單的將人工作業更新為系統流轉,而是應該以客戶為中心、以產品為基礎從源頭跟蹤使用者訴求、行為、畫像,不停迭代自己產品內容的過程。程式化廣告投放即是數字化營銷的最典型場景。越細分的人群,流量價值越高,對技術的要求也越高。