經歷過埋點的從無到有, 從簡化繁, 從對用戶在頁面上的點擊事件獲取, 到用戶的使用習慣的統(tǒng)計, 慢慢的對埋點也有了一定的了解, 在此說一下我對埋點的心得.
--== 數據埋點的意義 ==--
首先我們要知道我們出于什么目的埋下這些點, 從而確定點要埋在哪里, 我們埋點的作用包括:
1. 用戶對業(yè)務控件點擊, 跳轉頁面的統(tǒng)計, 用戶對事件的取消, 反復斷層的獲取. (在此我們可以得到用戶的點擊路徑, 這只是初級成面的運用, 數據量足夠的話, 可以就此分析出用戶的習慣, 用戶的喜好, 與應用的不足.)
2. 了解產品的日常運營數據, 通過版本的迭代, 數據反應的異常, 可以幫助產品經理, 抓住產品的缺陷, 和用戶對下一個版本的需求.
3. 廣告數據的統(tǒng)計, 方便后續(xù)和廣告結算的依據.
--== 埋點的方式 ==--
普遍的埋點都有兩種形式, 一種是自己配合自己的后臺進行對數據的統(tǒng)計, 一種是基于第三方平臺, 進行數據的統(tǒng)計.
- 原生方案
優(yōu)點:可塑性強, 可以根據自己的需求進行埋點的埋放.
缺點:如果有埋點的缺失, 則想獲得的埋點數據將會延至下一個版本, 開發(fā)人員不需要太多, 但是耗時這點是必不可少, 數據若比較繁瑣, 埋點架構不夠完善, 可能會使不熟練的開發(fā)人員造成隱秘的bug. - 第三方方案(如果平臺較小,對于數據要求沒有很高遭笋,可以采用該方案)
優(yōu)點:開發(fā)成本低坝冕,只要按照SDK中規(guī)定的方式上報即可. 獲取的數據量龐大, 可以在從中找到自己想要的細節(jié).
缺點:模板化,雖然可控性不高, 但是統(tǒng)計數量龐大, 但是數據都是在別人的服務器上.
--== 數據埋點實施 ==--
由于沒有使用過第三方的埋點工具, 所以在這里我就主要以平時原生的埋點案例為例.
- 埋點框架
1)每條記錄都是以用戶為維度瓦呼,可以查看單個用戶的行為記錄, 記錄到每次點擊或者重點頁面的停留時長喂窟。 - 埋點方式
1)埋點事件以及其屬性的英文名稱------>很重要,包括英文字母大小寫央串,否則會出現后臺中Android和iOS分別對應兩個事件名稱磨澡,極其不方便維護
2)該事件屬性的值
a)值的數據統(tǒng)一,例如定義充值按鈕點擊來源為下載頁面质和,不要出現Android和iOS的名稱不一致
b)列表定義一致稳摄,不要出現Android列表第一條數據值為0,iOS列表第一條數據值為1 c)異常情況考慮饲宿,例如沒有傳遞該值厦酬,不要出現一端傳空值胆描,一端傳null的情況
3)該事件的觸發(fā)時機 例如充值按鈕點擊,是在充值完成上報還是點擊時即上報仗阅,是否需要登錄狀態(tài)上報昌讲,如果沒有網絡時點擊是否上報等,否則會出現雙端邏輯不一致减噪,導致后期數據沒有太大的意義
4)埋點數據可以打包分段提交服務器, 因為埋點的數據量比較大如果每個操作都觸發(fā)的話會使得數據請求的很頻繁, 可以做好計時器, 定時上傳, 在清除本地的緩存.
5) 埋點的路徑一定要詳細,同一個頁面,進入的方式不一樣,埋點的名稱也同樣不一樣,這是為了方便分析用戶的使用習慣,從而更好的迎合客戶習慣
--== 埋點的命名方式 ==--
埋點命名一般是以路徑為名, 如“我的”頁面就可以定義為”mine”,如果是”我的”下級頁面的設置頁面就可以追加命名”mine_setting”,下級頁面以此類推, 這樣可以很明了的看清頁面進入的路徑,也同樣方便開發(fā)人員控制埋點命名.
注意:埋點一定要區(qū)分線上環(huán)境和測試環(huán)境的數據短绸,否則臟數據過多,對于數據分析的結論有很大的影響
結合上文所述, 在對比咱們自己的項目, 其中部分app的埋點功能就會有點片面, 雞肋了, 其中只傳了頁面名稱, 對于訪問這個頁面的路徑目前沒有, 對于用戶的點擊事件目前也沒有涉及, 同樣也沒有全面的數據分析體質. 畢竟項目的埋點才剛剛開始, 還是要慢慢去完善優(yōu)化的.