點擊流日誌分析
課程介紹
課程名稱:
點擊流日誌分析
1、什麽是點擊流系統?記錄用戶在網站上的操作,用戶行為軌跡。
2、日誌有哪些需要註意的地方,如何采集日誌(flume),日誌格式,日誌包含的信息量(字段)
3、分析什麽?
網址來源,TOPK
客戶端流量占比 Android、IOS、.....
網頁熱力圖
課程目標:
1、 掌握點擊流系統的架構及工作原理
2、 掌握點擊點擊流中常見的字段及其業務含義
3、 掌握點擊流分析系統開發
課程大綱:
1、 背景知識
2、 需求分析
3、 架構設計
4、 Storm程序開發
5、 同步程序開發
課程內容
1、背景知識
1.1、什麽是流量日誌
專業名詞:點擊流,一般叫做點擊流日誌分析
網站分析的主要手段是分析網站的點擊流數據
點擊流這個概念更註重用戶瀏覽網站的整個流程,我們一般也叫做用戶行為軌跡
總結:點擊流其實就是用戶日常瀏覽你的網站時產生的日誌信息
1.2、如何確定用戶的行為軌跡數據?
在一個sessinon 會話中的操作行為(瀏覽行為,點擊行為),每個操作都會產生一條日誌信息
1.3、點擊流日誌信息中包含什麽東西?
1、來源URL ref
2、當前URL req http://www.itcast.cn/121212.html
3、請求時間 reqTime (用戶打開網站的時間)
4、操作類型 type (0:瀏覽操作,1:點擊操作)
9、頁面停留時間
10、用戶IP地址
11、sessionID
12、用戶的賬號信息
13、點擊什麽東西
5、操作系統
6、瀏覽器的信息
7、屏幕尺寸
8、鼠標點擊的位置
1.4、網站分析基礎指標
l IP(獨立IP): 即Internet Protocol,指獨立IP數。00:00-24:00內相同IP地址之被計算一次。
l PV(訪問量): 即Page View,即頁面瀏覽量或點擊量,用戶每次刷新即被計算一次。
l UV(獨立訪客):即Unique Visitor,訪問您網站的一臺電腦客戶端為一個訪客。
00:00-24:00內相同的客戶端只被計算一次。
用戶訪問量>=獨立訪客>=IP
l Source: 用戶來源域名的統計
l Browser: 用戶的訪問設備統計
1.5、 網站分析指標分類
1.5.1流量數量指標
1.5.1.1瀏覽量(PV)
l 定義:頁面瀏覽量即為PV(Page View),用戶每打開一個頁面就被記錄 1 次。
l 技術說明:一個PV即電腦從網站下載一個頁面的一次請求。當頁面上的JS文件加載後,統計系統才會統計到這個頁面的瀏覽行為,有如下情況需註意:
1.用戶多次打開同一頁面,瀏覽量值累計。
2.如果客戶端已經有該緩沖的文檔,甚至無論是不是真的有這個頁面(比如JavaScript生成的一些腳本功能),都可能記錄為一個PV。但是如果利用網站後臺日誌進行分析,因為緩存頁面可能直接顯示而不經過服務器請求,那麽不會記錄為一個 PV。
l 涵義:PV越多越說明該頁面被瀏覽的越多。PV之於網站,就像收視率之於電視,已成為評估網站表現的基本尺度。
1.5.1.2訪問次數
l 定義:訪問次數即Visit,訪客在網站上的會話(Session)次數,一次會話過程中可能瀏覽多個頁面。
l 技術說明:如果訪客連續30分鐘內沒有重新打開和刷新網站的網頁,或者訪客關閉了瀏覽器,則當訪客下次訪問您的網站時,訪問次數加1。反之,訪客離開後半小時內再返回,則算同一個訪次,以上對訪客的判斷均以 Cookie 為準。
l 涵義:頁面瀏覽量(PV)是以頁面角度衡量加載次數的統計指標,而訪問次數(Visit)則是訪客角度衡量訪問的分析指標。如果網站的用戶黏性足夠好,同一用戶一天中多次登錄網站,那麽訪問次數就會明顯大於訪客數。
1.5.1.3訪客數(UV)
l 定義:訪客數(UV)即唯一訪客數,一天之內網站的獨立訪客數(以Cookie 為依據 ),一天內同一訪客多次訪問網站只計算 1 個訪客。
l 技術說明:當客戶端第一次訪問某個網站服務器的時候,網站服務器會給這個客戶端的電腦發一個Cookie,記錄訪問服務器的信息。當下一次再訪問服務器的時候,服務器就可以直接找到上一次它放進去的這個Cookie,如果一段時間內,服務器發現兩個訪次對應的Cookie編號一樣,那麽這些訪次一定就是來自一個 UV 了。
l 涵義:唯一訪客數(UV)是訪客維度看訪客到達網站的數量。
1.5.1.4新訪客數
l 定義:一天的獨立訪客中,歷史第一次訪問網站的訪客數。
l 涵義:新訪客數可以衡量營銷活動開發新用戶的效果。
1.5.1.5新訪客比率
l 定義:新訪客比率=新訪客數/訪客數。即一天中新訪客數占總訪客數的比例。
l 涵義:整體訪客數不斷增加,並且其中的新訪客比例較高,能表現網站運營在不斷進步。就像人體的血液循環一樣,有新鮮的血液不斷補充進來,充滿活力。
1.5.1.6 IP數
l 定義:一天之內,訪問網站的不同獨立IP個數加和。其中同一IP無論訪問了幾個頁面,獨立 IP 數均為 1。
l 涵義:從 IP 數的角度衡量網站的流量。
1.5.2流量質量指標
1.5.2.1跳出率
l 定義:只瀏覽了一個頁面便離開了網站的訪問次數占總的訪問次數的百分比,即只瀏覽了一個頁面的訪問次數 / 全部的訪問次數匯總。
l 涵義:跳出率是非常重要的訪客黏性指標,它顯示了訪客對網站的興趣程度:跳出率越低說明流量質量越好,訪客對網站的內容越感興趣,這些訪客越可能是網站的有效用戶、忠實用戶。該指標也可以衡量網絡營銷的效果,指出有多少訪客被網絡營銷吸引到宣傳產品頁或網站上之後,又流失掉了,可以說就是煮熟的鴨子飛了。比如,網站在某媒體上打廣告推廣,分析從這個推廣來源進入的訪客指標,其跳出率可以反映出選擇這個媒體是否合適,廣告語的撰寫是否優秀,以及網站入口頁的設計是否用戶體驗良好。
1.5.2.2平均訪問時長
l 定義:平均每次訪問在網站上的停留時長,即平均訪問時長等於總訪問時長與訪問次數的比值。
l 涵義:平均訪問時間越長則說明訪客停留在網頁上的時間越長:如果用戶對網站的內容不感興趣,則會較快關閉網頁,那麽平均訪問時長就短;如果用戶對網站的內容很感興趣,在網站停留了很長時間,平均訪問時長就長。
1.5.2.3平均訪問頁數
l 定義:平均每次訪問瀏覽的頁面數量,平均訪問頁數=瀏覽量/訪問次數。
l 涵義:平均訪問頁數多說明訪客對網站興趣越大。而瀏覽信息多也使得訪客對網站更加了解,這對網站市場信息的傳遞,品牌印象的生成,以至於將來的銷售促進都是有好處的。一般來說,會將平均訪問頁數和平均訪問時長這兩個指標放在一起分析,進而衡量網站的用戶體驗情況。
1.5.3流量轉化指標
1.5.3.1轉化次數
l 定義:訪客到達轉化目標頁面,或完成網站運營者期望其完成動作的次數。
l 涵義:轉化就是訪客做了任意一項網站管理者希望訪客做的事。與網站運營者期望達到的推廣目的和效果有關。
1.5.3.2轉化率
l 定義:轉化率 = 轉化次數 / 訪問次數。
l 涵義:轉化率即訪問轉化的效率,數值越高說明越多的訪次完成了網站運營者希望訪客進行的操作。
用戶在電商的行為:
用戶 瀏覽某一個專題頁、流量加入購物車、下訂單、支付
a 專題頁1 1 1 1
b 專題頁1 1 0 0
c 專題頁1 1 0 0
d 專題頁1 1 1 0
e 專題頁1 1 1 0
前提是有瀏覽過:
A轉化: 3/5 = 60% 加入購物到下單的轉化
B 轉換: 1/3 = 33% 下單到支付的轉化
支付的問題:支付密碼太長,短信沒有收到,支持的銀行太少,不能貨到付款,瀏覽器的兼容性
重復次數太多,30% 因為密碼多次輸入造成訂單流失,提交點擊行為獲取
短信沒收到,10% 因為短信驗證碼輸入框沒有輸入,確定記錄沒有
支持的銀行太少,5%,因支付銀行列表中沒有找到對應的銀行
1.6 企業點擊流日誌分析的一般流程
1、數據準備工作
有點擊流日誌系統開發人員,將網站的日誌信息全部收集過來。日誌信息中包含的指標盡可能多
2、業務需求(每個部門都有很多數據分析的需求,比如專題頁就有很多個)
需求人員需要對指標進行標準定義,根據指標列出要收集哪些數據
3、報表開發
報表開發人員評估業務需求中的指標,如果指標需要的數據沒有,進行反饋。
巧婦難做無米之炊
1.7、點擊流系統的一般工作原理
2、需求分析
2.1、點擊流日誌的主要分類
l 搜索日誌:搜索歷史的記錄主要包括用戶信息、時間、地址、檢索的關鍵詞,檢索關鍵詞拼音及縮寫,用戶年紀等,其中,記錄的時間包括檢索發生時的小時、當天是周幾、當天的日期信息;地址信息包括了省市區縣信息。
l 點擊日誌:點擊歷史記錄了當前點擊記錄的用戶信息、時間、地址、檢索詞、點擊記錄的序號、點擊記錄的ID,其中,記錄的時間包括檢索發生時的小時、當天是周幾、當天的日期信息;記錄了該產品是在搜索結果中點擊的還是推薦結果中點擊的;地址信息包括了省市區縣信息。
l 購買日誌:購買歷史分類已付款和未付款,並記錄的有付款時間和訂單時間。統計還記錄了用戶信息、時間、地址、檢索詞、點擊記錄的序號、購買記錄的ID,並且統計了在查看了該記錄多少次以後購買的,也記錄了該產品是在搜索結果中點擊的還是推薦結果中點擊的,其中,記錄的時間包括檢索發生時的小時、當天是周幾、當天的日期信息;地址信息包括了省市區縣信息。
l 瀏覽日誌:瀏覽數據是用戶在查看產品信息的瀏覽記錄,一次點擊查看的頁面會記錄多條瀏覽數據,該記錄是采樣數據,采集的頻率是10秒一次,記錄了用戶信息、時間、地址、檢索詞、產品ID、當前鼠標瀏覽位置、當前頁面焦點位置、當前頁面滾動次數、距離上一次滾動時間等信息。
2.2、點擊流日誌的采集方式
l 顯式模式主要是面談和樣本調查,用戶在被調查過程中會受到心理等外界因素影響,有一定的局限性,並且調查成本較大;
l 隱式模式主要是對用戶在訪問過程中產生的數據進行日誌分析,相對客觀且對用戶行為有較小的幹涉,是用戶行為分析中常用方式。
2.3、業務需求
在電商企業中,產品在做活動的時候,需要根據一些指標數據來觀看活動的效果,常見的會包括pv、uv、訂單數、訂單人數、訂單轉化率、用戶來源等等指標。隨著業務人員對數據的實時性的要求越來越高,一些不依賴歷史數據、可以被快速分析的指標就會使用流式計算來分析,讓業務人員實時的看到活動推動的效果,並輔助做相關的決策。
2.4、功能需求
1、 實時計算一個頁面的訪問量、獨立訪客、獨立IP、訪問次數
2、 實時計算一個標簽的訪問量、獨立訪客、獨立IP、訪問次數
3、 對相關實時指標通過曲線圖進行展示、維度為每分鐘、每半小時、每小時、每天等
2.5、數據準備
通過點擊流系統獲取用戶行為日誌,經過解析之後,得到以下的字段
2.6、數據分析
l type:表示日誌類型有哪些,分別是瀏覽日誌、點擊日誌、搜索日誌、購買日誌,通過type能夠明確的知道用戶當前操作的業務類型
l hrefTag:一個標簽的唯一標識,通過hrefTag能夠知道用戶當前點擊的標簽是什麽
l hrefContent:當前標簽的文本內容
l referrefUrl:當前請求的來源網址,如:http://www.itcast.cn/
l requestUrl:當前請求的網址,如:https://www.taobao.com/market/nvxie/citiao/index.php?spm=a21bo.7724922.8374-1.3.1I6CoM
l clickTime:用戶點擊的時間,該時間作為用戶操作最準確的時間,作為後期業務分析的唯一時間指標。
l coordinate:用戶操作時,鼠標的位置,可以用來分析用戶的點擊習慣
l systemId:產生日誌的業務系統有很多,包括商品系統、訂單系統、會員系統、論壇系統等等,該字段用來區分不同的業務系統。
l userName:當前用戶的賬戶名稱
2.7、功能實現分析
1,實時計算一個頁面的訪問量、獨立訪客、獨立IP、訪問次數
定位一個頁面可以通過用戶當前請求的requestUrl進行定位。
產品人員將需要分析的頁面,輸入給程序。
2,實時計算一個標簽的訪問量、獨立訪客、獨立IP、訪問次數
定位一個標簽可以通過hrefTag進行分析。
產品人員將需要分析的標簽,輸入給程序。
3、如何存儲用戶的輸入信息
將產品人員需要分析的頁面或標簽,抽象為一個任務。任務信息為:任務編號、任務需要比對的字段、任務的值(用戶輸入的值)、比較方式(String的三種比較方式,包含,相等,正則)等。
4、如何進行曲線展示
為每個任務生成每分鐘的增量數據,在增量數據的基礎上進行曲線展示
3、原型設計
產品經理設計產品原形
4、架構設計
4.1、整體流程設計
1、通過日誌收集系統將數據獲取並存放到某個存儲介質中,本例可以使用kafka
2、Storm程序從kafka中消費數據數據,逐條消費的日誌
3、Storm程序從數據庫中加載產品人員配置的任務信息
4、Storm程序計算每個任務的各項指標,各項指標的中間結果存放在Redis中
5、同步程序,按照一定的時間周期從Redis中計算每個任務的增量數據,並將增量數據存放在mysql數據庫中
6、同步程序,按照每個指標的增量數據計算不同維度的基礎數據
7、報表系統從Mysql數據庫獲取每個每個指標的基礎數據進行展示
4.2、功能模塊設計
l 數據收集模塊,略
l 數據存儲模塊,在Kafka中創建點擊流日誌相關的topic
l Storm程序,該模塊主要有兩個個功能,
功能一:從kafka中消費數據進行實時計算,並將結果存放在Redis中
功能二:從Mysql數據庫中讀取配置文件並定時更新
l 同步程序,該模塊主要是配置相關的定時任務,主要兩個方向:方向一:從Redis中讀取不同任務的增量數據保存到Mysql中。方向二:根據增量數據計算不同維度的數據。
l 報表系統,從mysql數據庫中讀取不同任務的維度數據進行展示,略
4.3、 數據模型設計
4.3.1、 任務表 log_analyze_job
4.3.2、任務明細表 log_analyze_job_condition
4.3.3、任務分鐘增量數據表 log_analyze_job_nimute_append
4.3.4、 任務半小時增量數據表 log_analyze_job_half_append
4.3.5、 任務1小時增量數據表 log_analyze_job_hour_append
4.3.6、任務每天全量數據表 log_analyze_job_day
5、Storm程序開發
5.1、 Storm程序整體目錄
5.2、 LogAnalyzeTopologyMain 驅動類
5.3、 KafkaSpout,從Kafka中讀取
5.4、 MessageFilterBolt,過濾數據
5.5、 ProcessMessageBolt,計算實時指標
5.6、LogAnalyzeHandler,核心類,負責任務加載、任務計算等。
}
6、 同步程序設計
6.1、主函數,配置下相關的調度程序
6.2、OneMinuteCallBack,計算增量數據
6.3、HalfAppendCallBack 計算半小時的增量數據
點擊流日誌分析