關于數據埋點,你需要了解這些基本知識
本文作者從工作實踐出發,梳理總結了關于數據埋點的相關基本知識,與大家分享。
產品汪每天都在和數據打交道,你知道數據來自哪里嗎?
移動app端內的用戶行為數據大多來自埋點,了解一些埋點知識,能和數據分析師、技術侃大山,參與到前期的數據采集,更重要是讓最終的埋點數據能為我所用,否則可憐巴巴等上幾個月是常有的事。
埋點類型
根據埋點方式,可以區分為:
- 手動埋點
- 半自動埋點
- 全自動埋點
秉承“任何事物都有兩面性”的道理:自動程度高的,能解決通用統計,便于統一化管理,但個性化定制需求難滿足,成本較低;偏手動的,能滿足個性化需求,但容易出錯和疏漏,成本較高。
上報方式:
- 客戶端上報
- 服務端上報
客戶端能記錄一些通用頁面PV、UV、點擊等信息,但更多細節無法覆蓋,用戶購買了什么、訂單金額、成交單數,用戶看了哪個視頻、視頻物理時長是多少等信息則需要服務端回傳,服務端上報有上線靈活、不隨版本、丟失率較低的優點。
客戶端上報埋點數據流轉如下圖:
(客戶端上報埋點數據流轉)
埋點在個性化推薦系統(詳見下一篇推送)中扮演著先頭兵的角色,采集的數據的準確性將直接影響策略方向。
端數據
由于不同端的用戶具有不同用戶特征,往往會有不同的做功點,因此,采集數據時需要區分端數據,可以通過app_id區分產品不同端,如iOS、Android、iPad、PC各端。
埋點事件
如果作為數據分析師,思考角度較高,輸出的埋點需要有“可擴展、可維護、易用性、高效性”,字少事大的典型。產品汪可降低要求,只要能看懂埋點文檔,正確提出埋點需求、知道哪些數據對應哪些埋點即可。
(埋點文檔示例)
根據場景,同一屬性的行為往往會歸為同一類埋點,成為“同一事件”,同一事件下會有相應的擴展字段來承接相關的細節信息。
事件字段
以資訊app(如今日頭條、騰訊新聞、網易新聞)為例,按漏斗思維和用戶的行為路徑拆解,有哪些數據可能需要獲取?
打開APP人數(客戶端登錄損耗)->首頁/欄目訪問人數(訪問占比)->刷新或點擊人數(刷新或點擊人數占比)->點擊人數(點擊率)->閱讀時長/停留時長(讀完率、閱讀進度)->跟帖/收藏/分享等互動行為(互動率)->回流人數(回流率、病毒傳播系數)
以上環節怎么對應上埋點?
根據行為屬性,埋點事件大致分為以下幾類,并不唯一:
埋點事件下的信息怎么看?如item_id:”114774”,冒號前是字段(key),冒號后是值(value),//后的是注釋。
以視頻瀏覽事件(_vdE)為例:
字段注意點和應用場景:
- item_id:內容id,易錯傳為序列id
- type:內容類型,如圖文、視頻、音頻,可區分內容類型作分析
- referer_id:上一頁面內容id,可用于相關推薦業務的分析
- _pt/_pi/_pm系列:定位頁面和模塊,可用于不同業務線的分析,例如首頁、要問頻道、正文頁等
- _pre_系列:追蹤了上一級頁面,可用于用戶行為路徑分析
除了關注字段的定義和場景外,還需留意上報時機,定義盡可能周全,就以此視頻瀏覽事件為例:
- 頁面退出(銷毀)時:點擊返回等
- 切換到其他視頻:點擊上下集,點擊相關視頻等
- 按home鍵退出時
- 鎖屏時
- app殺死時
以刷新事件(_fsE)為例:
- direction:可供產品汪區分上拉、下拉作刷新行為的分析。你可能會發現,除自動刷新外,大部分用后喜歡上拉刷新,但下拉刷新的廣告位更值錢(有問題存在就有工作要做了)。
- auto_type:在新session,打開app到達首頁會有一次自動刷新(即用戶沒有手動操作),可用于分析用戶主動刷新的行為。
以評論事件(_cmE)為例:
從以上埋點,我們能獲取哪些數據?
每篇內容的評論數,可區分內容類型、欄目、評論類型、位置;結合獲取到的用戶id,還可以從用戶維度分析。
以上埋點字段僅做示例說明,需要根據實際的數據需要來增刪字段,定義要明確,場景要詳盡,避免出現“想要分析次均閱讀進度,卻發現沒有相關字段”的窘境。
五花八門的用戶id
用戶id是用戶的唯一標識,是該用戶在應用里活動的“身份證”,但它在獲取的時候可是五花八門的,曾經某產品汪提供的deviceid和數據分析師手上的uuid完全對不上,ab實驗得重做,所以懂多點兒概念提前問一問準沒錯。
(用戶id獲取示例)
以iOS系統的用戶id獲取為例,先補充幾個概念。
- IDFA(廣告標識符,Advertising Identifier),是蘋果公司提供的用于追蹤用戶的廣告ID,同一手機的不同APP對應著相同的IDFA,IDFA可通過以下步驟重置:設置-隱私-廣告-還原廣告標識符。因為IDFA會存在取不到的情況,因此需要選用其他的ID作為DeviceID。在取不到IDFA的情況下,選用IDFV。
- IDFV(Vindor標示符,IdentifierForVendor),一般用于追蹤用戶在應用內的行為,每個設備在所屬同一個Vender的應用里值是相同的。如果用戶刪掉了該vender的所有APP,IDFV將會被重置。
- UUID(通用唯一標識碼,Universally Unique Identifier),通用唯一識別碼,每次生成均不一樣;第1次生成后UUID后,需要保存到鑰匙串(keyChain)中;應用被刪除再重裝時,仍然可以從鑰匙串得取到UUID;在一臺設備上,同一個開發者賬號的所有APP,可獲取到相同的UDID;刷機或者重新安裝系統后,UUID將重新生成。
鑒于沒有任何一種標識符能百分百準確獲取,且為了盡可能獲取用戶id,會有一個退而求其次的獲取邏輯,即先取IDFA的值,取不到IDFA時去取IDFV的值,再取不到時IDFA時,則生成UUID。
獲取用戶id邏輯示例:
- iOS:先取user-DA;如果user-DA為空或者為00000000-0000-0000-0000-000000000000,取user-DV;如果user-DV為空,取deviceid
- Android:先取imei;如果imei為空或者為02:00:00:00:00:00,取deviceid
埋點踩過的坑
字段和值
- id字段指內容id,錯傳序列id,導致無法讀取用戶瀏覽的內容,丟失用戶閱讀歷史(影響個性化推薦)。
- 當內容是合集時,item_id傳合集id還是主視頻id需提前定義
上報時機
- 需明確定義,如:不同端的文章瀏覽事件切換前后臺時的上報時機需統一,Android切前后臺都上報,iOS僅切前臺時上報,導致兩端的人均閱讀數差異大。
- 需正確上報,如:視頻瀏覽事件出現同一個用戶的同一條數據重復上報(事件、時間戳、用戶id等都相同),使統計的瀏覽量偏大。
統計
- 栗子1:過濾瀏覽事件中時長>=10 ms 和? ? ?時長<10000000 ms 的異常數據。
- 栗子2:過濾刷新事件中單個用戶每天幾千幾萬次刷新的異常數據。
埋點注意點
- 埋點問題需跟版本修復,bug修復周期長:手動埋點如果出現漏埋或埋錯的情況,必須依賴下一個版本發版,才能看到數據(發版還需時間覆蓋,很傷),想周全+多測試=高效率
- 定義明確,格式規范,正確上報
- 測試環節很重要(老生常談)
日常反饋bug姿勢
產品汪反饋bug是家常便飯,甩個bug截圖可能會被忙碌精分的開發直接無視,掌握反饋bug的正確姿勢:
- 截圖
- 提供自己的app賬號或手機信息
- Android:提供imei(手機數入*#06#可自助查詢)
- iOS:提供idfa(抓包查詢)
- 說明時間和場景,給開發補充上下文,方便定位問題
走上述流程,開發一定覺得你可愛無比。
結語
只要產品仍在迭代,就需要更新埋點以供數據分析使用,可以說埋點將伴隨產品終生,攜手埋點,頭發也將越來越少,且行且珍惜。
本文由 @張小喵Miu 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
求大佬微信 ??
歡迎通過公眾號“XO喵妖”溝通 ??