關于數據埋點,你需要了解這些基本知識

2 評論 11918 瀏覽 60 收藏 12 分鐘

本文作者從工作實踐出發,梳理總結了關于數據埋點的相關基本知識,與大家分享。

產品汪每天都在和數據打交道,你知道數據來自哪里嗎?

移動app端內的用戶行為數據大多來自埋點,了解一些埋點知識,能和數據分析師、技術侃大山,參與到前期的數據采集,更重要是讓最終的埋點數據能為我所用,否則可憐巴巴等上幾個月是常有的事。

埋點類型

根據埋點方式,可以區分為:

  1. 手動埋點
  2. 半自動埋點
  3. 全自動埋點

秉承“任何事物都有兩面性”的道理:自動程度高的,能解決通用統計,便于統一化管理,但個性化定制需求難滿足,成本較低;偏手動的,能滿足個性化需求,但容易出錯和疏漏,成本較高。

上報方式:

  1. 客戶端上報
  2. 服務端上報

客戶端能記錄一些通用頁面PV、UV、點擊等信息,但更多細節無法覆蓋,用戶購買了什么、訂單金額、成交單數,用戶看了哪個視頻、視頻物理時長是多少等信息則需要服務端回傳,服務端上報有上線靈活、不隨版本、丟失率較低的優點。

客戶端上報埋點數據流轉如下圖:

(客戶端上報埋點數據流轉)

埋點在個性化推薦系統(詳見下一篇推送)中扮演著先頭兵的角色,采集的數據的準確性將直接影響策略方向。

端數據

由于不同端的用戶具有不同用戶特征,往往會有不同的做功點,因此,采集數據時需要區分端數據,可以通過app_id區分產品不同端,如iOS、Android、iPad、PC各端。

埋點事件

如果作為數據分析師,思考角度較高,輸出的埋點需要有“可擴展、可維護、易用性、高效性”,字少事大的典型。產品汪可降低要求,只要能看懂埋點文檔,正確提出埋點需求、知道哪些數據對應哪些埋點即可。

(埋點文檔示例)

根據場景,同一屬性的行為往往會歸為同一類埋點,成為“同一事件”,同一事件下會有相應的擴展字段來承接相關的細節信息。

事件字段

以資訊app(如今日頭條、騰訊新聞、網易新聞)為例,按漏斗思維和用戶的行為路徑拆解,有哪些數據可能需要獲取?

打開APP人數(客戶端登錄損耗)->首頁/欄目訪問人數(訪問占比)->刷新或點擊人數(刷新或點擊人數占比)->點擊人數(點擊率)->閱讀時長/停留時長(讀完率、閱讀進度)->跟帖/收藏/分享等互動行為(互動率)->回流人數(回流率、病毒傳播系數)

以上環節怎么對應上埋點?

根據行為屬性,埋點事件大致分為以下幾類,并不唯一:

埋點事件下的信息怎么看?如item_id:”114774”,冒號前是字段(key),冒號后是值(value),//后的是注釋。

以視頻瀏覽事件(_vdE)為例:

字段注意點和應用場景:

  1. item_id:內容id,易錯傳為序列id
  2. type:內容類型,如圖文、視頻、音頻,可區分內容類型作分析
  3. referer_id:上一頁面內容id,可用于相關推薦業務的分析
  4. _pt/_pi/_pm系列:定位頁面和模塊,可用于不同業務線的分析,例如首頁、要問頻道、正文頁等
  5. _pre_系列:追蹤了上一級頁面,可用于用戶行為路徑分析

除了關注字段的定義和場景外,還需留意上報時機,定義盡可能周全,就以此視頻瀏覽事件為例:

  1. 頁面退出(銷毀)時:點擊返回等
  2. 切換到其他視頻:點擊上下集,點擊相關視頻等
  3. 按home鍵退出時
  4. 鎖屏時
  5. app殺死時

以刷新事件(_fsE)為例:

  1. direction:可供產品汪區分上拉、下拉作刷新行為的分析。你可能會發現,除自動刷新外,大部分用后喜歡上拉刷新,但下拉刷新的廣告位更值錢(有問題存在就有工作要做了)。
  2. auto_type:在新session,打開app到達首頁會有一次自動刷新(即用戶沒有手動操作),可用于分析用戶主動刷新的行為。

以評論事件(_cmE)為例:

從以上埋點,我們能獲取哪些數據?

每篇內容的評論數,可區分內容類型、欄目、評論類型、位置;結合獲取到的用戶id,還可以從用戶維度分析。

以上埋點字段僅做示例說明,需要根據實際的數據需要來增刪字段,定義要明確,場景要詳盡,避免出現“想要分析次均閱讀進度,卻發現沒有相關字段”的窘境。

五花八門的用戶id

用戶id是用戶的唯一標識,是該用戶在應用里活動的“身份證”,但它在獲取的時候可是五花八門的,曾經某產品汪提供的deviceid和數據分析師手上的uuid完全對不上,ab實驗得重做,所以懂多點兒概念提前問一問準沒錯。

(用戶id獲取示例)

以iOS系統的用戶id獲取為例,先補充幾個概念。

  1. IDFA(廣告標識符,Advertising Identifier),是蘋果公司提供的用于追蹤用戶的廣告ID,同一手機的不同APP對應著相同的IDFA,IDFA可通過以下步驟重置:設置-隱私-廣告-還原廣告標識符。因為IDFA會存在取不到的情況,因此需要選用其他的ID作為DeviceID。在取不到IDFA的情況下,選用IDFV。
  2. IDFV(Vindor標示符,IdentifierForVendor),一般用于追蹤用戶在應用內的行為,每個設備在所屬同一個Vender的應用里值是相同的。如果用戶刪掉了該vender的所有APP,IDFV將會被重置。
  3. 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:過濾刷新事件中單個用戶每天幾千幾萬次刷新的異常數據。

埋點注意點

  1. 埋點問題需跟版本修復,bug修復周期長:手動埋點如果出現漏埋或埋錯的情況,必須依賴下一個版本發版,才能看到數據(發版還需時間覆蓋,很傷),想周全+多測試=高效率
  2. 定義明確,格式規范,正確上報
  3. 測試環節很重要(老生常談)

日常反饋bug姿勢

產品汪反饋bug是家常便飯,甩個bug截圖可能會被忙碌精分的開發直接無視,掌握反饋bug的正確姿勢:

  1. 截圖
  2. 提供自己的app賬號或手機信息
  3. Android:提供imei(手機數入*#06#可自助查詢)
  4. iOS:提供idfa(抓包查詢)
  5. 說明時間和場景,給開發補充上下文,方便定位問題

走上述流程,開發一定覺得你可愛無比。

結語

只要產品仍在迭代,就需要更新埋點以供數據分析使用,可以說埋點將伴隨產品終生,攜手埋點,頭發也將越來越少,且行且珍惜。

 

本文由 @張小喵Miu 原創發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 求大佬微信 ??

    來自廣東 回復
    1. 歡迎通過公眾號“XO喵妖”溝通 ??

      來自浙江 回復