Ⅰ 數據採集與埋點
part 1 主流互聯網數據加工流程
一、什麼是埋點
1.主要用來記錄和收集終端用戶的操作行為
2.當用戶行為滿足某種條件的時候,會自動觸發記錄並上報給伺服器
part 2 如何合理的去定義我們的事件
一、當我們訪問淘寶首頁的時候背後發生了什麼
二、設備識別
一、安卓設備識別
二、IOS設備識別
三、網頁的識別:UTM參數
四、移動應用的來源識別
part 3 如何去設計埋點
一、重要的行為:自動埋點,比如,每次啟動APP用戶訪問APP主頁面 每次HTML頁面瀏覽
二、面對應用的埋點:從目標出發,梳理轉化漏斗,在關鍵節點設置埋點
56人點贊
數據分析
贊賞支持還沒有人贊賞,支持一下
鏈接:https://www.jianshu.com/p/f3b846acedf4
Ⅱ 友盟數據埋點前,你要知道這些
一、數據埋點具體應用
1、統計路徑
一般APP所有頁面都會進行埋點,埋點後友盟會統計用戶在頁面上的訪問路徑,通過訪問路徑可以得到整體用戶的行為數據。
2、自定義事件
自定義事件就是具體的埋點,在APP埋了點,具體數據是怎樣的都會在這里呈現。自定義事件分為計數事件以及計算事件。
計數事件主要統計事件發生的數量。計算事件主要統計事件相應的數值類型。
舉個例子,一個購買事件,統計多少人購買成功了屬於計數事件,統計購買成功的人中購買金額的分布規律屬於計算事件。
計數一般比較常用,像點擊計數、應用計數;計算的例如Darkbox的單個視頻的大小。
3、事件轉化率
俗稱漏斗模型,通過漏斗模型,可以看到設定的事件每一步的轉化率,評估每一步的效果。
二、數據埋點的步驟
1、明確埋點的目的,根據需求進行埋點。
埋點前要先想清楚需求是什麼,目的是什麼,要達到這個目的,需要統計哪些數據,要統計這些數據,需要在哪些頁面埋點?埋在頁面哪些位置,通過什麼樣的形式埋點,是統計按鈕點擊數,還是進入頁面的數量?
2、與開發溝通討論
梳理好要埋點的數據後,要多跟開發溝通,討論埋點合理性與可行性,把埋點的目的跟開發描述清楚,一方面開發可以幫忙進行梳理,查缺補漏甚至提出更好的埋點思路;另一方面開發了解清楚後,埋起點來更加胸有成竹,效率更快,防止出錯。
3、開始進行埋點
這塊主要是由開發負責。
4、漏斗模型
數據埋點完成後,如果要統計分析事件轉化率,則需要提前添加漏斗模型,添加漏斗模型後第二天才會開始統計數據。
三、注意事項
1、不要想著一次性就全方位無死角進行埋點,因為這樣工作量是非常龐大的,大量數據反而引起干擾混亂,無從下手,所以在埋點前,一定要明確埋點的目的,不要為了埋點而埋點。要統計的數據龐大時,建議分階段分版本進行埋點,先對主要事件關鍵路徑進行埋點,一步一步完善。
2、埋好點後及時進行跟進,落實埋點的完整性與准確性。
3、記得讓開發注意不要把測試時數據也統計進去了,測試後要清除。
Ⅲ app添加埋點需要知道的那些
--== 數據埋點的意義 ==--
首先我們要知道我們出於什麼目的埋下這些點, 從而確定點要埋在哪裡, 我們埋點的作用包括:
--== 埋點的方式 ==--
普遍的埋點都有兩種形式, 一種是自己配合自己的後台進行對數據的統計, 一種是基於第三方平台, 進行數據的統計.
--== 數據埋點實施 ==--
由於沒有使用過第三方的埋點工具, 所以在這里我就主要以平時原生的埋點案例為例.
--== 埋點的命名方式 ==--
埋點命名一般是以路徑為名, 如「我的」頁面就可以定義為」mine」,如果是」我的」下級頁面的設置頁面就可以追加命名」mine_setting」,下級頁面以此類推, 這樣可以很明了的看清頁面進入的路徑,也同樣方便開發人員控制埋點命名.
結合上文所述, 在對比咱們自己的項目, 其中部分app的埋點功能就會有點片面, 雞肋了, 其中只傳了頁面名稱, 對於訪問這個頁面的路徑目前沒有, 對於用戶的點擊事件目前也沒有涉及, 同樣也沒有全面的數據分析體質. 畢竟項目的埋點才剛剛開始, 還是要慢慢去完善優化的.
Ⅳ 數據埋點是什麼設置埋點的意義是什麼
所謂埋點就是在應用中特定的流程收集一些信息,用來跟蹤應用使用的狀況,後續用來進一步優化產品或是提供運營的數據支撐,包括訪問數(Visits),訪客數(Visitor),停留時長(Time On Site),頁面瀏覽數(Page Views)和跳出率(Bounce Rate)。
這樣的信息收集可以大致分為兩種:頁面統計(track this virtual page view),統計操作行為(track this button by an event)。
埋點的主流有兩種方式:
第一種:自己公司研發在產品中注入代碼統計,並搭建起相應的後台查詢。
第二種:第三方統計工具,如友盟、神策、Talkingdata、GrowingIO等。
如果是產品早期,通常會使用第二種方式來採集數據,並直接使用第三方分析工具進行基本的分析。而對於那些對數據安全比較重視,業務又相對復雜的公司則通常是使用第一種方式採集數據,並搭建相應的數據產品實現其數據應用或是分析的訴求。
埋點的內容
看完關鍵的這些指標後,其實埋點大致分為兩部分,一部分是統計應用頁面訪問情況,即頁面統計,隨頁面訪問動作發生時進行上報;另外一部分是統計應用內的操作行為,在頁面中操作時進行上報(例如:組件曝光時,組件點擊時,上滑,下滑時)。
為了統計到所需要的指標,應用中的所有頁面,事件都被唯一標記,用戶的信息,設備的信息,時間參數以及符合業務需要的參數具體內容被附加上報,就是埋點。
關於埋點的數據的注意事項不要過分追求完美
關於埋點數據有一點至關重要,埋點是為了更好地使用數據,不要試圖得到精準的數據要得到的是高質量的埋點數據,前面討論跳出率就是這個例子,得到能得到的數據,用不完美的數據來達成下一步的行動,追求的是高質量而不是精確。這是很多數據產品容易入坑的地,要經常提醒自己。
Ⅳ 我想請教個問題,經常聽他們說網頁布點、埋點什麼的是什麼意思有什麼用么
埋點是網站和APP等產品進行日常改進及數據分析的數據採集基礎,根據採集得到的用戶行為數據(例如:頁面訪問路徑,點擊了哪一個按鈕)進行數據分析,從而更加合理的推送跟優化,增強用戶體驗。現在市面上有很多第三方埋點服務商,網路統計、友盟、growingIO等。
常見的埋點方法包括:
手動埋點:根據業務需求在需要採集數據的地方進行埋點,是比較常見的埋點手段。
可視化埋點:一些事件帶有元素唯一標識。通過在後台進行埋點配置,將元素與要採集信息關聯起來,然後自動生成埋點代碼嵌入到頁面中,目前發展比較火的埋點方式,但是技術上的實現跟推廣比較困難
無埋點:簡單來說就是沒有埋點,前端會採集用戶所有的行為跟信息,然後後台再對這些信息進行篩選,由於數據量巨大,對伺服器的性能要求很高。
網頁布點即布局,網頁的三種布局:固定布局,流式布局,彈性布局。
固定布局:以px來設置寬度。
流式布局:以百分比來設置寬度!在寬度較小時,行寬會變得非常窄且難閱讀。因此我們要給它添加以px或者em為單位的min-width,從而防止布局變得太窄。
彈性布局:相對於字型大小來設置寬度,以em為單位設置寬度!由於字型大小增加時整個布局寬度會加大,因此可能比瀏覽器窗口寬,導致水平滾動條出現。所以,要給它添加一個max-width為100%。
(5)怎麼做app數據埋點是什麼擴展閱讀:
埋點分析,是網站分析的一種常用的數據採集方法。數據埋點分為初級、中級、高級三種方式。數據埋點是一種良好的私有化部署數據採集方式。
數據埋點分為初級、中級、高級三種方式,分別為:
初級:在產品、服務轉化關鍵點植入統計代碼,據其獨立ID確保數據採集不重復(如購買按鈕點擊率);
中級:植入多段代碼,追蹤用戶在平台每個界面上的系列行為,事件之間相互獨立(如打開商品詳情頁——選擇商品型號——加入購物車——下訂單——購買完成);
高級:聯合公司工程、ETL採集分析用戶全量行為,建立用戶畫像,還原用戶行為模型,作為產品分析、優化的基礎。
Ⅵ 移動應用如何埋點收集什麼數據以便於統計分析
要理解怎麼做的問題,依然還是要從認清是什麼開始:
一、什麼是數據埋點
數據埋點讓產品或運營等相關人員能按照具體的需求,定製性地統計較為復雜的用戶數據。例如想要追蹤用戶的行為,觀察頁面相關點擊數據,關鍵路徑轉化率,分析某個事件活動效果時,就需要事先進行數據埋點,APP上線後才能觀察到相應的數據,進行分析研究。
數據埋點可以在自己的後台進行收集和統計,也可以藉助第三方數據分析平台,這次主要講解如何利用第三方數據分析平台進行數據埋點。
經過以上步驟,一定能夠通過埋點收集到對分析有用的數據~
Ⅶ 數據埋點是什麼意思
問題一:頁面埋點 是什麼意思 頁面埋點的作用,其實就是用於流量分析。而流量的意思,包含了很多:頁面瀏覽
(PV)、獨立訪問者數量(UV)、IP、頁面停留時間、頁面操作時間、頁面訪問次數、按鈕點擊次數、文件下載次數等。
問題二:我想請教個問題,經常聽他們說網頁布點、埋點什麼的是什麼意思?有什麼用么? 埋點:監控用戶點擊的每一步
YUE.on(neoA3, 'click', function(evt) {YUE.preventDefault(evt);YUD.addClass(neoDiv, 'hidden'); 埋點new Image().src = 'atpanel/jsclick?cache=' + (+ new D雞te) + '&cartframe=guanbi';});上面紅色的字體就是埋點了,它不做頁面相關的事情而是把用戶當前點擊的東西,傳到伺服器達到記錄用戶點擊的每一步。
問題三:產品助理的職位描述中有一條:「知道如何埋數據點,取數據」 是什麼意思? 數據埋點,在鏈接中加一串指定代碼吧,我之前做推廣的時候做過。
不知道會不會折疊...
問題四:整天看用戶埋點數據,知道數據是咋來的嗎 我們平時看到的報表復雜而多樣,能夠通過多種緯度的數據評估用戶的使用習慣和對應功能的價值。然而這些報表是如何產生的呢?今天咱們就看看上報數據一步一步變成報表的大致流程。
所有上報的數據都是為了記錄一次事件的發生或者描述一個狀態,具體的上報數據可以設計為KEY-VALUE的形式或者數據組合的形式。KEY- VALUE的形式主要用來統計簡單的計數類上報,如按鈕點擊的次數,某個選項的值等,KEY用來區分不同的事件,VALUE代表事件發生的次數、狀態值等;數據組合的主要用來描述一個事件或者狀態需要多種屬性描述的場景,比如下載成功事件,描述這個事件的數據組合可能包括對應的下載地址、下載渠道來源、下載耗時等信息。
當上報數據設計好後,後續的工作才能正常開展。下面一步一步說。
1、埋點
所謂「埋點」,就是在正常的功能邏輯中添加統計邏輯。拿統計微信右上角「+」的點擊次數為例,上報的數據可以採用KEY-VALUE形式,我們定義 KEY為「CLICK_ADD_BTN」,VALUE的值為點擊的次數。當用戶點擊「+」時,展示菜單的代碼會通過按鈕的「回調」(詳見《聊聊同步、非同步和回調》)來觸發執行,程序猿在業務代碼執行完後,又加上了統計代碼,把「CLICK_ADD_BTN」對應的VALUE加1,「+」被統計到了一次使用。
2、上報
並不是每統計到一次事件或者狀態就會發起數據上報,客戶端統計到的數據會先暫時存儲在內存或者磁碟上,當用戶啟動、退出應用程序的時候,或者在其他更合適的時機,將當前周期統計到的事件批量上報到伺服器,這樣做的目的主要是考慮到與伺服器多次建立連接的性能損耗(詳見《不得不知的TCP和UDP》) 和流量問題(相同大小的數據分多次發送比一次發送要消耗更多流量),另外客戶端在上報具體的統計事件之外,還會將標識用戶的ID一並上報,後續用於計算用戶相關的數據如日使用用戶和留存率等。
3、後台記錄日誌
數據上報到伺服器後,伺服器會將客戶端上報的原始數據存儲到伺服器的磁碟中。一般來說,非強實時性的數據上報到伺服器後,並不會立即參與計算,獲得最終的統計結果,比如一個功能的日使用次數,日用戶數,日留存等數據,而是等到伺服器負載較低的時間段利用預先配置的計劃任務進行離線處理。這樣處理的目的是為了節約伺服器資源(錢),因為大家肯定不想因為計算統計數據而影響實時業務的處理效率。
4、計算&入庫
報表中展示的數據,並不是客戶端上報的原始數據,比如「+」的使用次數、使用用戶數、日留存率這三組數據,都是通過對客戶端上報的「CLICK_ADD_BTN」對應VALUE值的累加並結合上報用戶ID二次計算得出的。
如果我們的產品達到微信這種日登陸數五六億,那麼每天上報的統計數據將是海量的,為了從這種海量的數據中計算出「+」的使用次數、使用用戶數等信息,就需要用到「數據倉庫工具」,比如當下流行的Hive處理工具,它基於Hadoop分布式系統基礎框架,利用計算機集群的能力進行分布式計算。當「數據倉庫工具」計算出最終的結果後,計劃任務會將結果(「+」的日使用次數、日使用用戶數等數據)保存到資料庫中,也就是「入庫」過程。「入庫」後的數據才能與前端對接,組成報表展示系統。
一般情況下,原始數據經過數據倉庫工具處理後,對應的日誌文件還會在伺服器上保留一段時間(一般3~7天),以便追溯統計問題,所以,如果發現統計數據有問題問題,一定要及時反饋給負責的程序猿,否則就會「死」無對證咯。
5、展示
當數據「入庫」後,報表的展示就水到渠成了。報表系統通過前端頁面用戶的輸入獲取查詢條件,然後通過後......>>
問題五:如何做好數據分析的第一步,數據埋點 整理真實有效的大數據。
問題六:移動應用如何埋點收集什麼數據以便於統計分析 如何埋點要看你的產品核心指標是什麼,埋點的目標就是為了獲取核心數據!
數據統計分析就是為了發現問題-定位問題-解決問題-驗證效果
你可以直接安裝部署一個第三方的統計分析系統
Cobub Razor開源的私有化部署,SDK等代碼全開源,更靈活!
問題七:對於網站型的數據都是怎麼做數據埋點的 你網路下
問題八:怎樣對用戶的行為日誌進行數據埋點 以實際的月度Web日誌數據為挖掘對象,運用統計分析方法、回歸分析方法以及關聯規則方法等數據挖掘技術對Web日誌數據進行了較為深入和全面的分析挖掘。 通過統計分析方法,發現了用戶訪問行為的時間特徵和信息需求特徵,並分析了影響網路運行狀況的各種因素。 運用回歸分析方法建立了預測分時段用戶訪問量的回歸方程式
問題九:移動應用如何埋點收集什麼數據以便於統計分析 問題二,相對比較具象化,國內比較普遍的第三方統計工具是友盟和talking data,在大多數的情況下這兩個差別不大,但是如果你的app是游戲或者需要用到互聯網金融的一些垂直細分統計,那麼個人覺得talking data會更有競爭力一些。
問題一,其實這是個對於入門級產品的必備課程,通常在那個環節埋點可以轉化為――對於一個app核心指標是什麼?這些指標的優先順序如何排序?
要回答這個問題,其實考察的又是一個產品的基本功,也就是產品定位與產品目標的確定,以及這些目標的拆解以及短期,中期,長期規劃以及相應的具體roadmap,樓主問了通常情況,那麼在此例舉一下相應的業務拆解步驟,如下:
埋點的宏觀目標是為了獲取數據指標來整體上驗證產品的業務邏輯是否順暢,之前的一些基本假設是否成立?這時候涉及需要驗證的數據可能會涵蓋:產品方向&市場運營&商業邏輯(假設有)三大方面。
通過優先順序和深入度可以將指標拆解為,核心指標和相關衍生指標。
有了橫縱兩條邏輯線條可見的一般性具體指標如下圖:
當然這只是草草列舉一般性的指標,一般對於創業公司以及和你洽談的機構VC,聊到核心指標一般就知道你的產品的基本情況了。
當然對於埋點的目標不同可能還有這樣的情況,如新版本上線的用戶行為和功能效果數據回歸驗證(幾種場景):
1.新功能是否得到用戶的使用與認可?新版本增加的新功能,用戶點擊率怎樣?
2.用戶在核心使用路徑上是否順暢?又沒有因為交互體驗功能按鈕的設計而導致無效點擊增多?
3.市場運營效果的回歸?針對某個特別的日期進行了產品內的廣告banner推廣或者促銷,該活動的效果如何?
總而言之,埋點本身其實是對於自己所設計產品的一個可視化健康檢查,通過邏輯和數據,貫穿產品的整個生命周期,使產品逐步達到最佳狀態從而實現矽谷最近所謂的「growth hacker」的效果,使產品指數級增長。
如果說了這么多你覺得沒用,那麼最後有一句萬能的,看病最簡單粗暴的就是「頭疼醫頭,腳疼醫腳」,產品哪裡最牛逼最有用就最先搞那部分。
問題十:移動應用如何埋點收集什麼數據以便於統計分析 利用統計分析工具比如網路統計,集成他們產品的SDK就可以
Ⅷ 數據埋點技巧
移動互聯網時代,無論是Android、iOS還是小程序,都有很多成熟的解決方案,無需花費很多的時間去處理埋點的事情,而且基於第三方提供的SDK進行埋點,在數據處理和分析上也有很大的優勢。
但是在之前的PC互聯網時代,除了網頁端有網路統計、谷歌分析等,客戶端的埋點似乎沒有一套能拿出來可供大家討論的解決方案,我就基於我的工作經驗和理解,給大家分享一下PC客戶端的埋點。
PC客戶端的埋點
首先,在PC上,我們得知道我們需要統計些什麼內容。
一個PC客戶端,無論是工具類的還是內容類的,我們都希望知道我們提供的服務的效果。那麼,我們從一個客戶端安裝、運行到最終被卸載來看看。
就拿產品使用較多的工具「Axure RP」來舉例吧。如果「Axure RP」是我們自己的軟體,首先我們需要知道被安裝了,之後,我們關注激活情況,也就是使用,到最後,被卸載了,這一整個環節,構成了一個生命周期。 重點來了,對於這個生命周期,所有你想知道的關於「Axure RP」的情況你都可以統計到。
1.軟體的安裝
在PC客戶端安裝的過程中,流程一般是這樣的:①運行安裝包②彈出安裝界面提供給用戶操作③執行安裝過程-寫注冊表、啟動項、計劃任務等④執行安裝過程-創建安裝的文件夾(③和④可以交換)。
在這個環節,我們一般需要知道:
安裝包被運行了
在安裝界面用戶做了哪些操作
我們的安裝過程是否正常執行
我們最終是否安裝成功
在PC上,只要我們的安裝包運行起來了,無論是彈出安裝界面、寫注冊表還是創建文件,這些都是安裝包可以控制的,所以我們能通過安裝包進程,將整個安裝環節的所有數據記錄下來發送到我們的後台並記錄下來 (這里要重點記住,由於安裝是一次性的動作,所以統計一定要發實時的) 。
2.軟體的使用
軟體的使用,包括啟動軟體、使用功能和退出軟體。
在PC上,軟體的啟動有很多種方式,例如開機自啟動、計劃任務、手動點擊快捷方式,我們繼續以「Axure RP」舉例,當我們裝上了「Axure RP」後,會在桌面、開始菜單中,創建快捷方式(有些程序會在任務欄上也創建),同時,會將後綴名為「rp」的文件默認打開方式調整為「Axure RP」。
對於啟動, 我們就有了三種方式:桌面快捷方式、開始菜單快捷方式和默認軟體打開,所以我們需要統計軟體是否被啟動了,是如何啟動的。
對於使用功能, 當軟體運行起來後,其進程就會啟動,這個時候就跟移動端的應用類似,我們需要統計一系列事件,每個功能的使用情況、功能狀態、付費、登錄等一系列信息(區別於移動端的是,在PC上一般這些統計都是做單點統計,例如統計彈窗的彈出、功能的點擊、某個狀態,對於相互關聯的一組事件統計是比較復雜的,需要定義結構體,在一條統計中包含很多組欄位信息,因為沒有成熟的SDK集成,所以基本都要自己定義埋點,復用性較差)。
這部分統計分為公共統計和專用統計。公共統計就是基本信息,常用的是用戶標識、用戶基本信息、計算機硬體信息和其他的可復用的;專用統計就是針對你的功能,你想了解哪些情況,針對性進行埋點統計。
對於軟體退出, 這就比較簡單了,是正常退出還是異常退出?軟體使用了多久退出?
3.軟體的卸載
軟體卸載的流程包括啟動卸載程序、用戶操作、刪除注冊表及文件等操作、完成卸載。
在這個過程中,我們主要關注兩方面的信息,一方面是用戶怎麼卸載的?是主動使用卸載程序,還是通過一些管理軟體進行卸載;另一方面是用戶為什麼要卸載,這個時候我們可以在卸載的界面中給用戶提供選擇,以獲取用戶的反饋。
該怎麼埋點
1.埋點的分類
(1)時效性
PC客戶端一般情況下都比較復雜,子功能很多,可統計的內容很多,為了節省帶寬,我們不可能每次都實時將數據傳輸回來,而且很多時效性不是很強的功能沒有必要實時上報。
實時統計
當功能觸發時或達到一定條件,立即將統計回傳,一般情況下用於時效性比較強的功能,例如活躍統計、營收類統計,我們需要實時分析並調整策略。
延時統計
統計不立即回傳,將統計積累,達到一定的條件或者一定的時間,統一將這部分統計回傳,一般情況用於時效性不強的功能,例如採集設備信息、獲取某些功能的狀態、常規功能的統計,這部分統計使用范圍比較廣,一般都是隔日發送,有一天的延遲,統計的信息晚一天不會對分析產生較大的影響。
(2)埋點的作用
常規的基礎統計
每次統計都需要發送,可以理解為公用統計,這部分統計是將幾乎所有的統計都需要的部分包括進來,封裝成一個統一的部分,每次發送統計都會帶上這些內容,方便管理,節省後續埋點時間。
功能統計
針對特定功能,當功能被使用或者生效的時候,我們需要統計效果或者狀態,可以理解為專用統計,不同於移動端,PC一般沒有第三方提供的SDK,需要每個專用統計自己埋點,維護大量的統計內容,不過在一個公司內部,可以統一設計規范,方便維護。
(3)數據類型
結構體
統計連貫的事件,各項信息之間的關聯很重要。
計數
統計某個行為發生的次數。
字元串
統計內容。
整形
統計數值,也可用來統計狀態。
布爾型
統計需要判斷的類型,一般使用場景較少,為了方便計算,大部分被整形和字元串替代。
2.數據埋點實例
(1)軟體安裝
場景:統計安裝過程中的信息
(2)軟體的使用
場景:軟體啟動後,用戶使用了分享功能,將自己做的原型分享到了雲端,最後用戶關閉了軟體。
要注意的是,軟體啟動和關閉,看需要是可以調整的,如果你只是想知道是不是啟動了,來判斷活躍,那麼僅僅需要啟動的時候發送個整型的值標識即可;如果想知道更詳細的信息,比如啟動方式、啟動時間等等,可以定義結構體,將這一刻更多的信息發送回來,可靈活定義。
(3)軟體卸載
卸載跟軟體安裝類似,這里就不贅述了。
在這里,如果希望收集用戶的卸載原因,可以定義一個字元串,將用戶填寫的內容上報,這種形式的數據如果太多,不太利於分析,所以看產品情況可靈活設置。
Ⅸ 關於數據埋點,你需要知道的技術方案和規范流程
埋點是數據採集的專用術語,在數據驅動型業務中,如營銷策略、產品迭代、業務分析、用戶畫像等,都依賴於數據提供決策支持,希望通過數據來捕捉特定的用戶行為,如按鈕點擊量、閱讀時長等統計信息。因此,數據埋點可以簡單理解為:針對特定業務場景進行數據採集和上報的技術方案。
數據埋點非常看重兩件事,一個是數據記錄的准確性,另一個則是數據記錄的完備性。
先講數據的准確性。數據埋點非常強調規范和流程,因為參數的規范與合法,將直接影響到數據分析的准確性,如果准確性得不到保障,那麼所有基於埋點得出的結論,都是不可信的。辛辛苦苦做了很久的方案,一旦因為一個疏忽的小問題,導致下游集中投訴,其實非常劃不來。
道理每個人都懂,但現實情況中,數據埋點所面對的客觀環境,其實非常復雜,例如:
因此本文有非常長的篇幅來寫流程問題,其實是非常有必要的。
再講數據的完備性。因為埋點主要是面向分析使用,對用戶而言是個額外的功能,因此埋點的業務侵入性很強,很容易對用戶體驗造成影響。別的不說,僅僅是流量的消耗,就很容被用戶噴。因此,要提前想清楚,我們要採集哪些東西,因為修改方案的成本,是傷不起的。
通常情況下,我們需要記錄用戶在使用產品過程中的操作行為,通過4W1H模型可以比較好的保障信息是完備的。4W1H包括:
規定好記錄信息的基本方法之後,按照固定的頻率,如每小時、每天,或者是固定的數量,比如多少條日誌,或者是網路環境,比如在Wifi下上傳,我們就可以開心的把埋點數據用起來了。
當然,數據記錄的時效性也比較重要,但因為埋點數據通常量級會比較大,且各個端數據回傳的時間不同,因此想做到實時統計,還是需要分場景來展開。在Flink技術日漸成熟的今天,全鏈路的實時採集與統計,已經不是什麼難題。
在埋點的技術方案中,首先要重視的,是用戶唯一標識的建設。如果做不到對用戶的唯一識別,那麼基礎的UV統計,都將是錯誤的。
因此,在數據埋點方案中,有兩個信息是一定要記錄的,即設備ID+用戶ID。設備ID代表用戶使用哪個設備,如安卓的ANDROID_ID/IMEI,IOS中的IDFA/UDID,瀏覽器的Cookie,小程序的OpenID等。用戶ID,代表用戶在產品中所注冊的賬號,通常是手機號,也可以是郵箱等其他格式。
當這兩個信息能夠獲得時,不論是用戶更換設備,或者是同一台設備不同賬號登錄,我們都能夠根據這兩個ID,來識別出誰在對設備做操作。
其次,我們來看一下Web的數據採集技術。Web端數據採集主要通過三種方式實現:伺服器日誌、URL解析及JS回傳。
瀏覽器的日誌採集種類又可以分為兩大類:頁面瀏覽日誌和頁面交互日誌。
除此之外,還有一些針對特定場合統計的日誌,例如頁面曝光時長日誌、用戶在線操作監控等,但原理都基於上述兩類日誌,只是在統計上有所區分。
再次,我們來看下客戶端的數據採集。與網頁日誌對應的,是手機應用為基礎的客戶端日誌,由於早期手機網路通訊能力較差,因而SDK往往採用延遲發送日誌的方式,也就是先將日誌統計在本地,然後選擇在Wifi環境下上傳,因而往往會出現統計數據延遲的情況。現如今網路環境好了很多,4G、5G流量充足,尤其是視頻類APP基本上都是一直聯網,因而很多統計能夠做到實時統計。
客戶端的日誌統計主要通過SDK來完成,根據不同的用戶行為分成不同的事件,「事件」是客戶端日誌行為的最小單位,根據類型的不同,可以分為頁面事件(類比頁面瀏覽)和控制項點擊事件(類比頁面交互)。對於頁面事件,不同的SDK有不同的方式,主要區別為是在頁面創建時發送日誌,還是在頁面瀏覽結束後發送日誌,區別在於業務統計是否需要採集用戶的頁面停留時長。
頁面事件的統計主要統計如下三類信息:
埋點其實還需要考慮數據上傳的方案,批量的數據可以通過Flume直接上報,流式的可以寫到Kafka,或者直接使用Flink來處理。這些框架相關的內容不是本文考慮的重點,有興趣的可以自行查閱資料。
有了指導思路和技術方案後,我們就可以著手制定相應的數據埋點流程規范了。
籠統上,流程規范會分成五個步驟,即需求評審、埋點申請、技術開發、埋點驗證、發布上線。
第一步,需求評審。
前文提到過,數據埋點的方案一旦確定,返工和排查問題的成本都很高,但數據埋點之後的分析工作,又涉及到了PD、BI、演算法、數據等多個角色。因此非常有必要,將需求內容和數據口徑統一收口,所有人在一套口徑下,將需求定義出來,隨後業務側再介入,進行埋點方案的設計和開發。
以前文提到的4W1H模型為例,常見的記錄內容如下:
最後我們統計時,按照上述約定,統計用戶在某個時間和地點中,看到了哪些信息,並完成了怎樣的動作。上下游的相關人員,在使用這份數據時,產生的歧義或者是分歧,會小很多。
第二步,埋點申請
當下的熱門應用,大多是以超級APP的形式出現,比如微信、淘寶、支付寶、抖音,超級APP會承載非常多的業務,因此技術方案上會十分統一。
因此,當我們的技術方案確定後,通常要在相應的埋點平台上,進行埋點申請。申請的內容包括分配的SPM、SCM碼是什麼,涉及到的平台是哪些,等等。SPM、SCM是什麼,有什麼用,同樣可以自行查閱。
第三步,技術開發
當需求確定、申請通過後,我們就可以開始開發動作了,這里基本上是對研發同學進行約束。埋點的開發,簡單講,是分成行為埋點和事件埋點兩個大類,每一類根據端的不同進行相應的開發。具體的技術方案詳見前文01章節。
詳細的設計規范,是需要留文檔的,因為代碼不能反應業務的真實意圖,而不論是事後復盤與業務交接,都需要完整的文檔來闡述設計思路。
第四步,埋點驗證
埋點的驗證很關鍵,如果上線後才發現問題,那麼 歷史 數據是無法追溯的。
驗證有兩種方式,一種是實時的功能驗證,一種是離線的日誌驗證。
實時功能驗證,指功能開發好後,在灰度環境上測試相應的埋點功能是否正常,比如點擊相應的業務模塊,日誌是否會正確的列印出來。通常而言,我們需要驗證如下三個類型的問題:
除去實時驗證,我們也需要把日誌寫到測試環境中,查看數據上報的過程是否正確,以及對上報後的數據進行統計,側面驗證記錄的准確性,如統計基本的PV、UV,行為、事件的發生數量。
很多時候,數據是需要多方驗證的,存在一定的上下游信息不同步問題,比如對某個默認值的定義有歧義,日誌統計會有效的發現這類問題。
第五步,發布上線。
應用的發布上線通常會有不同的周期,例如移動端會有統一的發版時間,而網頁版只需要根據自己的節奏走,因此數據開始統計的時間是不同的。最後,應用應當對所有已發布的埋點數據,有統一的管理方法。
大多數時候,數據埋點的技術方案,只需要設計一次,但數據准確性的驗證,卻需要隨著產品的生命周期持續下去,因此僅僅依靠人肉來准確性驗證是不夠的,我們需要平台來支持自動化的工作。埋點的准確性,大體有兩種方法保障:一種是灰度環境下驗證真實用戶數據的准確性;另一種則是在線上環境中,驗證全量數據的准確性。因此,發布上線之後,後續的管理動作,應該是對現有流程的自動化管理,因為團隊大了,需要埋點的東西多種多樣,讓平台自己測試、自動化測試,就是很多測試團隊必須走的路
Ⅹ 數據分析與埋點,產品經理必須掌握的知識和技能
產品經理必須隨時全面而准確地了解自己產品的各項數據,否則只能憑著感性在規劃和設計產品,容易犯錯誤。因此,看哪些數據,如何統計和分析數據,如何進行數據埋點,都是產品經理必須要掌握的知識和技能。
如果你對此還不甚了解,可以通過這篇文章,快速地知道一個大概,然後待到在工作中學習和實踐時,就更加容易上手了。
首先簡單講一下什麼是數據埋點。數據埋點通常是指開發工程師基於業務、運營或產品經理的需要,在產品前端程序中植入相關代碼,以獲取用戶行為等數據的一種技術手段。
對開發人員而言,埋點需求同性能需求一樣都屬於非功能性需求,它們與功能性需求一起組成了產品需求。
網頁中最常見的埋點方式是通過JS代碼來實現的。
比如為了統計用戶的點擊事件,那麼在每個鏈接或按鈕處,都增加一段JS代碼,用戶一旦點擊,無論頁面是否有跳轉、刷新等,都悄悄地請求了伺服器,也就把一大堆信息傳給了伺服器存下來,包括用戶的IP地址、地理信息、瀏覽器參數、點擊的對象、時間等等。
又比如為了統計曝光事件,先定義好何為有效曝光(例如完成載入、渲染並進入用戶視界),然後在有效曝光發生時,執行一段JS代碼,把相關信息傳輸到伺服器。
如果是手機APP或智能設備,則不同於網頁主要使用JS代碼的方式,它們往往被植入SDK(Software Development Kit,即軟體開發工具包)來實現數據埋點。同時,為了避免頻繁連接網路上傳或下載數據,通常會將數據先存儲在手機本地或智能設備中,等到一定的時機,再一次性同步至伺服器。
一定要記住的是,數據埋點只是數據統計和分析的一種技術手段,並非所有的數據統計都必須要有數據埋點。
比如網頁事件。在通過HTTP或HTTPS協議請求時,也就是訪問各種網址時,瀏覽器發送給伺服器的數據包中,不僅僅是地址欄中你看得見的那一行鏈接地址,而且還已經包括了諸如瀏覽器信息、用戶信息、來源URL等,這些信息無需再通過埋點,只需要在後端接受請求的程序中加以解析,把有用的存下來即可。
還有一類數據,也是無需埋點的,比如有多少用戶成功收藏了一篇文章,這本就屬於功能需求的范疇,業務數據中已有記錄。
好了,通過前面提到的各種方式,數據有了,但這還不是最重要的。
有了數據之後,還需要根據需要,從這些可能相當雜亂、冗餘的數據中選出有用的,按照有利於查詢和分析的方式進行二次加工和存儲,使之與生產環境中實時變化著的數據隔離開。然後在此基礎上,生成各類報表,或者提供一個可自行敲入SQL語句查詢數據的界面。
稍有規模的公司通常會有專門的BI團隊,他們的主要工作就是開發並維護一個這樣的數據系統,供包括產品經理在內的各方面人員,隨時隨地地查詢和分析數據。