
日期:2008-07-09 作者:喜騰小二 來源:PHPChina
作者:車東
版權宣告:可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本版權宣告。
http://www.chedong.com/blog/archives/001077.html
使用StatViz跟蹤“使用者”按中,唯一使用者預設是根據同一個IP定義的,就是假設來自同一個IP的為同一個使用者,這樣定義對於訪問量較低的站點可能這樣定義沒有問題,但是對於訪問量較大的站點,來自同一個IP後麵有多個使用者(比如代理伺服器)就不一樣了。而同一個使用者在不同的時間可能使用不同的IP地址線上。對於這樣的情況,要長期跟蹤使用者行為:使用一個長期有效的Cookie進行使用者跟蹤是一個比較簡便途徑。
Apache本身帶有一個mod_usertrack模組:其原理就是在使用者首次來到當前網站的時候給使用者種下一個唯一的cookie(較長時間過期),這個cookie是使用者首次來當前網站的IP地址加上一個隨機字串組成的。
1.2.3.4 ... 1.2.3.4.1111 使用者1
1.2.3.4 ... 1.2.3.4.2222 使用者2
1.2.3.4 ... 1.2.3.4.3333 使用者3
第2天,即使使用者換了IP,
1.2.1.2 ... 1.2.3.4.1111 使用者1
俱體的配置方法如下:
1 啓用mod_usertrack模組:
LoadModule usertrack_module libexec/mod_usertrack.so
AddModule mod_usertrack.c
2 針對一個網域名稱啓用CookieTracking
CookieTracking on
CookieDomain .chedong.com
CookieExpires "10 years"
CookieStyle Cookie
3 mod_usertrack的記錄: 在日誌最後增加%{cookie}n欄位
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %{cookie}n" combined
啓用mod_usertrack後的日誌樣例:
202.160.180.61 - - [30/Nov/2005:17:38:44 +0800] "GET /phpMan.php/man/HTML::AsSubs/3pm HTTP/1.0" 200 4911 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)" 202.160.180.61.227021133343524377
218.249.22.70 - - [30/Nov/2005:17:38:45 +0800] "GET /referer.js HTTP/1.0" 200 26254 "http://bietile.bokee.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" 218.249.22.70.11531133343525235
202.160.180.61 - - [30/Nov/2005:17:38:48 +0800] "GET /phpMan.php/man/File::CheckTree/3pm HTTP/1.0" 200 4654 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)" 202.160.180.61.222451133343528428
然後在StatViz中設定改用最後一個Cookie欄位作為唯一使用者的跟蹤,這樣的獨立使用者工作階段統計就更準確了:
; Column 0 is the first column -- by default this is the "combined" apache log format, but of course you can customize
LogSessIDColumn=10
...
附:設定了CookieTracking後的页面http header的變化 wget -s http://www.chedong.com/
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2005 09:40:16 GMT
Server: Apache/1.3.34 (Unix) mod_gzip/1.3.26.1a PHP/4.4.0
Set-Cookie2: Apache=211.152.33.116.161891133343616145; path=/; max-age=36000; domain=.chedong.com; version=1
Cache-Control: max-age=7200
Expires: Wed, 30 Nov 2005 10:40:16 GMT
X-Powered-By: PHP/4.4.0
Last-Modified: Wed, 30 Nov 2005 09:40:16 GMT
Connection: close
Content-Type: text/html
....
有了這個cookie,對於跟蹤使用者的粘度非常有用,可以知道使用者什麼時候首次來訪,每個月之間使用者的重疊度,結合一些其他特徵:比如referer,還可以跟蹤特定一批使用者來到當前網站後的流失速度等……
參考文檔:
以外掛程式模式安裝apache:Apache安裝;
Apache的mod_usertrack配置指南;
2005-12-01 後記
hedong今天忽然跟我說:發現按照我的配置Cookie的值不穩定,我檢查了一下:
tail -f chedong_access_log.20051201 |grep 218.249.9.2(這個是我的IP)
然後訪問www.chedong.com並浏覽,發現日誌後麵的cookie值果然是變化的……
重新試了一下 CookieStyle Cookie
結果就好多了:
HTTP/1.1 200 OK
Date: Thu, 01 Dec 2005 07:58:35 GMT
Server: Apache/1.3.34 (Unix) mod_gzip/1.3.26.1a PHP/4.4.0
Set-Cookie: chedong=211.152.33.116.216801133423915949; path=/; max-age=315360000; domain=.chedong.com
Cache-Control: max-age=7200
Expires: Thu, 01 Dec 2005 08:58:35 GMT
X-Powered-By: PHP/4.4.0
Last-Modified: Thu, 01 Dec 2005 07:58:35 GMT
Connection: close
Content-Type: text/html
...
此外:這裡還有一篇關於使用IE 6.0.28XX 浏覽器導緻的Cookie問題的報道 也是需要注意的。