作者:閑魚技術——思洋
背景
雙十一購物節是網際網路營銷的典範,經曆這些年,伴随一次次營銷活動的失敗與成功,阿裡巴巴沉澱出一套網際網路營銷技戰術打法。就像詠春拳有三闆斧,相聲有四門功課。網際網路營銷也有四要素:招、選、搭、投。“招”即招商,“選”即選品。招商選品是營銷活動的起點,解決的是商業供給問題,目标是保障活動有足夠的、優質的商家、商品、價格、權益等可供給到前端消費者側。“搭”是搭建,即構造出營銷活動的“場”-活動頁面,解決的是消費者側展示問題。“投”是投放,即将招選出來的物料有政策的給到消費者,目标是人貨場的高效比對。
源起
閑魚會玩社群是以分享個人趣味生活為主的内容社群,使用者可逛可玩,有精神消費。社群業務有不少場景需要接入投放能力,如文章流,圈子,話題頁等。随着業務逐漸發展,對于投放系統有了更新和更高的要求,包括:
- 多資源位通投能力
支援一個任務同時投在多個資源位,實作關聯效果,提升使用者體驗
- 更強大的定投能力
區分版本,平台,地域,自定義參數過濾等
- 實時投放效果回報
任務資料實時回報,實作更及時的決策和精準的流量調控
- 投放頁面定制化,動态化配置
投放配置不用編寫代碼,提高營運效率,準确率
- 系統維護擴充
原有系統處于生涯末期,已不再維護和擴充
基于以上原因,我們決心DIY一個理想的投放系統。小編有幸參與了此系統的設計和建設。由此我們看下營銷第4門功課的技術實作。
4W1H
投放系統可以用4W1H模型來描述。即将合适的物料(What),在合适的時間(When),采用合适的政策(How),在合适的地方(Where),給到合适的人(Who)。該模型是投放系統的基礎,我們所有的架構設計都圍繞着這個模型推演。
從領域模型視角,投放系統有如下的抽象:
資源位
資源位對應頁面上的一個坐标,是資源(物料)最終展示的位置。資源位包含如下關鍵資訊:
- ID
唯一主鍵,根據此ID召回資源位關聯的物料。
- 狀态
正常、删除。删除狀态的資源位不能透出任何物料。
- 仲裁規則
資源位可透出多任務時的選擇邏輯。如“賽馬”-按照物料的名額分數基于一定時間規則排序。如:對商品池每隔10分鐘按照成交排序。此方式可保證使用者總是看到最好的物料。再如:權重随機-按照投放任務的權重值随機透出,類似抽獎。此方式可保證流量按照權重均分。
- 物料模闆清單
同一資源位可支援透出多種不同類型的物料。如閑魚會玩首頁Feeds流資源位,可支援透出文章,話題,圈子等物料。
- 資源位頁面位址
用于測試環境,掃碼驗證
- 資源位疲勞度
疲勞度指的是此資源位透出物料的頻率,高于此頻率視為“疲勞”,則停止透出。如疲勞度配置為1天2次,當使用者同一天在此位置看到2次投放之後,就不繼續透出投放任務了,直到下一天重新開始。配置疲勞度的目的是防止打擾使用者。
- 資源位流量控制
流量控制的邏輯和疲勞度類似,隻是控制的次元是資源位總的曝光,如果配置為3天100W曝光,則3天内若達到此曝光值,就不繼續透出任務。流量控制的目的是防止過分消耗大盤總流量。
物料模闆
對于大多數場景下投放的物料,格式都是類似的。如:商品,文章,橫幅。根據DRY原則(Don't Repeat Yourself),閑魚投放系統将這些物料标準化為不同的物料模闆,背景配置任務時,隻需選擇相應的模闆,填入物料内容即可,省去了設計物料格式的工作。在模闆的生成環節,為了提高開發同學使用體驗和效率,前端開發了元件化,可拖拽的界面,并且加上資料校驗部分,提高資料準确率。
物料
標明了要投放的模闆後,在模闆中填入相應資料,即生成一份投放物料。物料可能是招商選品篩出來的貨,可能是一個品牌,一場直播,一項權益,也可能是消息,互動,文章等。“萬物皆可投”。
投放任務
投放任務是整個投放活動的核心和出發點。任務由這些資訊組成:
唯一主鍵。根據此ID做投放資料效果分析。
- 時間
開始時間,結束時間。定時時間,如每周一,每晚8:00-10:00等。
一個投放任務可同時投在多個資源位上,實作多場景關聯的效果。
物料歸屬于相應的投放任務。
- 權重
權重越高的任務,透出的幾率越大,統計上可擷取更多的流量。權重的最進階别是“必出”,即如果此任務滿足透出條件,則不考慮其他任務,直接透出此任務。
- 閱聽人人群
隻對圈選出的特定使用者透出。實作上依賴于阿裡巴巴強大的人群服務平台,基于各種不同次元篩選出目标使用者,如對寵物感興趣的閑魚社群30天内低活躍度的使用者。
- 平台規則
可限定目标APP的平台,如僅投安卓手機;也可限定目标APP的版本範圍
- 地域
圈定任務可被透出的使用者地域範圍。如隻投給杭州市發來的請求
- 疲勞度
即使用者看到此任務的頻率限制,若是資源位次元疲勞度,則是任務在其關聯的每個資源位的透出頻率
- 流量上限
當任務達到規定的曝光上限後,就不再透出
- 标簽規則
任務的建立者還可自定義标簽邏輯,前台調用者需傳入相應标簽,且滿足規則(表達式比對通過),才可透出
投放系統架構
前台業務層
投放系統架構如上圖所示。在前台業務層,分為營運背景部分和前台場景部分。營運背景目标使用者是營運及開發同學,包含資源位,任務,權限,模闆,物料管理和資料分析子產品。前台場景面向消費者,分為外投場景和内部分發場景。外投場景适用于增長項目,為大盤從外部拉來流量。内部分發場景對大盤流量有消耗,可用于培養心智,建構氛圍等長期目标。
業務服務層
業務服務層,背景鍊路包括:
- 租戶管理。支援多租戶隔離,監控,單一租戶限流等。
- 模闆設計。元件化,可拖拽自動生成資料模闆。
- 校驗器。資料格式校驗
- 搜尋。支援多元度搜尋指定任務和資源。
- 預覽。預發環境,掃碼預覽測試功能
- 報表。任務資料效果統計
- 審批。 權限管理,防止越權操作
- 規則定義。自定義任務透出規則,前台傳參需滿足相應規則才可召回
- 定投。圈人,圈地域,時間,流量,平台,版本等
前台鍊路即投放任務的透對外連結路。是根據資源位召回最合适的任務和物料。前台鍊路圖如下:
前台場景對性能要求較高,需要支援數萬級的TPS,同時保證接口RT在10ms以内。這樣才不會影響調用方接口的性能。為了達此目标,前台鍊路使用了兩級分布式緩存,第一級存儲資源位和任務ID的對應,緩存異步更新,存儲N分鐘滑動時間視窗内進行中和将開始的任務。第二級緩存用于加速資料庫查詢。對于穩定性有強要求的業務方,為了防止空資料,前台場景還可設定多重兜底,如果前台資料源因為各種原因挂掉,可兜底切換為從第三方資料源(如配置中心)拿提前準備好的兜底資料,保障消費者體驗。
服務基礎層
分布式緩存服務用來提高前台鍊路通路性能和穩定性。消息服務用于異步更新前台緩存。資料連接配接服務用于資料庫操作。搜尋服務用于多元度召回投放任務。流計算服務用于實時資料統計。人群服務用于圈選目标使用者。地域服務用于圈選目标地域。
資料庫
投放任務,資源位,物料模闆和物料等結構化資料存儲在MySQL資料庫中。投放任務多元召回由Opensearch搜尋引擎實作。Opensearch即阿裡雲開放搜尋服務,是基于阿裡巴巴自主研發的大規模分布式搜尋引擎平台搭建而成。實時埋點資料統計結果存儲在Lindorm資料庫中。Lindorm是一款适用于任何規模、多種模型的雲原生資料庫服務,支援海量資料的低成本存儲處理和彈性按需付費,提供寬表、時序、搜尋、檔案等多種資料模型,相容HBase、Cassandra、Phoenix、OpenTSDB、Solr、SQL等多種開源标準接口的資料庫。Tair 是一個高性能、分布式、可擴充、高可靠的Key-Value結構存儲系統,專注于高速緩存場景。投放前台資料存儲在Tair中。
資料驅動
任務上線,資料上線
依賴于阿裡巴巴實時流式資料處理技術,我們可以實時統計任務點選曝光等名額。處理鍊路如上,通過日志平台,采集使用者的行為日志,并發送至Blink節點做資料計算與處理,處理完成的統計資料落盤。
流量政策
有了任務實時資料效果回報,就可以依此控制任務的流量。包含:資源位次元流量控制,如限定此資源位M天内可透出多少PV流量,防止對大盤流量過分消耗。任務次元流量控制,如控制單個任務M天内可透出多少次,超出則不透出。還可引入賽馬機制,如當一次請求命中多個投放任務時,按任務點選率降序排列,點選率高的任務優先透出。對于新上的投放任務,沒有積累足夠的資料名額,直接賽馬不占優勢,為了防止馬太效應,流量政策還可加上對于新任務的扶持,即冷啟動政策。例如對于新任務,平台固定先給5000曝光,積累了資料後再進入大的流量池和“成熟”任務做競争。
接入案例
閑魚社群增長項目-異形引導
使用者進入閑魚首頁,當滿足一定行為政策,如浏覽到第一個會玩文章且有停留時,螢幕下方會玩入口的圖示會變為使用者興趣相關圖檔或動圖,引導使用者點選進入“會玩”特定欄目。經多次疊代嘗試,實驗桶相比對照桶滲透率相對提升56.1%。在會玩浏覽的人均時長相對提升30.4%。
閑魚會玩熱聊闆塊
閑魚會玩首頁“今日熱聊”區域,根據使用者畫像,個性化透出相關話題或頁面連結。豐富了會玩的産品形式,承接了多元使用者社群需求,帶來整體留存率提升。
展望
投放系統下一步計劃在如下方面進行擴充和優化:
- 接入算法能力
利用算法對使用者和物料的了解,補充固定規則靈活性的不足,優化比對效果。
- 實時行為幹預
根據使用者實時行為動态比對最合适的任務
- 曆史資料積累
曆史資料沉澱為投放政策打法,幫助營運決策
結語
"一代人有一代人的使命,一代人有一代人的擔當"。軟體工程上更新疊代的速度遠高于人類代際的更疊,每個系統都是站在更早系統的肩膀上,進步了一點點,去擔當嶄新的需求。看了這篇文章的你,是否有多一點的信心,去自己練習下營銷的第4門功課呢。