Esempio n. 1
0
        public static void TrackPageView(HttpRequestBase request, Config config, string title)
        {
            // Handle Piwik Tracking if enabled
            if (config.PiwikConfig.Enabled)
            {
                try
                {
                    // Follow Do Not Track
                    string doNotTrack = request.Headers["DNT"];
                    if (string.IsNullOrEmpty(doNotTrack) || doNotTrack != "1")
                    {
                        string sub = request.RequestContext.RouteData.Values["sub"].ToString();
                        if (string.IsNullOrEmpty(sub))
                        {
                            sub = request.Url.AbsoluteUri.GetSubdomain();
                        }
                        if (config.DevEnvironment)
                        {
                            sub = "dev - " + sub;
                        }

                        PiwikTracker.URL = config.PiwikConfig.Url;
                        PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId);

                        // Get Request Info
                        string ipAddress = request.ClientIPFromRequest(true);
                        tracker.setIp(ipAddress);
                        tracker.setTokenAuth(config.PiwikConfig.TokenAuth);
                        tracker.setUrl(request.Url.ToString());

                        tracker.setUserAgent(request.UserAgent);

                        // Get browser info
                        tracker.setResolution(request.Browser.ScreenPixelsWidth, request.Browser.ScreenPixelsHeight);
                        tracker.setBrowserHasCookies(request.Browser.Cookies);
                        if (!string.IsNullOrEmpty(request.Headers["Accept-Language"]))
                            tracker.setBrowserLanguage(request.Headers["Accept-Language"]);
                        BrowserPlugins plugins = new BrowserPlugins();
                        plugins.java = request.Browser.JavaApplets;
                        tracker.setPlugins(plugins);

                        // Get Referral
                        if (request.UrlReferrer != null)
                            tracker.setUrlReferrer(request.UrlReferrer.ToString());

                        // Send the tracking request
                        tracker.doTrackPageView(string.Format("{0}/{1}", sub, title));
                    }
                }
                catch (Exception ex)
                {

                }
            }
        }
Esempio n. 2
0
        private static void TrackAction(HttpRequestBase request, Config config, string url, PiwikTracker.ActionType type)
        {
            // Handle Piwik Tracking if enabled
            if (config.PiwikConfig.Enabled)
            {
                try
                {
                    // Follow Do Not Track
                    string doNotTrack = request.Headers["DNT"];
                    if (string.IsNullOrEmpty(doNotTrack) || doNotTrack != "1")
                    {
                        PiwikTracker.URL = config.PiwikConfig.Url;
                        PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId);

                        tracker.setUserAgent(request.UserAgent);

                        string ipAddress = request.ClientIPFromRequest(true);

                        tracker.setIp(ipAddress);
                        tracker.setTokenAuth(config.PiwikConfig.TokenAuth);

                        // Get Referral
                        if (request.UrlReferrer != null)
                            tracker.setUrlReferrer(request.UrlReferrer.ToString());

                        tracker.doTrackAction(url, type);
                    }
                }
                catch (Exception ex)
                {

                }
            }
        }