《一週數據埋點之旅》第三天:埋點设计(上)

數據分析那些事
7 min readMar 18, 2020

--

0x00 前言

在前兩篇《初識埋點》和《埋點之前》的基礎上,我們應該有了對埋點的基本認識、知道了具體的開發流程。本篇在前面鋪墊的基礎上進入具體的埋點設計環節。通過本篇的閱讀,你將獲得以下四個埋點設計思維的認知。

  • 漏斗思維
  • 層次思維
  • 擴展思維
  • 分類思維

0x01 漏斗思維

漏斗思維即分階段思維,是從流水線的角度考慮問題,追蹤整個鏈條,具體有以下兩種形式。* 同一事件的不同階段在埋點設計中時常會遇到一些持續性的事件,不是在瞬間完成的,比如播放、下載等,都存在這一定的持續階段,對於這樣的非孤立事件,要設計一個鏈條進行追蹤,在埋點設計中常用會話的方式表示,比如可以採用開始時間戳記的方式作為會話id,每次事件開始都會生成不同的事件id。此外在設計埋點的事件名的時候也應該顯著的進行區分,比如用同一個事件,然後在該事件的屬性參數中選擇一個類似step的參數來代表該事件的不同階段,若每次事件的消費物件具有唯一的標示符如indentid,這樣就可以使用imei+eventid+step+indentid這四個值串聯了該次事件的整個過程。也可以用不同的事件名進行串聯事件(或者過程)的不同階段,如下圖彈窗的上報邏輯:

同一事件的不同平臺 不同平臺的串聯簡單來說是入口要做統計,出口也要統計,做好銜接, 形成一個完整的漏斗。以分享為例,用戶端的分享(點擊開始分享、分享結果返回)要做埋點,分享出去的頁面的展現和點擊也要設計埋點,在設計埋點參數的時候要注意加入加密處理過的用戶標示、分享來源標示等,代表一次完整的分享會話,做好跨平臺之間的資訊透傳,避免鏈條中斷或者模糊。這裡需要強調的是不同平臺的串聯容易洩露使用者資料,要注意加密處理進行隱私保護。

0x02 層次思維

層次思維的是指在進行埋點設計的時候,要有將頁面邏輯、事件程序、擴展參數等設計的有層次感。不僅可以方便對埋點進行查找,而且可以在更高維度上概括。具體體現在以下方面:

  • 交互層次

交互層次主要處理母頁面和子頁面的展現和點擊事件,對於某些app為了介面上的清潔,對一些行為操作進行了折疊,常見的場景如點擊更多,出現分享、保存等操作按鈕,長按評論,出現刪除、複製、舉報等操作,這些在彈出介面上的簡答操作可以上卷到母頁面上進行處理,比如原來的母頁面上評論有點贊和回復兩個點擊位置,則子頁面上點擊上卷之後,就有點贊、回復、長按_複製、長按_刪除四個點擊位置,其中以長按代表子頁面上的點擊,這樣上報更加清晰明瞭。但需要注意的是對於一些複雜的功能多樣的子頁面,要將這些頁面當做普通的頁面進行處理,並在頁面相關的事件上進行普通頁面和彈出頁面的屬性區分。

  • 屬性層次組合

屬性層次常見於具有複雜參數上報的事件中,屬性的參數值之間存在層次的組合關係,比如A參數取值為A1的情況下,B參數有B1,B2取值的可能,而當A參數為A2值的情況下,B參數有B3、B4取值的可能,像這種同一事件屬性層次的組合關係又適合拆分成多個事件的情況下,建議使用參數組合表進行設計的展示,可以極大的方便開發處理各種邏輯和測試案例的完備性。

  • 屬性層次包含

屬性層次包含是指在參數取值具有很明顯的分類情況下,設計更高的層次來給每個類進行命名。比如參數A具有A1、A2、A3、A4…A9一系列值,A1、A2屬於類C1,A3屬於類C2,A4…A9屬於類C3,若這一些列值存在明顯的可區分特徵,則在統計該類值過濾下相關事件行為即可,若不存在,則需要很繁瑣的窮舉,不僅代碼臭長,而且當有新的該類值出現的時候,要不斷的修改統計代碼。此時若在參數設計上增加一個參數來進行C1、C2、C3的劃分,則可以輕鬆的解決剛才的問題。

0x03 擴展思維

擴展思維是抽象思維的一種體現,越抽象的事物越容易擴展,但並不是說越抽象越好,把握號抽象的程度,可以有效的提高擴展性。

事件擴展

在設計事件的時候要有對業務擴展的預見性,比如一個app最初只具有發佈自拍視頻的功能,那麼在設計視頻發佈相關的事件的時候是否應該採用shortvideo_publish_xx呢?如果採用這種事件id的資料方式,若以後新增了其它類型內容的發佈,其基本流程和視頻的發佈基本類似,此時是將視頻發佈的相關事件流程重新複製一份,還是新增content_publish_xx事件,使用type參數來代表發佈不同的內容類別型(排除視頻外的,就版本埋點事件要相容),不論採用哪種設計,都會讓埋點變得混亂,而如果最終設計的時候就採用content_publish_xx的方式進行設計,則就整潔很多,很容易擴展。

屬性擴展

屬性擴展在屬性值的上報格式上體現十分明顯,此外 擴展格式設計的時候要不影響已有資料的原始處理邏輯,表現在埋點上盡可能的採用增加屬性和屬性值的方式進行 埋點,避免一大堆不可複用的垃圾事件,增加管理的難度。具體的措施如下:採用字典的方式進行埋點,儘量不要採用分隔符號分割的清單方式,例如:vid1_vid2_vid3 對可能出現的邏輯進行頂層設計區分,在每層上同樣採用字典的方式 對多個事件引用的同一屬性的枚舉值,建議用表分割出來,不要在每個事件上一個個地修改 卡片類等點擊內容可能多個的情況,在設計之初就應該有clickid屬性用以區分點擊的具體位置 針對點擊事件的針對性,比如針對某條評論的點擊恢復,點贊等,在點擊事件中要設計針對屬性。

0x04 分類思維

按位置、按模組、按頁面、按功能等多角度進行分類,有時將行為從頁面中獨立出來形成單獨的一類,比如如果app中在多個地方都存在分享、評論和點贊等功能,而這些行為的統計又是經常使用到的指標,更甚至若在底層實現上這些模組都繼承自同一個模組,這就天然具有了在埋點設計的時候按行為分類,而不是在每個頁面的位置上都單獨設計埋點事件。試想一下如果各個頁面維護各自的分享模組,如果分享管道增加一個,那麼是不是要更新所有頁面分享的埋點設計,追加回應的參數值(當然如果所有頁面雖然使用了不同的事件,但是維護的是同一份資訊表就相對好些)。另一方面,如果指標體系十分關注app在不同位置、來源上提供的內容消費差異,則要求我們在進行行為分類設計埋點的時候加入其來源相關的資訊,並對來源按來源app(跨app的導流)、來源頁面(app內部)、來源控制項(app內部的某一位置),比如下面的播放來源所展示的設計:

0x05 總結

本章對埋點設計中常用的四種設計思維進行了闡述,並給出了部分具體的設計方式參考,這幾種思維方式並不是獨立的,而是相互影響的,需要根據具體的場景特點進行靈活的運用,從而提高埋點設計的品質。

數據科學系列文回顧:

十週入門數據分析系列文回顧:

關注數據君的臉書:

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!

--

--

數據分析那些事
數據分析那些事

Written by 數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/

No responses yet