More Related Content Similar to 從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-實戰篇 (20) 從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-實戰篇1. E T H A N Y I N - H A O T S U I ( 崔 殷 豪 )
2 0 1 5 / 8 / 2 3
2 0 1 5 台 灣 資 料 科 學 愛 好 者 年 會
從網頁存取記錄瞭解使用者行為
與網頁區塊貢獻分析-實戰篇
3. 3 / 48
Agenda
— 頁面版塊貢獻分析方法
— 如何處理與儲存web access log
— Ref 還能看什麼資訊?
¡ 商品轉換 A - B
¡ 使用者搜尋後的點擊(知道搜尋某關鍵字後,點擊了哪個商品)
¡ 使用者點擊圖片還是產品名稱?
— QA
8. 8 / 48
整個網站還有更多更多版塊,貢獻度如何?
— 某商品熱賣,消費者是怎麼看到的?
電子報?網路廣告?首頁?搜尋?分類?商品自動推薦?商
品人工推薦?排行榜?
— 很多版塊的商品可能是人工挑選,但轉換效益呢?
— 一個畫面可能給太多太多資訊,要機具什麼來簡化頁面呢?
— 必須要有公正且正確的比較基準 – 讓data說話
— Data說話之前,要先統計每個版塊的點擊狀況
9. 9 / 48
統計版塊點擊常用方法
— 可以從連到商品的(或想追蹤的)超連結下手
— 集中到負責統計的server,再轉網址
¡ http://a.b.com/count?page=indexactivity=中元普渡
2015order=3url=http://a.b.com/product?pid=12345
(Yahoo台灣 部分網址, google search(他一定得這樣做才能搜集
關鍵字與點擊的狀態) )
¡ 但,於額外做統計的server cluster且需扛很大的連線量(所有
點擊都會先到這台server再轉到web server)
12. 12 / 48
頁面版塊追蹤,從哪裡來的參數:ref
— 在每一頁,每個商品或任何超連結加上一個參數ref,
記錄著:
現在是哪一頁的哪個版塊以及相關資訊
現在是哪一頁的哪個版塊以及相關資訊
現在是哪一頁的哪個版塊以及相關資訊
— 例如:
— 在首頁,
http://a.b.com/product?pid=12345ref=index_中元普渡2015
http://a.b.com/product?pid=56789ref=index_中元普渡2015
— 在搜尋頁,
http://a.b.com/product?pid=12345ref=search_result_飲料
— 在分類頁,
http://a.b.com/product?pid=12345ref=分類_依銷售量排序
13. 13 / 48
Ref起源
— 上圖是:2010-3-31,當時我們server的web access log
— amazon.com 從2010-8月才開始使用,名字也叫做ref,根
據 internet archive
(現在才發現已經被拒絕查詢了!?)
14. 14 / 48
Ref v.1:只記錄頁面與區塊
— 時間大約在2009年底想到這個方法,2010年3月底上
線試用,一試成主顧
— ref=頁面代碼_區塊代碼_順序
— Examples:
ref
頁面代碼
區塊代碼
順序
i_p7_2
i: 首頁
p7: 第7個版塊
此區塊第2個
i_new_8
i: 首頁
new: 最新商品
此區塊第8個
srh_result_java
srh: 搜尋
result: 搜尋結果
關鍵字java
15. 15 / 48
Ref v.1 範例
itembest_i1__10773
theme_rentbook_1_12535
theme_rentbook_1_12535
bookinfo_i5__12264
itembest_i1__10773
bookinfo_i7__13039
bookinfo_i7__13041
viewer_i0_13041
bookinfo_i1_2_12130
viewer_i0_9981
bookinfo_i1_3_12182
theme_rentbook_1_12535
bookinfo_i5__13068
theme_rentbook_1_12535
i_p2_12933
i_p5_12437
i_p5_12437
bookinfo_i6__12251
bookinfo_i7__12429
bookinfo_i5__10707
bookinfo_i7__10705
bookinfo_i5__10705
theme_rentbook_1_12535
viewer_i0_13151
search_1_12082
bookinfo_i6__12533
i_p1_11_10338
bookinfo_i6__12124
i_p1_13095
category_i1_9_13173
bookinfo_i5__10616
theme_rentbook_27_12432
search_1_12125
category_i1_3_13088
bookinfo_i7__12935
itembest_i1__10773
bookinfo_i7__12997
bookinfo_i7__13013
bookinfo_i5__12437
theme_rentbook_1_12535
theme_rentbook_1_12535
category_i1_9_13037
itembest_i1__10773
category_i1_5_13177
category_i1_5_13177
bookinfo_i6__12126
search_1_12865
search_1_12865
bookinfo_i6__12130
bookinfo_i1_2_12130
bookinfo_i7__12129
search_5_13036
itembest_i1__12129
itembest_i1__12130
bookinfo_i7__12127
bookinfo_i5__12252
bookinfo_i7__12261
bookinfo_i7__12127
bookinfo_i7__12130
bookinfo_i7__12129
itembest_i1__10773
viewer_i0_12129
bookinfo_i6__12990
bookinfo_i5__10707
bookinfo_i7__12262
bookinfo_i7__10705
search_3_10401
bookinfo_i1_7_12672
bookinfo_i1_1_12754
bookinfo_i1_1_12754
theme_rentbook_1_12535
i_p1_13095
…
18. 18 / 48
Ref v.2
— 時間:大約在2012/5月,演講提到Ref v.1之後隔幾天,我
們就大部份的link都改用這版
— ref=
主題館_網頁代碼_KEY_區塊名稱_順序_版塊位置代碼
— 版塊位置代碼:
¡ ⼤大約將網站分成三種落版
¡ single column(1M)
¡ 2 columns(分左右邊, 2L, 2R)
¡ 3 columns(分左中右, 3L, 3M, 3R)
¡ 後面再接出現的順序
19. 19 / 48
Ref v.2 範例
3C主題館 首頁
排行榜20
最新3C商品
七夕情人節特選商品
ref=3c_idx_none_top20_3_2R3
ref=main_product_1234_alsobuy_1_1M2
產品1234
售價: 99元
相關商品
別人也買了什麼?
此分類排行榜
ref=主題館_網頁代碼_KEY_區塊名稱_順序_版塊位置代碼
20. 20 / 48
Ref v.2 範例
bk11_ssea_2R1_list_5t_%e6%a8%93%e9%9b
%a8%e6%99%b4
bk11_info_2R5_books_4_18519
bk11_cate_2R2_list_44t_105
bk11_cate_2R2_list_47t_105
mobile_viewer_1M1_dm_1_20470
bk11_cate_2L2_top_9_118
romance_tag_2R2_list_14t_147
mobile_viewer_1M1_dm_1_20470
mobile_info_1M3_introduce_0_19664
bk11_info_2R5_books_2_21446
mobile_viewer_1M1_dm_1_20470
mobile_cate_1M1_new_10_98
bk11_info_2R6_series_1_22041
bk11_info_2R5_abuy_5_20952
mobile_cate_1M1_new_12_98
bk11_info_2L1_new_2_12415
bk11_cate_2R2_list_4s_105
mobile_viewer_1M1_dm_1_20152
bk11_cate_2R2_list_4i_105
bk11_info_2R5_books_1_17685
bk11_cate_2R2_list_4i_105
bk11_info_2R6_catrec_3_19836
bk11_info_2L1_new_10_22202
bk11_info_2R5_series_1_22216
bk11_viewer_1M1_dm_1_21599
rentbook_index_2R2_list_1r_0
bk11_cate_2R2_list_5i_113
rentbook_index_2R2_list_1r_0
bk11_info_2R5_books_1_15472
bk11_info_2R5_abuy_4_18634
bk11_info_2R6_series_2_22041
bk11_info_2R6_series_3_22041
bk11_info_2R6_series_1_15465
bk11_info_2L1_new_9_17676
bk11_info_2R6_series_2_18285
bk11_info_2R7_aview_2_18286
rentbook_index_2R2_list_1r_0
mobile_viewer_f1_pu_2_15107
mobile_viewer_f1_pu_2_15107
mobile_viewer_1M1_dm_1_15139
mobile_info_1M7_series_1_14563
bk11_cate_2R2_list_14i_113
bk11_info_2R6_series_1_15432
bk11_info_2R6_series_3_22041
mobile_viewer_1M1_dm_1_15140
mobile_info_1M4_abuy_2_14564
mobile_viewer_1M1_dm_1_15140
mobile_info_1M9_aview_7_14564
mobile_i_1M2_p1_4_0
mobile_info_1M9_aview_7_14564
mobile_i_1M2_p1_10_0
23. 23 / 48
Ref v.3
— 時間:大約2013/8月,進入uitox.com時重新再想
— ref=館別_網頁_KEY_區塊名稱_順序_落版代碼_版
塊位置代碼_版塊序號
— 落版代碼為a/b/c/d testing時,看到不同版面的給予
不同的代碼,之後直接看ref就可進行分析
— Examples: (當然,正式使用都用縮寫 省一點點空間)
¡ ref=3c_index_none_new_1_2015ta_2R_1
¡ ref=3c_index_none_new_1_2015tb_2R_2
¡ ref=3c_index_none_new_1_2015tc_2R_3
24. 24 / 48
Ref v.3 加上a/b/c testing 範例
3C主題館 首頁
排行榜20
最新3C商品
七夕情人節特選商品
3C主題館 首頁
排行榜20
七夕情人節特選商品
最新3C商品
3C主題館 首頁
最新3C商品
排行榜20
七夕情人節特選商品
ref=3c_index_none_new_1_2015ta_2R_1
ref=3c_index_none_new_1_2015tb_2R_2
ref=3c_index_none_new_1_2015tc_2R_3
26. 26 / 48
如何埋ref?直接塞在網址給user?
— 在首頁,連到產品12345的超連結:
a href=“./product?pid=12345ref=index_中元普渡
2015_1”某綠茶/a
— 在分類頁,連結到產品12345的超連結:
a href=“./product?pid=12345ref=category_list_3”某綠
茶/a
— 在搜尋頁,連結到產品12345的超連結:
a href=“./product?pid=12345ref=search_list_綠茶無
糖”某綠茶/a
28. 28 / 48
利用Html data- 屬性
— 將ref資訊寫在 data-ref 屬性裡
— 在首頁,連到產品12345,
a href=“./product?pid=12345” data-ref=“index_中元普渡
2015_1”某綠茶/a
— 在分類頁,連結到產品12345,
a href=“./product?pid=12345” data-ref=“category_list_3”某綠
茶/a
— 在搜尋頁,連結到產品12345,
a href=“./product?pid=12345” data-ref=“search_list_綠茶無糖”
某綠茶/a
29. 29 / 48
再加上javascript 動態填入超連結
script
$(document).ready(function() {
$([data-ref]).each(function() {
$(this).attr(href, $(this).attr(href)
+ref=+$(this).attr(data-ref));
});
});
/script
— DONE! 收功~
33. 33 / 48
路人說:這我知道,用GA不就好了!? 散會?
— Google Analytics 已經發展到神之領域,別輕易挑戰
他已經有的功能!! 可以先一起用 祂
— 但,看Web access log可以彌補Google Analytics沒有
的地方
¡ Referer資訊,即時追蹤切確地來源uri
¡ 版塊貢獻度分析
¡ 肥水(web access log)不落外人田!
¡ …
35. 35 / 48
而Web access log 可以看到什麼?
— 一堆垃圾!!!圖片request, js request, 一堆爬蟲,一大
堆的爬蟲,剛開站時,你的server都在回應爬蟲…
— 以及整理之後的…
¡ 網頁點擊流(click stream)
¡ 網頁版塊點擊貢獻
¡ 網頁版塊業績貢獻
¡ …
36. 36 / 48
再看仔細一點 web access log - nginx
— IP 時間 Request status size referer user-agent
— 222.127.217.62 - - [14/Aug/2015:08:27:22 +0000] GET /marvel/QueryTeam?lang=en HTTP/1.1 200 6143
https://www.reddit.com/r/FutureFight/comments/3ewpsl/tier_list/ Mozilla/5.0 (Windows NT 6.1)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36”
IP:222.127.217.62
時間:14/Aug/2015:08:27:22 +0000
Request: GET /marvel/QueryTeam?lang=en HTTP/1.1
Status: 200 (成功)
Size: 6143
Referer: https://www.reddit.com/r/FutureFight/comments/3ewpsl/tier_list/
User-agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
— 115.134.175.252 - - [14/Aug/2015:13:28:18 +0000] GET /marvel/heroList.jsp?lang=en HTTP/1.1 200 3101
https://www.reddit.com/r/FutureFight/comments/3ewpsl/tier_list/ Mozilla/5.0 (Windows NT 6.1)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36”
— 115.134.175.252 - - [14/Aug/2015:13:28:40 +0000] GET /marvel/heroList.jsp?lang=en HTTP/1.1 200 3101
https://www.reddit.com/r/FutureFight/comments/3ewpsl/tier_list/ Mozilla/5.0 (Windows NT 6.1)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36”
37. 37 / 48
必須收集什麼才有用呢?
— 身份識別
¡ Cookie id
(或者用Google Analytics的也可, cookie: _ga)
¡ Member id(沒有也無所謂)
¡ Session id
— Timestamp
— Request(含參數)
— User agent
— Referer (很重要喔!)
38. 38 / 48
指定成你要的樣子 log format
— Google 請搜尋: nginx web access log format
— Ref:
http://nginx.org/en/docs/http/
ngx_http_core_module.html#variables
— $remote_addr: 遠端的IP位置
— $time_local: 時間
— $request: request
— $query_string: 參數
— $http_referer: 從哪裡來
— $http_user_agent: user agent, 區分瀏覽器或者裝置
— $cookie_NAME ( ex: $cookie_cookieid ) 抓cookie
39. 39 / 48
How to store web access log
Web server 1~N
web access log
Kafka Cluster
Web log
Producer
Topic:
Page log
Page log
Consumer
Page
log
DB
Product
log
DB
DB可以是impala,
或者PostgreSQL,
或MySQL, 或混合
40. 40 / 48
Product log table schema
— Timestamp, cookie_id, product_id, ref, page_log_id
41. 41 / 48
Page log DB可以做什麼
— 從GA看到來源來自某論壇,可以直接下SQL撈出他真
正的網址(referer),做進一步客服追蹤
— 或每天自動撈 追蹤
— 用來建立clickstream
— 研發用
43. 43 / 48
Ref 搞了那麼久,還能看什麼?
— 方便又快速計算:
— 商品間轉換,計算商品相關性,A - B
— 搜尋關鍵字與商品點擊關係
— 產品關鍵字與點擊的關係
— 分類與商品點擊的關係
— 還有很多很多的關係,除了男女關係之外…
46. 46 / 48
統計使用者點擊位置比例
— bk11_i_wl3_p7_3t_0
— bk11_i_wl3_p7_1m_0
— bk11_i_wl3_p7_3i_0
— bk11_i_wl3_p7_4m_0
— bk11_i_wl3_p7_4t_0
— bk11_i_wr7_p0_1m_0
— bk11_i_wr7_p0_1t_0
— bk11_i_wr7_p0_1i_0
— bk11_i_wr7_p0_1m_0
— bk11_i_wr7_p0_2t_0
— bk11_i_wr7_p0_2i_0
— bk11_i_wr7_p0_2m_0
— bk11_i_wl3_p7_2t_0
— bk11_i_wl3_p7_1m_0
點擊位置
比例
標題
30.4%
更多資料
24.1%
圖片
45.6%
產品圖片
產品名稱
更多資訊
47. 47 / 48
Ref的好處
— 可以減少不必要的資料庫寫入
¡ 不用每頁後端程式加程式碼寫入各種統計資料庫拖累前台反應
時間
— 可以不用準備集中做統計的server cluster
— 可以用很簡易又快速的方法,做好很多本來難以處理
的web access log
— 正確率呢?絕對有足夠的參考價值
48. 48 / 48
收功~ 嚇!
— 以上用到的東西
¡ 收集/處理 web access log:Kafka (大推)
¡ 儲存log:impala(分散式資料庫,支援SQL like語法,不錯
用),PostgreSQL(標準RDBMS+好用+個人喜愛+free)
¡ 程式語言:Java(個人喜愛),當然可以用任何你喜歡的
¡ 資料整理:Excel(絕對是你處理資料過程中的好夥伴),
Java(最後還是要串成查詢介面供內部人使用)
49. 其 他 投 影 片 可 參 考 這 裡
h t t p : / / w w w . s l i d e s h a r e . n e t / e t h a n t s u i 7
有 任 何 問 題 , 可 以 與 我 聯 絡
E m a i l : e t h a n 7 7 @ g m a i l . c o m
F a c e b o o k : e t h a n . t s u i . 7
E t h a n Y i n - H a o T s u i ( 崔 殷 豪 )
參數Ref 才是王道啊!
Q A