如何高質量設計埋點?

6 評論 19084 瀏覽 167 收藏 14 分鐘

上一篇介紹了『用戶屬性』『事件』『埋點』的概念以及基本用法,而這篇文章會向大家介紹實際埋點過程中需要注意的事項,避免大家重復踩坑。

一、事件類型

1. 狀態事件與頻次事件

狀態事件:對于狀態事件,頻次是沒有參考價值的,只有事件的最終狀態才有價值

例如開關的開啟與關閉,在指定的時間段,我們只關心開關的最終狀態,至于期間開關了多少次,沒有實際的統計意義。對于狀態事件,我們一般用『用戶屬性』來表示。

但是對于很多統計平臺,用戶屬性存在數量限制,所以對于顆粒度很小,并且操作可能非常頻繁的狀態事件來說,也可以通過事件數的大小進行粗略判斷。例如,音樂應用中,通常會使用該音樂的收藏按鈕的點擊次數來判斷音樂的受歡迎程度。

頻次事件:頻次事件就是普通的統計事件,例如按鈕控件的點擊事件,頁面的展示事件。我們可以通過事件的頻次,判斷對應功能的價值。

2. 具體事件與抽象事件

  • 具體事件: 指的是某個具體操作,例如按鈕的點擊、頁面的展示、彈窗的彈出等。
  • 抽象事件: 往往指一類事件的集合,例如計算模塊之間的漏斗轉化率,往往會用到抽象事件,具體案例在下文會給出。

3. 主動事件與被動事件

  • 主動事件: 需要用戶主動觸發,例如按鈕的點擊,或者tab的切換,主動事件代表了用戶的主動意愿,對于用戶行為分析具有很大的參考意義。
  • 被動事件: 不能表明用戶的使用意愿,往往是用戶操作的附加結果。例如,用戶點擊back鍵退出當前頁面A,回到上一個頁面B,此時上一個頁面B的展示并不一定是用戶真的想要進入,只是退出頁面A的必經路徑而已。這類事件對于用戶的行為分析意義不是很大,但是對于其他維度的分析有著一定的參考價值,例如廣告展示等。

二、埋點前提

思考清楚有無埋點的必要,埋點的作用是為數據分析提供數據源。這些數據源往往需要組合運算才能得到數據結果,通常用于分析某個功能的使用情況。

很多問題不能或者沒有必要通過埋點來證明,例如驗證選品方向,通過統計平臺提供每日新增與次日留存即可驗證,沒有必要使用埋點進行細致的分析。

如果確定使用埋點,則要明確待驗證的核心問題,建議先理清產品方案的相關流程,并且明確定義每個模塊的核心指標。

三、埋點注意事項

1. 準確性原則

埋點事件一定是有效事件,而不是單純的事件頻次,下面是兩個說明案例:

案例1

產品邏輯:點擊某個按鈕,會進入到某個指定的頁面。

統計目標:計算『點擊按鈕』→『頁面展示』的事件頻次轉化率。

計算公式:轉化率 = 頁面展示次數÷按鈕點擊次數

埋點說明:如果僅僅把頁面展示的次數作為分子,會導致整個漏斗統計出錯。除了存在多個途徑進入該頁面的可能,還一個重要的原因:從該頁面進入其他頁面,并且從其它頁面返回至該頁面的時候,該頁面的展示也會被統計一次,如此計算的轉化率比真實情況要高。在該案例中,應該定義『有效頁面pv』:只有按鈕點擊進入該頁面,才算做一次有效的『頁面展示』事件。

案例2

產品邏輯:某個彈窗彈出,彈窗上有『確定』和『取消』兩個按鈕。

統計目標:計算『彈窗彈出』→『確定按鈕點擊』的頻次轉化率。

計算公式:轉化率=確定按鈕的點擊次數÷彈窗的彈出次數

埋點說明:其中,『確定按鈕點擊』應該是有效點擊,因為在無網或者卡頓情況下,存在用戶需點擊多次按鈕,彈窗才能消失的情況。這種情況下,第二步的事件數是大于第一步的。在進行類似埋點的時候,應該定義第二步的有效點擊:只要用戶點擊了按鈕,不管點了多少次,只算一次。

2. 高類聚,低耦合原則

如果是產品模塊之間的漏斗統計,建議為每個單獨的模塊設置一個事件作為代表,而不是使用模塊內部所包含的所有事件。

從產品結構上來說,模塊與模塊之間比較獨立,但是模塊內部往往由復雜的邏輯組成,所以將這些復雜的邏輯抽象成一個獨立的有效事件,有助于理清每個模塊間的轉化關系。

案例

產品邏輯:為了增加產品的使用時長,所以增加了積分體系邏輯,用戶可以在產品不同的地方,看到各種任務引導,然后通過完成不同的任務,兌換相應的積分,領取對應的獎勵。

統計目標:計算『任務引導』→『任務完成』的轉化率

計算公式:轉化率 = 任務完成次數÷任務引導次數

埋點說明:在積分體系中,應該將任務引導和完成任務分別抽象為兩個單獨的事件:只要任務引導出現,不管是哪種類型,哪個位置的引導,統統算作是『任務引導事件』。同理,不管用戶完成了哪個任務,也應該統統算作為『任務完成事件』。如此一來,能夠很輕松地從整體評估任務從曝光到完成的轉化率。若是對每個任務的曝光事件與完成都進行埋點分析,則是一個十分復雜繁瑣的過程。

3. 結果歸一性原則

如果某個動作的發生,必然導致另外一個唯一結果事件,則建議只統計結果事件即可,對于很多統計平臺來說,事件是十分稀有的資源。例如,Firebase最多允許添加500個事件,超出事件便不再顯示。

當這兩個事件具有高度的重合性與替代性,顯然結果事件對于數據分析更具有價值。

案例

產品邏輯:內購宣傳頁面有多個曝光入口,可以通過點擊首頁的卡片進入,也可以通過點擊彈窗進入。

統計目標:統計內購宣傳頁的展示次數。

埋點說明:為了獲得統計目標,只需要記錄內購宣傳頁的展示事件即可,而主頁卡片的點擊事件與彈窗點擊事件可以由『內購宣傳頁』的鍵值對來表示。如此一來,既能分析出內購宣傳頁面的展示與入口分布,又能節約了兩個入口事件。

4. 有效性原則

這一點是對上一點的補充,每個事件都應該對產品有著實際的分析價值與指導意義。對于那些沒有指導意義的事件,請勿添加。

這點對于剛接觸埋點設計的同學尤為重要,因為剛接觸埋點的時候,可能會存在『寧可錯埋一千,也不放過一個』的想法,這往往會浪費大量的事件資源。

  1. 對于產品邏輯不相關的事件不要添加,例如:彈窗關閉按鈕的點擊事件;
  2. 對于產品改善沒有任何指導意義的事件不要添加,例如:固定動畫的播放事件。

5. 分散與統一原則

如果一個事件,需要從多個維度進行分析,不僅每個維度在邏輯上相互關聯,而且要求統計上又相互獨立,則可以針對每個維度進行獨立的統計。同時,也建議把這些維度連接起來,作為一個整體的維度進行分析。

案例1

產品邏輯:一個購物商城包含多類商品(電子產品、日化產品等),每類商品有包含多種具體的產品。例如電子產品包含XX型號手機、XX型號電腦……用戶可以通過選擇某個商品,并點擊付款按鈕,完成付款行為。

統計目標:計算每類商品所在的銷售額與利潤

計算公式:

  • 電子產品總銷售額=所有用戶購買的電子產品銷售額累加值
  • 電子產品總利潤=所有用戶購買的電子產品利潤累加值
  • 日化產品總銷售額……

埋點說明:每個商品都有專屬的種類、售價與利潤,其中種類、售價與利潤三個維度相互獨立,如果將這三個維度作為獨立的三個鍵值對,如下表所示:

會對統計目標造成割裂,上面的埋點要么只能統計商品種類數目,要么只能統計總銷售額,要么只能統計總利潤,無法實現統計目標。

所以,推薦將這三個維度連接起來作為一個鍵,如下表所示:

這樣可以通過SQL語句獲取用戶使用的原始數據,然后通過簡單地數據處理,就能得出用戶準確的使用情況。

這里的連接符推薦使用^,而不是_,因為很多命名的默認分隔符_,所以如果再以_作為分隔符,可能會給后續的數據處理造成麻煩。

四、其他

除了上面系統的原則與方法論,還剩一些零碎但同樣重要的補充。

1. 頁面展示統計差異

  • 進入時觸發頁面展示事件,能夠獲取用戶主動進入該頁面的意愿;但是無法獲取該頁面的展示時長;
  • 退出時觸發頁面展示時間,能夠獲取頁面展示時長,但是會造成部分統計丟失,例如用戶通過后臺清理的形式殺死該應用,則預埋的事件會無法發出;

2. 統計平臺的漏斗計算

一般統計平臺的步驟漏斗是按照用戶數來計算的,而不是事件數。

3. 埋點設計

進行埋點設計時,建議對照著產品設計圖,因為原型圖跟最終的設計圖存在著一些差異。例如,原型圖中存在的按鈕可能在設計圖中不會體現出來,所以參考最終設計圖埋點能夠保證埋點的準確性,同時還能夠校驗設計圖表達的準確性,一舉兩得。

五、小結

埋點的介紹基本上告一段落,接下來打算寫幾篇產品方案的設計心得,也請大家繼續關注。

#相關閱讀#

一文讀懂用戶屬性、事件、埋點

#專欄作家#

MING,個人公眾號:MING的大航海,知乎專欄:產品見知錄,人人都是產品經理專欄作家。一只專注于個人成長的產品汪,沉迷『方法論』,只分享值得收藏的『硬干貨』!

本文原創發布于人人都是產品經理。未經許可,禁止轉載。

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

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 三個維度鏈接的鍵值對,上傳的時候,數據格式是MacBookPro13^1000^12000這樣么?然后在數據處理的時候可以分開為三個鍵值對?

    來自廣東 回復
  2. 特別棒

    來自北京 回復
  3. 不錯 不錯

    來自北京 回復
    1. 謝謝支持

      來自北京 回復
  4. 不錯

    來自上海 回復
    1. 謝謝支持

      來自北京 回復