[轉貼] 每個頁面自動加入 Trace Code (透過global.asax)

2012122008:49
出處:http://www.dotblogs.com.tw/jaigi/archive/2012/11/04/80462.aspx

Piwik是一個類似Google Analytics的網頁訪客分析的平台,這種適合在企業內部使用。不過,今天並不是要說明

Piwik偉大之處,而是讓如何讓Web site可以快速加入Piwik的Trace Code,當我們將網站的URL註冊到Piwik平台之

後,可以在Piwik的管理介面得到該網站的Trace Code,該Trace code是javascript組成的

image

看到這邊大家因該可以想到如何將此Trace Code放入頁面中,讓Piwik可以Trace到該頁面資訊。有幾種方式

  1. 在每個頁面加入該Trace code之Javescript
  2. 若是針對整個網站想一次性加入,可以在Master Page加入或是透過Web Part加入
  3. 若是不在前端頁面加入Script,也可以在後端透過程式碼將此Trace Code埋入各個頁面

這次說明如何透過後端進行加入Piwik Trace Code動作

1.首先將Piwik中Trace code拆成兩個javascript檔案

image

將藍色框中的Code放入piwik.js

 

1 var pkBaseURL = (("https:" == document.location.protocol) ? "https://XXXXXXXX/analytics/" : "http://XXXXXXXXXXXX/analytics/");
2 document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));

將綠色框中的Code放入PiwikTracker.js

1 try {
2     var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
3     piwikTracker.trackPageView();
4     piwikTracker.enableLinkTracking();
5 } catch (err) { }

2.在Web Site中的global.asax的Application_PreRequestHandlerExecute中進行撰寫程式碼

PreRequestHandlerExecute:當 ASP.NET 事件處理常式 (例如,網頁或 XML Web Service) 完成執行時發生。

(http://msdn.microsoft.com/zh-tw/library/system.web.httpapplication.postrequesthandlerexecute(v=vs.80).aspx)

透過此事件處理事件將每個要拋出頁面加入此兩個javascript檔案

3.使用IHttpHandler介面處理所有Web Http之要求

1 IHttpHandler handler = HttpContext.Current.CurrentHandler;