接上文,我們的數據的中,如果想記錄用戶的點擊行為,一般會有兩種方式進行記錄。
一種方式是在點擊上埋點的方式,在點擊的代碼中加入一些代碼,例如seed=“submit“ 這樣的代碼, 跟踪的JS在用戶點擊的時候向數據記錄的伺服器回發數據代碼的記錄。這樣的埋點可以放在有跳躍產生的連結上,也可以放在例如checkBOX這樣的控制上。
這樣操作的好處是:
·成本相對比較低,在整個頁面的操作上,由於使用者的點擊一般不超過頁面記錄的兩倍,所以這個資料的傳輸量並不是很大。
· 可以記錄使用者絕大多數的操作記錄,並且可以根據資料分析很多的資料問題。
· 記錄遺失量很小,由於是使用者觸發的操作,這個資料99.5%以上可以被記錄下來。
這個方案存在的一些問題:
· 沒有埋點的空白點擊無法記錄;
· 所有監控的頁面位置都需要進行埋點的處理,這對開發來說是一定的成本。
· 只能知道使用者點擊行為,但不知道這個行為是在那個位置發生。
另一種方式是採用點擊記錄的方式,透過頁面上的觸發器,滑鼠每次點擊的時候,向伺服器請求一個資訊。並且擺放在滑鼠當前的座標上。
這樣操作的好處是:
· 無需要對頁面進行其他的處理,只要進行增加整體的程式碼就可以。
· 可以記錄到詳細的每一個點擊的行為,只要使用者是在這個頁面上點擊操作都可以記錄,即使使用者是在頁面上空點。
這個方案存在的一些問題:
· 頁面的成本很高,需要監控頁面上的所有點擊行為,這對頁面本身的壓力就很大,甚至很可能因此而改變使用者的行為。
· 記錄量增加,使用者的行為所產生的資料量遠大於上一個方案的資料。
· 頁面代碼的要求增加,因為是根據座標定位的,所以定位需要注意。
· 資料處理極為複雜,受瀏覽器,螢幕分辨率,CSS代碼等問題影響較大。這點的分析上,必須結合瀏覽器內核和解析度進行分析。例如自適應的頁面,你很可能發現用戶在某個位置有空點擊,而事實上,在他的解析度下,按鈕正好是在那個位置上。
在應用上,記錄第一種方案的資訊就已經夠分析了。第二個方案主要是用在A/B的test。
以一個例子說明各個方式之間的差異:
例如分析瀏覽器的刷新,點擊瀏覽器的刷新會產生一個本頁面到本頁面的跳轉,在頁面上點擊連結也可能產生一個本頁面到本頁面的跳轉,以B頁面命名刷新的頁面。 A頁面上有到B頁面的一個連結。
· 在伺服器日誌的記錄上可能沒辦法區分出本頁面到本頁面的跳轉,因為上面根本沒有來源頁面,連著的B頁面的記錄,可能是在A頁面上點擊B的鏈接,,第一次出現B頁面,之後重新整理B頁面。也可能是兩次的在A頁面上點選B頁面的連結。
· 但是使用了js或圖片的追蹤系統以後,透過來源頁面就可以找到這類的數據,如果來源頁面是B和當前頁面也是B,那麼可以證明是B頁面到B頁面自身的跳轉。但是這個刷新是來自於頁面的點擊,還是瀏覽器上的刷新,就不得而知了。
· 靠著埋點的方式,如果是頁面上的點擊的話,則會在B頁面到B頁面,這條記錄之前有一個頁面的點擊記錄。如果存在點擊記錄,則證明用戶是在B頁面上點擊了一個鏈接,如果是沒有這個點擊記錄,則證明用戶點擊的是瀏覽器的刷新。
事實上,點擊記錄可以做到的事情更多,如果可以在埋點的命名上作一些規則的話,多窗口的操作等等信息,都可以根據埋點的信息分析到。
綜合以上, 那麼如果你想監控網站的安全,日誌資訊就足夠了,如果是想監控網站訪問的數據,只要監控的JS就可以了, 但是如果想知道用戶的點擊行為,就需要在可以點擊的位置上埋點了。
作者:蘭思
文章來源:蘭思的記錄本轉載請註明出處連結。
【相關報道】
數據科普——網站數據是怎麼來的