做者介紹前端
@Sven面試
BAT數據打雜專家。算法
以前作過用戶增加。微信
目前負責數據全鏈路。app
01 前言ide
隨着互聯網時代的到來,各行各業都開始融入「 互聯網+」 的思惟。從最開始的TOC的服務&消費型產品,到現在TOB的數字化轉型,數據愈來愈重要。打開京東淘寶,頭條抖音,裏面琳琅滿目的商品推薦,視頻推薦。工具
那麼,問題來了,這些算法上千人千面的推薦,是怎麼作到的?答案:用戶行爲數據。學習
那再深刻一些,如何更精準的拿到 用戶行爲數據?ui
答案:埋點。設計
這就是今天咱們要講述的內容:數據埋點。
02 埋點簡介
定義:埋點是用戶行爲數據的來源。
目前來講,大部分企業對於用戶行爲數據的獲取,都是在各個終端上設置埋點。
經過各類各樣的埋點,拿到相應的用戶行爲數據。用於下游的統計分析和業務迭代。
主流的方式有兩種:
第一種:公司自研,在產品的各個頁面、(可交互)模塊,按照必定的規範,「注入」統計代碼。
第二種:第三方統計工具,如友盟,神策,GrowingIO等第三方監測平臺的接入。
各個公司隨着業務的不斷擴大,通常都會選擇自研發,並設定相應的埋點規則和統計規則。
咱們這期重點就來聊聊「埋點規範」的設計。
03 埋點參數
通常來講,埋點主要由兩個部分組成:公參和業務參數。
公參
什麼是公參?通俗來講,就是不管這個業務怎麼變,每一個埋點中都必須有的值。
舉個例子,用戶的業務id(如 uid),就是公參;用戶的手機imei,也是公參。咱們能夠根據咱們的業務形態,及咱們必定須要的數據,給出公參。
通常公參有4個要素:用戶識別 、設備識別 、 頁面識別 、關聯識別。
用戶識別:顧名思義,用戶的惟一標識。即用戶不管在哪臺手機(終端)上登錄,咱們都能映射到該app下的惟一用戶的標識;且對應到這個用戶上的一些固定信息,如手機號,實驗分桶標識等經常使用信息。
設備識別:因爲用戶可能在不一樣的機型上,因此咱們須要記錄到設別信息,如imei,手機型號,手機系統等。
頁面識別:特定的頁面上的信息,如搜索,咱們須要每一個頁面都透傳用戶的搜索詞;如頭條,可能須要每一次打開app的行爲id,這些特定的,非業務參數信息,均可以記錄到頁面識別參數裏。
關聯識別:因爲行爲和行爲之間,會有鏈路的串聯關係,因此咱們須要記錄頁面之間的關聯關係參數。好比:頁面和頁面之間的關係,咱們能夠記錄 來源頁面;模塊和頁面之間的關係,咱們能夠記錄 來源模塊;若是全部頁面流量都有算到某一頁面上,那咱們能夠將 該頁面識別(如頁面id)透傳至須要統計的頁面。
業務參數
業務參數,就是對應到具體的產品模塊,展示內容等具體業務上須要統計的內容的映射值。
對於業務參數的設計,咱們在下文中會具體講解如何定業務參數。
04 埋點設計方法
每一個公司,每一個業務都會有獨特的埋點方案,可是不管哪一種埋點,咱們都會有個明確的層級及關係劃分。這裏主要介紹兩種較通用的埋點方案,爲你們埋點設計提供必定的參考。
模塊式埋點
模塊式埋點,就是用產品自己,肉眼可見的明確區分的模塊,來構建業務參數。
每一個app,都由多個頁面組成,不一樣的頁面及頁面上的功能組合,構建了一個app。
因此,咱們能夠定義模塊式埋點的第一個層級:頁面。
具體到某一個具體頁面,咱們能夠較明確的區分出區域,好比微信信息列表頁,咱們能夠較明確的看到三個區域:頭部區域(搜索框 & 右上角的加號),中間信息列表區域,底部4個按鈕區域。這些明確能夠劃分的區域,咱們能夠定義成第二個層級:區域。
而在看這些區域中的具體 能夠交互 的內容(或者功能),咱們能夠定義成第三個層級:按鈕。好比頭部區域中的搜索框點擊,右上角加號的點擊;中間信息列表區域的聊天窗口點擊;底部按鈕區的四個按鈕的點擊。
這樣,咱們把三個層級串聯起來,就造成了這樣一套業務埋點規則:頁面_區域_按鈕。
固然,咱們可能還須要記錄某些具體的業務附加信息。
如點擊聊天列表,是點擊了羣聊,仍是好友,咱們能夠記錄一個聊天類型,而對應的如好友id,羣聊id,咱們也能夠記錄在附加信息中。
這些附加信息,咱們也能夠記錄到具體的參數值裏,但這個參數須要和模塊層級埋點區分,不能埋在同一個值中,這點須要注意。
好比上文所述的微信的埋點,咱們能夠這樣標記:
咱們按照上述結構,將頁面&區域&按鈕連接在一塊兒(好比以 @ 符號關聯),就造成了該頁面的埋點,如頁面展示,咱們能夠打點爲 wx_list_page@0@0,如公衆號點擊,咱們能夠打點爲 wx_list_page@talk_list@pub_acc_clk,以此類推。
若是咱們想統計中間區域的點擊,那麼咱們之須要把點擊埋點截斷至 區域,不用明確區分按鈕,咱們就能很方便的統計出想要的區域,頁面,點位上的數據。
內容式埋點
和模塊式埋點相似,模塊式埋點是產品自己的層級區分,內容式埋點是內容自己的層級區分。
內容式埋點通常會應用在廣告等內容的數據統計上。
首先,咱們須要一個串聯ID來串聯前端數據和服務端數據。
往上層,咱們須要知道這個串聯id屬於什麼內容,這時須要內容id。再往上,內容id屬於哪一種大的類目,這時須要內容分類。
這個就是內容埋點,同模塊埋點,內容埋點須要有明確的內容層級區分。
而這時基礎層級,串聯後就造成了內容埋點規範:內容分類_內容id_串聯id。
固然,模塊式埋點以及內容式埋點還能夠繼續往上層劃分,好比 模塊式埋點能夠增長至 產品_業務_頁面_區域_按鈕;內容式埋點能夠增長至 業務_系統_內容分類_內容id_串聯id。
這些均可以根據特定的業務場景修改,只要有相應的層級劃分,統計起來就會方便不少。
05 埋點TIPS
事件分類
通常狀況下,主要有3類埋點:展示埋點 + 曝光埋點 + 點擊/輸入框 等交互埋點 + 自定義埋點。
展示埋點:通俗來講,某個頁面裏的內容被展示了。
怎麼定義展示,這個其實就是一個服務端的觸發。服務端若是觸發了,用戶側會展示什麼內容。
由打點時機能夠明確出,展示埋點須要記錄的是 頁面展示的內容信息。
也就是說,服務端下發的內容都包含什麼(這些東西必定是當前頁面主要內容,不包含一些交互信息)。
曝光埋點:哪些下發的內容被用戶實際看到了。
和展示埋點相似,因爲屏幕有限,但內容能夠無限。哪些內容被用戶側實際看到(曝光),咱們也須要記錄下來。
不一樣的是,曝光埋點,咱們須要記錄的是單個「內容」被看到,不能是一串內容。一串內容,能夠觸發屢次曝光埋點,可是曝光埋點必定是單個「內容」。
交互埋點:哪些功能/內容被用戶「點擊」了。
從埋點時機來講,這個是展示 & 曝光的下游。
記錄的是,對於咱們提供的「服務」的「消費」狀況。
好比,一個頁面,用戶能夠點擊,那麼咱們須要記錄相應的交互埋點;好比,一個視頻能夠點贊,咱們也能夠記錄交互埋點;好比,一個視頻能夠播放暫停,咱們也能夠記錄消費埋點。
整體來講,就是,咱們要記錄 被看到的可交互功能/信息的「消費」數據。
自定義埋點:隨着業務的發展,產品種類愈來愈多,總會有須要特殊埋點的地方,能夠留一個自定義埋點備用,總要給業務一個機會嘛(玩笑話)。
埋點記錄
關於埋點記錄,或者叫埋點文檔,咱們只要明確記錄兩個信息:點位信息 & 點位映射。
點位信息:明確每一個業務事件下的具體的參數信息,即上文所述的公參+業務參數。
點位映射:每一個埋點對應的業務含義。
只要埋點文檔中記錄了這兩個內容,那麼這份埋點文檔就是一個合格的埋點文檔。
固然,上文所說的層級,參數,事件等,都是一份好的埋點設計的組成「成分」。
多思考,多參考,相信你們都能設計出合適本身業務的埋點規範。
一個數據人的自留地是一個助力數據人成長的你們庭,幫助對數據感興趣的夥伴們明確學習方向、精準提高技能。關注我,帶你探索數據的神奇奧祕
一、回「數據產品」,獲取<大廠數據產品面試題>
二、回「數據中臺」,獲取<大廠數據中臺資料>
三、回「商業分析」,獲取<大廠商業分析面試題>;
四、回「交個朋友」,進交流羣,認識更多的數據小夥伴。