1. 程式人生 > >更猛更持久的廣告投放,閒魚程式設計師的年終獎全靠它。。。

更猛更持久的廣告投放,閒魚程式設計師的年終獎全靠它。。。

作者:閒魚技術-撫凌

業務背景

  1. 使用者增長,是開源節流促成長的過程,是包含了有效使用者增長、使用者成長、使用者變現、使用者傳播、防止使用者流失等一整套增長流程,而非單純數量上的增長。
  2. 在實踐中,增長手段主要聚焦在如何獲取使用者和提升使用者活躍度上。在使用者獲取成本不斷升高的背景下,任何一種獲取使用者的方式都變得昂貴且效果難以評估,就好比我們都知道廣告投出去有一半錢是浪費掉了,但卻不知道是哪部分。
  3. 為了評估增長手段的有效性,首先需要一種能在各個渠道追蹤使用者行為的手段。一般會使用裝置指紋技術來唯一標識使用者,即通過一系列裝置資訊生成裝置的唯一標識,用裝置標識來替代使用者標識作為追蹤使用者的手段。

問題定義

可以用於標識出該裝置的裝置特徵或者獨特的裝置標識被稱為裝置。裝置指紋因子通常包括計算機的作業系統型別,安裝的各種外掛,瀏覽器的語言設定及其時區 、裝置的硬體ID,手機的IMEI,電腦的網絡卡Mac地址,字型設定等,通過某種Hash演算法生產特徵字串來用作裝置指紋。裝置指紋服務有兩個核心問題需要解決問題:

  1. 裝置ID的有效性:無論使用單一還是多種資訊來源,裝置指紋的有效性取決於裝置ID的有效性。存在兩種可能無效情況,ID衝突和ID漂移。ID衝突指不同裝置擁有了相同的ID,ID漂移指一臺裝置在不同環境或時間獲取時獲取到了不同的ID。
  2. 裝置服務架構的擴充套件性和可靠性:不同的渠道可能會定義不同的裝置ID組合作為裝置指紋的來源,在多個渠道間互動時需要支援和相容多種ID組合的查詢和轉化;裝置服務需要廣泛應用於增長手段的各個環節,服務的訪問量會明顯大於一般的產品鏈路服務,因此對可靠性也有較高要求。
    我們針對這兩個核心問題,在下文中分別給出對應的問題分析和解法。

裝置指紋ID

Android裝置可以獲取的ID

  1. IMEI——國際移動裝置識別碼(International Mobile Equipment Identity),即通常所說的手機序列號、手機“串號”,用於在行動電話網路中識別每一部獨立的手機等行動通訊裝置,相當於行動電話的身份證。幾乎所有的裝置都可以返回這個串號,並且唯一較好。它根據不同的手機裝置返回IMEI,MEID或者ESN碼。
  2. IMSI——國際移動使用者識別碼(IMSI:International Mobile Subscriber Identification Number)是區別移動使用者的標誌,儲存在SIM卡中,可用於區別移動使用者的有效資訊。當手機上裝有 Sim 卡並且可用時,返回該值,不同 Sim 卡的返回值不同。
  3. MAC——可以使用手機Wifi或藍芽的MAC地址作為裝置標識。 並不是所有的裝置都有Wifi和藍芽硬體,硬體不存在時獲取不到。
  4. ANDROIDID——安卓ID,在裝置第一次啟動的時候生成並儲存,並且可能會在恢復出廠設定後重置該值。理論上是大部分是重置的。通常被認為不可信,因為它有時為null。開發文件中說明了:這個ID會改變如果進行了出廠設定。並且,如果某個Andorid手機被Root過的話,這個ID也可以被任意改變。

iOS裝置可以獲取的ID

  1. IDFA——Identifier For Advertising。直譯就是廣告id, 在同一個裝置上的所有App都會取到相同的值,是蘋果專門給各廣告提供商用來追蹤使用者而設的,iOS預設設定是允許追蹤。使用者可以在設定裡重置此id的值,或限制此id的使用,故此id有可能會取不到值。iOS6及之後版本可以使用。
  2. IDFV——Identifier for Vendor,提供給APP供應商使用的ID。每個裝置在所屬同一個APP供應商的應用裡,都有相同的值。iOS6及之後版本可以使用。
  3. UDID——Unique Device Identifier。裝置的唯一裝置識別符。UDID從iOS5開始被禁止使用。
  4. UUID——Universally Unique Identifier,通用唯一識別符號。可以在應用啟動時生成,它保證對在同一時空中的所有機器都是唯一的。但除非本地儲存後獲取本地址,每次呼叫生成的ID均不相同。
  5. MAC——同Android中的定義,iOS7開始只能獲取一個固定值。

新一代的裝置指紋技術

傳統的裝置識別手段主要依賴於單一的資訊源,與此不同,新一代的裝置指紋技術使用更多的資訊來完成裝置的識別。它通過網路收集終端裝置的特徵資訊,並在分析與鑑別的基礎上,對每一組從終端裝置採集的特徵資訊組合賦予唯一的裝置指紋ID,用以標識該終端裝置。一般具有開發能力的廠商均有自己的一套生成方案,同時也有第三方的廠商提供解決方案以供使用。以下以阿里使用的UMID(唯一裝置ID)為例,說明裝置指紋ID在各平臺上所具有的能力。

  1. iOS上的能力

    1. 解除安裝重灌App, UMID不變
    2. 跨App,UMID不變
    3. 限制廣告跟蹤,(採集不到IDFA),UMID不變
    4. 還原廣告標識,(IDFA變更),UMID不
    5. 恢復出廠設定,UMID不變
    6. 備份恢復不會導致兩個裝置UMID一致
    7. 準確識別是否越獄
    8. 準確識別越獄之後是否被Hook
  2. Android上的能力

    1. Android 6.0下無採集IMEI/MAC許可權,UMID不變
    2. 修改IMEI/IMSI/MAC/aid,UMID不變
    3. Android 7.0跨APP,UMID不變
    4. 平行空間UMID不變
    5. 準確識別各種模擬器
    6. 準確識別是否Root
    7. 準確識別是否被Hook

裝置指紋ID選型

  1. 比較好的裝置指紋ID,需要保證儘可能少的出現ID衝突和ID漂移。並且,在許可權限制、裝置資訊篡改,系統重灌、APP重灌情況下也需要保證儘可能不變化。
  2. 集團內部的裝置指紋ID方案已經經受住了大量業務的考驗,不僅適用於做使用者行為的追蹤,同時也具有一定的安全防刷能力。因此,閒魚使用者裝置資訊採用UMID作為唯一標識。同時對於多個數據來源(閒魚使用者歷史裝置登入記錄,閒魚使用者歷史安全裝置記錄,閒魚使用者裝置採集記錄)打通,水平擴充套件可以支援的IMEI,IMSI,MAC,IDFA,YunosUUID,Google廣告ID等ID的查詢。

架構設計


閒魚使用者裝置服務架構設計

閒魚裝置服務架構設計.png | center | 747x742

  1. MySQL——建立以umid為主鍵的閒魚使用者裝置主表。一個使用者可以有多個裝置,一個裝置僅記錄最近使用的使用者。資料量較大,需要做分庫分表。
  2. HiStore——用於多維查詢,資料從MySQL中同步。HiStore是阿里中介軟體技術團隊研發的資料庫產品,是一款基於獨特的知識網格技術的列式資料庫,定位於海量資料高壓縮比列式儲存,是低儲存成本,低維護成本,海量資料OLAP儲存引擎;有效的解決了海量資料儲存的成本問題,以及在百億資料場景下支援實時高效的多維度自由組合的檢索。外部開源的解決方案有Infobright等。
  3. 實時讀取——分散式key/value儲存系統 Tair。Tair是一個Key/Value結構資料的解決方案,它預設支援基於記憶體和檔案的兩種儲存方式,分別和我們通常所說的快取和持久化儲存對應。通過tair可以定製業務所需要的快取,也可以作為持久化儲存完整儲存整個閒魚使用者裝置表(以Umid為key)。外部開源產品可以選用Redis。

實踐場景(廣告投放)

  1. OCPC/OCPA/OCPM:

    OCPC是Optimized Cost per Click的縮寫,即優化點選付費,本質還是按照cpc付費;OCPA是Optimized Cost per Action的縮寫,即優化行為出價,本質還是按照cpa付費;Optimized Cost per Click的縮寫,即優化點選付費,本質還是按照cpc付費;Optimized Cost per Mille的縮寫,即優化千次展現出價,本質還是按照cpm付費。三種出價策略除了對應的優化目標不同,本質上都是採用更科學的轉化率預估機制,幫助廣告主在獲取更多優質流量的同時提高轉化完成率。系統會在廣告主出價基礎上,基於多維度、實時反饋及歷史積累的海量資料,並根據預估的轉化率以及競爭環境智慧化的動態調整出價,進而優化廣告排序,幫助廣告主競得最適合的流量,並降低轉化成本。
  2. 廣告投放的資料流示意圖(以啟用為例)

廣告投放的資料流示意圖.png | center | 799x551

  1. 閒魚和廣告商的資料流互動圖

閒魚廣告商OCPC互動圖.png | center | 531x735

  1. 流程說明

    1. 廣告商在監測事件同步介面(介面一)中會同步點選資料給閒魚。同步資料包含使用者的裝置資訊(IDFA/IMEI/OS等)、業務資訊(廣告計劃id/廣告創意 id/點選時間等)和回撥資訊(回撥地址或回撥引數)
    2. 閒魚接收到同步資料,根據OS將裝置id設為key,將回調資訊作為value儲存在Tair中。
    3. 閒魚使用者啟用或者註冊時觸發裝置資訊採集,經過清洗後更新至閒魚使用者裝置表中。同時查詢是否有可以匹配的回撥資訊,根據點選事件和轉化目標,處理回撥資訊後回撥使用者轉化目標資料給廣告商。
    4. 廣告商收到回撥資料後,優化模型,更新出價,幫助閒魚獲取更適合轉化的目標人群,降低轉化成本。

總結

在目前的閒魚使用者增長實踐中,廣告投放優化已經給閒魚帶來了巨大的收益,有效的控制了廣告投放的成本,使得增長團隊可以進一步擴大廣告投放的渠道和範圍。除了用於廣告投放優化,閒魚裝置服務還支撐了deeplink,智慧投放和使用者生命週期等一系列增長手段的嘗試。未來,閒魚技術團隊還會進一步探索技術上的可能性,驅動閒魚使用者增長業務的發展。