閒魚高效投放背後的祕密——鯤鵬

背景

閒魚業務發展迅猛,首頁feeds等多個大流量場景成為了各條業務線的產品、運營爭搶的流量入口。隨著海量的投放需求提到技術團隊,陳舊的開發、運營模式的弊端就顯現出來了:現有技術難以保障多業務方的pv目標、點擊轉化效率,無法解決多業務流量爭搶衝突,難以對日趨多樣的運營玩法快速開發上線,業務試錯成本高。我們急需設計一套新的技術方案來解決這些問題。

思路

我們要解決的根本問題是在總流量一定的情況下,如何從全局視角做調控,最大化全局流量轉化效率。為了解決這個問題,我們需要從以下幾個角度著手:

  • 保障多方投放的流量目標在單一場景下(如首頁feeds、搜索結果頁)的達成,且在滿足投放目標的前提下提升轉化效率。
  • 在滿足單一場景各項數據指標的前提下,打通多場景對全局轉化效率做優化提升
  • 通過工程手段賦能業務方,加速新業務的快速上線、快速調整投放策略,降低業務試錯成本。

基於以上考慮,我們決定與達摩院算法團隊合作,從工程上打通都江堰算法平臺,使得各投放業務能夠以極低的成本享受算法紅利,保障業務目標達成與轉化效率提升。同時,我們設計了一套全新的投放系統,理念是各種運營能力可快速擴展、可組件化沉澱,且特殊素材投放需求支持全新並行化研發模式,給予業務方更多的嘗試機會。

鯤鵬系統建設

為了實現運營能力可複用、易管理、靈活投放策略等特性,我們抽象了活動、場景、素材的3級結構,並支持在每個場景下定義多套模板來管理素材。場景是鯤鵬系統中最大的一個概念,它是素材投放的舞臺。必須先定義好場景,才能進行針對性的業務開發與素材配置、投放等。以搜索結果頁為例,就劃分為以下5個場景:長頸鹿運營場景、搜索結果feeds場景、poplayer場景、query詞幹預場景、背景氛圍場景,如下圖所示。只有定義好了這些場景,才能決定運營素材的生效範圍在哪裡。

閒魚高效投放背後的秘密——鯤鵬

有了場景之後,我們根據各運營的投放需求差異為各業務創建個性化的素材模板,然後就可以由運營同學在模板約束下自主創建素材。各種已沉澱下來的運營能力(如uv疲勞度過濾、搜索關鍵詞過濾、平臺過濾、版本過濾等)都可以由運營同學配置素材時,自主在界面上進行勾選或填寫。素材創建完成後,通過創建活動,指定人群、生效時間把素材投放出去,即可完成整個投放工作。

業務在制定投放計劃時都是有預期目標的,運營只需要在投放過程中把業務投放目標填寫在控制檯上,鯤鵬系統就會自動與都江堰算法平臺進行協作,幫助業務目標達成及轉化效率優化。運營同學通過鯤鵬控制檯配置的投放目標(如3天共100萬曝光pv)、投放策略(儘快投放、平滑投放、自由投放)及其他各項素材內容,會通過鯤鵬離線數據鏈路T+1迴流到算法平臺,供混排算法模型制定次日的全局投放計劃。各素材實際的曝光、點擊數據包含鯤鵬下發的業務唯一標識,這份數據迴流到混排算法平臺,用於模型的不斷優化迭代。各垂縱算法(業務定製的算法數據提供方,比如直播垂縱算法、求購垂縱算法)經過混排後實際曝光的數據,會通過鯤鵬通用曝光過濾數據鏈路迴流到垂縱算法過曝表中,解決垂縱數據重複曝光問題。

在接入了鯤鵬平臺後,用戶發起一次請求的數據處理流程如下圖:

閒魚高效投放背後的秘密——鯤鵬

從上圖可以看到數據處理過程中涉及到較多的模塊,我們在鯤鵬系統設計過程中儘可能把各種模板通過可擴展的架構實現,把各業務實現的定製功能沉澱為公共組件,橫向助力更多業務快速迭代。

整個系統的架構設計如下圖所示:

閒魚高效投放背後的秘密——鯤鵬

DataFetcher擴展點子系統

鯤鵬的DataFetcher擴展點子系統是能夠實現多人低成本參與並行開發的關鍵之一。各業務線的數據投放需求如果需要從遠端服務實時獲取(比如根據用戶搜索詞實時推薦關聯導購信息),那麼業務開發同學通過繼承DataFetcher擴展點基類,在子類的回調方法中調用遠端服務獲取數據、編寫DO轉換的邏輯,即可輕鬆完成業務開發和投放。至於多DataFetcher的RPC併發、資源隔離、指標監控等功能都已經在鯤鵬底層包裝好了,對業務同學完全透明,業務開發同學只需要關注業務本身即可。而在誕生鯤鵬系統之前,各業務的投放都需要開發者對投放場景的主幹代碼極為熟悉才行,導致搜索、首頁feeds等場景的投放開發工作只有場景owner一個人能夠勝任,成為開發單點資源瓶頸,鯤鵬徹底消除了這個局面。

閒魚高效投放背後的秘密——鯤鵬

DataFetcher子系統是鯤鵬“積木化”特性的重要實現。比如閒魚首頁feeds場景需要為新用戶投放一批實時推薦的優質權益商品,通過DataFetcher實現。那麼以後運營需要在搜索結果頁、猜你喜歡頁面投放此類權益商品時,此DataFetcher可以直接複用,通過鯤鵬控制檯註冊到對應場景即可,有效節省了開發資源,也提升了業務上線效率。

過濾器子系統

隨著業務對精細化運營的需求越來越高,我們在鯤鵬上打造了一套積木化的過濾器子系統,沉澱成為基礎組件供所有業務使用。除了大家熟知的分人群定投之外,我們還提供了分平臺(iOS/Android)、分版本、灰度流量比例、搜索詞嚴格匹配、搜索詞模糊匹配、頁碼過濾、uv疲勞度過濾等前置過濾器。如果業務有相關的運營定投需求,可以在控制檯上選擇對應的過濾器直接使用。

如果業務有特殊的定投需求,現有的過濾器還不能滿足,那麼可以通過繼承MatFilter基類輕鬆實現特殊的業務邏輯,並沉澱為通用過濾器組件,所有業務都可以複用。如此一來,鯤鵬的過濾器子系統能力將不斷積累沉澱,實現跨業務的能力共享。

舉一個實際的搜索竹蜻蜓投放例子:遊戲運營同學的需求是,當用戶來閒魚搜索“王者榮耀”“跑跑卡丁車”這幾個詞時,把遊戲竹蜻蜓的素材針對特定的遊戲愛好者人群、僅在andoird客戶端6.6.7~6.7.1這幾個版本上投放15%的灰度流量,且每個用戶每3天最多曝光10次。這樣一個需求中用到了眾多的過濾條件,有了鯤鵬的加持,這些過濾器能力都可以無需開發直接複用快速上線。而在此之前,這些需求需要經過prd評審、開發、聯調、測試、發佈後才能上線生效。

都江堰算法平臺

鯤鵬的一個重要目標是藉助達摩院算法能力助力業務目標達成,實現全局流量分配調優。我們與達摩院共建了都江堰算法平臺,實現了一套通用的混排算法,從工程側打通離線數據通路與在線服務鏈路,各業務都可以低成本複用此算法能力。閒魚首頁feeds、閒魚首頁金剛衛上多條業務線投放已經使用了鯤鵬系統提供的通用混排算法能力,在保證業務方達成投放pv目標的基礎之上,還把pvctr指標提升了60%~100%,且隨著算法模型的不斷迭代優化,效果指標還有很大的上升空間。

分組管理與審批流

鯤鵬系統在多個大流量接口落地(首頁、搜索SRP、猜你喜歡等),每個接口都有眾多業務線的運營同學來進行投放,需要進行合理的分組權限管理來規避錯誤修改其他業務素材的問題。鯤鵬系統搭建了分組管理子系統,每個業務同學都必須歸屬於某個業務分組,此分組下的同學都只能看到自己分組下的素材,無法看到其他分組下的素材。創建素材、活動時必須歸屬於一個分組。這樣就實現了有效的人與素材的分組管理。一旦素材或活動的配置發生變化,都會自動觸發一個審批流工單,流向本分組的審批人。通過審批流程規避人為失誤的風險。

閒魚高效投放背後的秘密——鯤鵬

接入鯤鵬後的角色分工


以前老的開發模式中,運營與開發的界線存在模糊地帶。由於投放平臺能力不完善,很多運營類配置變更都需要通過服務端推開關甚至修改代碼來實現。接入鯤鵬之後,開發與運營的角色分工就非常清晰了:

  • 場景開發owenr負責對接鯤鵬系統。
  • 業務開發同學負責在鯤鵬擴展點上實現自己的業務需求。
  • 運營同學負責在鯤鵬控制檯上配置素材,把業務開發同學的擴展點實現投放出來,並根據實際需要選擇合適的運營基礎組件來達到投放效果。

開發實現了業務需求後,後續所有的運營類變更都由運營同學自助在控制檯操作完成。如果投放不符合預期,運營可以自助修改、自助下線,全程不需要開發參與。

閒魚高效投放背後的秘密——鯤鵬

效果

目前閒魚鯤鵬系統已經在閒魚首頁feeds、首頁金剛位、搜索結果頁、猜你喜歡、搜索底紋推薦等多個場景中落地,對各業務方目標達成提供了極大助力,pv轉化率提升了60%~100%,uv轉化成本降低了40%左右,且還有很大的優化空間。由於多種基礎運營組件可以免開發直接複用,DataFetcher擴展點機制使得各業務方開發資源也可以並行投入進來,業務需求總體上線耗時縮短了50%以上。

閒魚高效投放背後的秘密——鯤鵬

展望

鯤鵬系統提供的算法賦能、擴展點並行開發、場景素材管理與投放、積木化運營能力沉澱,都對業務投放效果與研發效率帶來了非常顯著的正面提升。後續我們將會繼續深挖垂縱算法通用能力、更靈活的擴展點開發模式、橫向打通更多場景優化全局流量調控效果,為業務帶來更多增長點。


分享到:


相關文章: