SlideShare a Scribd company logo
1 of 49
Download to read offline
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 台 灣 資 料 科 學 愛 好 者 年 會 
從網頁存取記錄瞭解使用者行為
與網頁區塊貢獻分析-實戰篇
2 / 48
當老闆、設計師、工程師對網站設計衝突,怎辦?
讓Data說話
3 / 48
Agenda
—  頁面版塊貢獻分析方法
—  如何處理與儲存web access log
—  Ref 還能看什麼資訊?
¡  商品轉換 A - B
¡  使用者搜尋後的點擊(知道搜尋某關鍵字後,點擊了哪個商品)
¡  使用者點擊圖片還是產品名稱?
—  QA
頁面版塊貢獻分析
5 / 48
6 / 48
頁面版塊是什麼?
來源:www.asap.com.tw
7 / 48
頁面版塊是什麼?
搜尋頁
綠茶 無糖
茶飲 分類頁
8 / 48
整個網站還有更多更多版塊,貢獻度如何?
—  某商品熱賣,消費者是怎麼看到的?
電子報?網路廣告?首頁?搜尋?分類?商品自動推薦?商
品人工推薦?排行榜?
—  很多版塊的商品可能是人工挑選,但轉換效益呢?
—  一個畫面可能給太多太多資訊,要機具什麼來簡化頁面呢?
—  必須要有公正且正確的比較基準 – 讓data說話
—  Data說話之前,要先統計每個版塊的點擊狀況
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)
10 / 48
方法二:超連結加上一個參數ref
—  http://a.b.com/product?pid=12345ref=index_中元
普渡2015_3
—  但,要處理龐⼤大的web access log
11 / 48
其他例子
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 / 48
Ref起源
—  上圖是:2010-3-31,當時我們server的web access log
—  amazon.com 從2010-8月才開始使用,名字也叫做ref,根
據 internet archive
(現在才發現已經被拒絕查詢了!?)
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 / 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
…
16 / 48
Ref v.1 頁面版塊點擊比
某時間區間的資料
17 / 48
Ref v.1頁面版塊點擊比,詳細資料
某時間區間的資料
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 / 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 / 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
21 / 48
Ref v.2 頁面版塊點擊比
某時間區間的資料
22 / 48
Ref v.2 頁面版塊點擊比 詳細資料
某時間區間的資料
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 / 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
25 / 48
你已經知道太多了!!
圖片來源:
http://cdn.thewire.com/media/img/upload/wire/2014/03/25/
shutterstock_101127469/lead_large.jpg
http://petsittingology.com/wp-content/uploads/2010/01/keep-secret.jpg
http://doesthisblogmakeuslookfat.com/wp-content/uploads/2012/11/
top_secret.png
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
27 / 48
很好!世界電商龍頭A公司也這樣啊,有問題嗎?
—  SEO問題蠻大der!!!(痛過才知道,為什麼
Google搜尋不到網站商品)
—  因為一模一樣的連結重複太少,導致搜尋引擎索引不
佳
—  怎麼辦?還是不要用ref好了…
—  有解法… 只要匯款到 1234 5678 8765 4321
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 / 48
再加上javascript 動態填入超連結
script
$(document).ready(function() {
$([data-ref]).each(function() {
$(this).attr(href, $(this).attr(href)
+ref=+$(this).attr(data-ref));
});
});
/script
—  DONE! 收功~
如何處理與儲存web access log
31 / 48
每天一堆人在你的網站晃來晃去,你知道嗎?
32 / 48
其實都在web access log裡(如果沒砍掉的話)
33 / 48
路人說:這我知道,用GA不就好了!? 散會?
—  Google Analytics 已經發展到神之領域,別輕易挑戰
他已經有的功能!! 可以先一起用 祂
—  但,看Web access log可以彌補Google Analytics沒有
的地方
¡  Referer資訊,即時追蹤切確地來源uri
¡  版塊貢獻度分析
¡  肥水(web access log)不落外人田!
¡  …
34 / 48
天外飛來一筆:一定要等資料很大才開始嗎?
—  觀察,才能改進
—  先看資料 可以快速反應
—  迅速地回應使用者的留言或來源
—  知道網站版塊使用狀況與貢獻度
—  迅速調整與簡化網站功能
35 / 48
而Web access log 可以看到什麼?
—  一堆垃圾!!!圖片request, js request, 一堆爬蟲,一大
堆的爬蟲,剛開站時,你的server都在回應爬蟲…
—  以及整理之後的…
¡  網頁點擊流(click stream)
¡  網頁版塊點擊貢獻
¡  網頁版塊業績貢獻
¡  …
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 / 48
必須收集什麼才有用呢?
—  身份識別
¡  Cookie id
(或者用Google Analytics的也可, cookie: _ga)
¡  Member id(沒有也無所謂)
¡  Session id
—  Timestamp
—  Request(含參數)
—  User agent
—  Referer (很重要喔!)
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 / 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 / 48
Product log table schema
—  Timestamp, cookie_id, product_id, ref, page_log_id
41 / 48
Page log DB可以做什麼
—  從GA看到來源來自某論壇,可以直接下SQL撈出他真
正的網址(referer),做進一步客服追蹤
—  或每天自動撈 追蹤
—  用來建立clickstream
—  研發用
Ref 搞了那麼久,還能看什麼?
43 / 48
Ref 搞了那麼久,還能看什麼?
—  方便又快速計算:
—  商品間轉換,計算商品相關性,A - B
—  搜尋關鍵字與商品點擊關係
—  產品關鍵字與點擊的關係
—  分類與商品點擊的關係
—  還有很多很多的關係,除了男女關係之外…
44 / 48
商品轉換計算(A - B)
45 / 48
使用者搜尋與商品點擊
—  可以強化自己的全文檢索
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 / 48
Ref的好處
—  可以減少不必要的資料庫寫入
¡  不用每頁後端程式加程式碼寫入各種統計資料庫拖累前台反應
時間
—  可以不用準備集中做統計的server cluster
—  可以用很簡易又快速的方法,做好很多本來難以處理
的web access log
—  正確率呢?絕對有足夠的參考價值
48 / 48
收功~ 嚇!
—  以上用到的東西
¡  收集/處理 web access log:Kafka (大推)
¡  儲存log:impala(分散式資料庫,支援SQL like語法,不錯
用),PostgreSQL(標準RDBMS+好用+個人喜愛+free)
¡  程式語言:Java(個人喜愛),當然可以用任何你喜歡的
¡  資料整理:Excel(絕對是你處理資料過程中的好夥伴),
Java(最後還是要串成查詢介面供內部人使用)
其 他 投 影 片 可 參 考 這 裡
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

More Related Content

Similar to 從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-實戰篇

_WebDissector_VS_GA
_WebDissector_VS_GA_WebDissector_VS_GA
_WebDissector_VS_GA
tonny1982
 

Similar to 從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-實戰篇 (20)

給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例
給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例
給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例
 
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
 
自下而上的数据仓库构建方法
自下而上的数据仓库构建方法自下而上的数据仓库构建方法
自下而上的数据仓库构建方法
 
廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416
 
Data Pipeline Matters
Data Pipeline MattersData Pipeline Matters
Data Pipeline Matters
 
Customer behavior analysis
Customer behavior analysisCustomer behavior analysis
Customer behavior analysis
 
How to run an AI Project @pixnet
How to run an AI Project @pixnetHow to run an AI Project @pixnet
How to run an AI Project @pixnet
 
Big data網站分析─google analytics學習筆記 (情報快訊與轉換功能)
Big data網站分析─google analytics學習筆記 (情報快訊與轉換功能) Big data網站分析─google analytics學習筆記 (情報快訊與轉換功能)
Big data網站分析─google analytics學習筆記 (情報快訊與轉換功能)
 
dtcc-Neo4j.pdf
dtcc-Neo4j.pdfdtcc-Neo4j.pdf
dtcc-Neo4j.pdf
 
【台科大設計所】聊聊設計與數據思維|彭其捷
【台科大設計所】聊聊設計與數據思維|彭其捷【台科大設計所】聊聊設計與數據思維|彭其捷
【台科大設計所】聊聊設計與數據思維|彭其捷
 
SiteTag 系統窮人調校法經驗談
SiteTag 系統窮人調校法經驗談SiteTag 系統窮人調校法經驗談
SiteTag 系統窮人調校法經驗談
 
無中生有 - 利用外部數據打造新商業模式
無中生有 - 利用外部數據打造新商業模式無中生有 - 利用外部數據打造新商業模式
無中生有 - 利用外部數據打造新商業模式
 
Google Analytics 超入門分享
Google Analytics 超入門分享Google Analytics 超入門分享
Google Analytics 超入門分享
 
參考講義展示版-丘祐瑋-20170617-機器學習python入門者課程
參考講義展示版-丘祐瑋-20170617-機器學習python入門者課程參考講義展示版-丘祐瑋-20170617-機器學習python入門者課程
參考講義展示版-丘祐瑋-20170617-機器學習python入門者課程
 
_WebDissector_VS_GA
_WebDissector_VS_GA_WebDissector_VS_GA
_WebDissector_VS_GA
 
手把手教你 R 語言分析實務
手把手教你 R 語言分析實務手把手教你 R 語言分析實務
手把手教你 R 語言分析實務
 
Modern Web Architecture Design Journey
Modern Web Architecture Design JourneyModern Web Architecture Design Journey
Modern Web Architecture Design Journey
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
 
asker's Gartner ITxpo
asker's Gartner ITxpoasker's Gartner ITxpo
asker's Gartner ITxpo
 
DevOPS
DevOPSDevOPS
DevOPS
 

從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-實戰篇

  • 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)
  • 10. 10 / 48 方法二:超連結加上一個參數ref —  http://a.b.com/product?pid=12345ref=index_中元 普渡2015_3 —  但,要處理龐⼤大的web access log
  • 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 …
  • 16. 16 / 48 Ref v.1 頁面版塊點擊比 某時間區間的資料
  • 17. 17 / 48 Ref v.1頁面版塊點擊比,詳細資料 某時間區間的資料
  • 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
  • 21. 21 / 48 Ref v.2 頁面版塊點擊比 某時間區間的資料
  • 22. 22 / 48 Ref v.2 頁面版塊點擊比 詳細資料 某時間區間的資料
  • 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
  • 27. 27 / 48 很好!世界電商龍頭A公司也這樣啊,有問題嗎? —  SEO問題蠻大der!!!(痛過才知道,為什麼 Google搜尋不到網站商品) —  因為一模一樣的連結重複太少,導致搜尋引擎索引不 佳 —  怎麼辦?還是不要用ref好了… —  有解法… 只要匯款到 1234 5678 8765 4321
  • 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! 收功~
  • 32. 32 / 48 其實都在web access log裡(如果沒砍掉的話)
  • 33. 33 / 48 路人說:這我知道,用GA不就好了!? 散會? —  Google Analytics 已經發展到神之領域,別輕易挑戰 他已經有的功能!! 可以先一起用 祂 —  但,看Web access log可以彌補Google Analytics沒有 的地方 ¡  Referer資訊,即時追蹤切確地來源uri ¡  版塊貢獻度分析 ¡  肥水(web access log)不落外人田! ¡  …
  • 34. 34 / 48 天外飛來一筆:一定要等資料很大才開始嗎? —  觀察,才能改進 —  先看資料 可以快速反應 —  迅速地回應使用者的留言或來源 —  知道網站版塊使用狀況與貢獻度 —  迅速調整與簡化網站功能
  • 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 —  搜尋關鍵字與商品點擊關係 —  產品關鍵字與點擊的關係 —  分類與商品點擊的關係 —  還有很多很多的關係,除了男女關係之外…
  • 45. 45 / 48 使用者搜尋與商品點擊 —  可以強化自己的全文檢索
  • 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