IIS中加入piwik跟踪代码,iispiwik跟踪代码
IIS中加入piwik跟踪代码,iispiwik跟踪代码
好久没来写博了...
今天写一下如何在IIS中加入piwik跟踪代码。
背景:
• piwik 开源php站点统计程序 http://piwik.org
• HttpModule: http://www.cnblogs.com/stwyhm/archive/2006/08/09/471729.html
实现思路:通过HttpModule在aspx页面的body前加入统计代码。
代码实现:
1. 新建dll项目
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; namespace PiwikAnalytics { /// 修改于网上流传的Google Analytics (https://www.google.com/analytics/) script public class PiwikAnalyticsModule : IHttpModule { static string GoogleScript = string.Empty; HttpApplication application; public void Dispose() { //context.BeginRequest -= new EventHandler(OnBeginRequest); } public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(OnBeginRequest); application = context; } void OnBeginRequest(object sender, EventArgs e) { HttpApplication application = (HttpApplication)sender; //web.config中定义的站点字符串,后面会有介绍 string sites = ConfigurationManager.AppSettings["PiwikAnalyticsSites"]; //此处未进行异常处理,大家发布时记得加上哦~ string[] siteArr = sites.Split(';'); string siteid = "5"; foreach (string site in siteArr) { if (application.Request.Url.OriginalString.ToLower().IndexOf(site.Split(',')[0]) > 0) { siteid = site.Split(',')[1]; } } GoogleScript = @" <!-- Piwik --> <script type=""text/javascript""> var pkBaseURL = ((""https:"" == document.location.protocol) ? ""https://yourpiwik.com/piwik/"" : ""http://yourpiwik.com/piwik/""); document.write(unescape(""%3Cscript src='"" + pkBaseURL + ""piwik.js' type='text/javascript'%3E%3C/script%3E"")); </script> <script type=""text/javascript""> //try { var piwikTracker = Piwik.getTracker(pkBaseURL + ""piwik.php"", " + siteid + @"); piwikTracker.trackPageView(); piwikTracker.enableLinkTracking(); //} catch (err) { } </script> <noscript> <p> <img id=""img1"" src=""http://pm.taobao.ali.com/piwik/piwik.php?idsite="+siteid+@"""><?xml version="1.0"?> <configuration> <appSettings> <add key="PiwikAnalyticsSites" value="site,4;meeting,6"/> </appSettings> <system.web> <authentication mode="Windows"/> <httpModules> <add name="PiwikAnalytics" type="PiwikAnalytics.PiwikAnalyticsModule"/> </httpModules> <compilation debug="true"> <assemblies> <add assembly="PiwikAnalytics, version=1.0.0.0, Culture=neutral,PublicKeyToken=0c64deee0d840dfb" /> </assemblies> </compilation> </system.web> </configuration>
要记得把从步骤2中得到的PublicKeyToken替换成你自己的哦~
到此时,重启iis,刷新页面。再去piwik中查看,大功告成!
需特别注意的地方:
1. 注册module时,要按照自己的实际情况配置
2. 上述方式不适用于MVC和模板模式开发
3. 每次改写代码的时候都需要重新生成一次DLL,并且重新注册GAC,并且对站点相应应用程序池中的进行回收
More:另外介绍2个pwiki客户端查看软件
• Desktop Web Analytics
• Piwik Connector
Over 收工!
评论暂时关闭