Exemple #1
0
        private static void TrackAction(HttpContext context, Config config, ActionType type, string userAgent, string clientIp, string url, string urlReferrer)
        {
            try
            {
                if (config.PiwikConfig.Enabled)
                {
                    PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId, config.PiwikConfig.Url, context);

                    tracker.SetUserAgent(userAgent);

                    tracker.SetIp(clientIp);
                    tracker.SetTokenAuth(config.PiwikConfig.TokenAuth);

                    // Get Referral
                    if (!string.IsNullOrEmpty(urlReferrer))
                    {
                        tracker.SetUrlReferrer(urlReferrer);
                    }

                    if (!string.IsNullOrEmpty(url))
                    {
                        tracker.SetUrl(url);
                    }

                    tracker.DoTrackAction(url, type);
                }
            }
            catch (Exception ex)
            {
            }
        }
        /// <summary>
        /// Update an eCommerce Cart with multiple products
        /// </summary>
        static private void UpdateECommerceCartWithMultipleProducts()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                "Electronics & Cameras",
                500,
                1
                );

            // This one overrides the previous addition
            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                "Electronics & Cameras",
                500,
                2
                );

            piwikTracker.addEcommerceItem(
                "SKU NEW",
                "BLABLA",
                "",
                5000000,
                20
                );


            var response = piwikTracker.doTrackEcommerceCartUpdate(1000);

            displayHttpWebReponse(response);
        }
Exemple #3
0
        static void Main(string[] args)
        {
            PiwikTracker _piwikTracker   = new PiwikTracker(SiteId, PiwikBaseUrl);
            string       _version        = args[0];
            string       _internalDomain = args[1];
            string       _machineName    = Environment.MachineName.ToLower(new CultureInfo("en-GB", false));
            string       _domainName     = Dns.GetHostEntry("").HostName;
            string       _appDataFolder  = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

            // If the cache has been set up this is an update, otherwise it's a new user
            string _installType = File.Exists(_appDataFolder + CacheLocation) ? "update" : "new";

            bool _isInternalDomain = _machineName.Contains(_internalDomain) || _domainName.Contains(_internalDomain);

            // Don't collect telemetry except for users on the internal domain.
            LocalContext.SetTelemetrySettings(_isInternalDomain);

            if (_isInternalDomain)
            {
                // Hash the username and send it with the installer info
                _piwikTracker.SetUserId(ComputeSHA256Hash(Environment.UserName + "@" + _internalDomain + ".com"));

                // Send this information to Matomo
                _piwikTracker.DoTrackEvent("SpeckleAutoCADInstaller", _installType, _version);
            }
        }
        static private void RecordECommerceOrder()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                "Electronics & Cameras",
                500,
                2
                );

            piwikTracker.addEcommerceItem(
                "ANOTHER SKU HERE",
                "PRODUCT name BIS",
                "",
                100,
                6
                );

            var response =
                piwikTracker.doTrackEcommerceOrder(
                    "133nsjusu 1094",
                    1111.11,
                    1000,
                    111,
                    0.11,
                    666
                    );

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a simple page view with advanced user, browser and server properties
        /// </summary>
        static private void RecordSimplePageViewWithCustomProperties()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            piwikTracker.SetResolution(1600, 1400);

            piwikTracker.SetIp("192.168.52.64");
            piwikTracker.SetVisitorId("33c31B01394bdc65");

            piwikTracker.SetForceVisitDateTime(new DateTime(2011, 10, 23, 10, 20, 50, DateTimeKind.Utc));

            piwikTracker.SetResolution(1600, 1400);

            piwikTracker.SetTokenAuth("XYZ");

            var browserPluginsToSet = new BrowserPlugins();

            browserPluginsToSet.Silverlight = true;
            browserPluginsToSet.Flash       = true;
            piwikTracker.SetPlugins(browserPluginsToSet);
            piwikTracker.SetBrowserHasCookies(true);

            piwikTracker.SetLocalTime(new DateTime(2000, 1, 1, 9, 10, 25, DateTimeKind.Utc));

            piwikTracker.SetUrl("http://piwik-1.5/supernova");
            piwikTracker.SetUrlReferrer("http://supernovadirectory.org");

            var response = piwikTracker.DoTrackPageView("Document title of current page view");

            DisplayDebugInfo(response);
        }
        /// <summary>
        /// Records a simple page view with advanced user, browser and server properties
        /// </summary>
        static private void RecordSimplePageViewWithCustomProperties()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setResolution(1600, 1400);

            piwikTracker.setIp("192.168.52.64");
            piwikTracker.setVisitorId("33c31B01394bdc65");

            piwikTracker.setForceVisitDateTime(new DateTime(2011, 10, 23, 10, 20, 50));

            piwikTracker.setResolution(1600, 1400);

            piwikTracker.setTokenAuth("XYZ");

            var browserPluginsToSet = new BrowserPlugins();

            browserPluginsToSet.silverlight = true;
            browserPluginsToSet.flash       = true;
            piwikTracker.setPlugins(browserPluginsToSet);
            piwikTracker.setBrowserHasCookies(true);

            piwikTracker.setLocalTime(new DateTime(2000, 1, 1, 9, 10, 25));

            piwikTracker.setUrl("http://piwik-1.5/supernova");
            piwikTracker.setUrlReferrer("http://supernovadirectory.org");

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a clicked link
        /// </summary>
        static private void TrackLink()
        {
            var piwikTracker = new PiwikTracker(1);

            var response = piwikTracker.doTrackAction("http://dev.piwik.org/svn", PiwikTracker.ActionType.link);

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a file download
        /// </summary>
        static private void trackDownload()
        {
            var piwikTracker = new PiwikTracker(1);

            var response = piwikTracker.doTrackAction("http://piwik.org/path/again/latest.zip", PiwikTracker.ActionType.download);

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a category page view
        /// </summary>
        private static void ECommerceCategoryView()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setEcommerceView("", "", "Electronics & Cameras");
            var response = piwikTracker.doTrackPageView("Looking at Electronics & Cameras page with a page level custom variable");
            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Triggers a Goal conversion
        /// </summary>
        static private void GoalConversion()
        {
            var piwikTracker = new PiwikTracker(1);

            var response = piwikTracker.doTrackGoal(1, 42.69F);

            displayHttpWebReponse(response);
        }
        /// <summary>
        ///  Records a simple page view with a specified document title
        /// </summary>
        static private void RecordSimplePageView()
        {
            var piwikTracker = new PiwikTracker(1);

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a product view which doesn't belong to a category
        /// </summary>
        private static void ECommerceViewWithoutCategory()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setEcommerceView("SKU VERY nice indeed", "PRODUCT name");

            var response = piwikTracker.doTrackPageView("another incredible title!");
            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a product view
        /// </summary>
        private static void ECommerceView()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setEcommerceView("SKU2", "PRODUCT name", "Electronics & Cameras");

            var response = piwikTracker.doTrackPageView("incredible title!");
            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a category page view
        /// </summary>
        static private void ECommerceCategoryView()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setEcommerceView("", "", "Electronics & Cameras");
            var response = piwikTracker.doTrackPageView("Looking at Electronics & Cameras page with a page level custom variable");

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a category page view
        /// </summary>
        private static void ECommerceCategoryView()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.setEcommerceView("", "", new List<string> { "Electronics & Cameras" });
            var response = piwikTracker.doTrackPageView("Looking at Electronics & Cameras page with a page level custom variable");
            displayDebugInfo(response);
        }
        /// <summary>
        /// Triggers a Goal conversion
        /// </summary>
        static private void GoalConversion()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            var response = piwikTracker.DoTrackGoal(1, 42.69F);

            DisplayDebugInfo(response);
        }
        static private void TrackSiteSearch()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            var response = piwikTracker.DoTrackSiteSearch("keyword1", "category2", 0);

            DisplayDebugInfo(response);
        }
        static private void TrackSongPlayback()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            var response = piwikTracker.DoTrackEvent("music", "play", "Eye Of The Tiger");

            DisplayDebugInfo(response);
        }
        /// <summary>
        /// Records a file download
        /// </summary>
        static private void TrackDownload()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            var response = piwikTracker.DoTrackAction("http://piwik.org/path/again/latest.zip", ActionType.Download);

            DisplayDebugInfo(response);
        }
        static private void TrackSiteSearch()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackSiteSearch("keyword1", "category2", 0);

            displayHttpWebReponse(response);
        }
        /// <summary>
        ///  Records a simple page view with a specified document title
        /// </summary>
        static private void RecordSimplePageView()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a clicked link
        /// </summary>
        static private void TrackLink()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            var response = piwikTracker.DoTrackAction("http://dev.piwik.org/svn", ActionType.Link);

            DisplayDebugInfo(response);
        }
        /// <summary>
        ///  Records a simple page view with a specified document title
        /// </summary>
        static private void RecordSimplePageView()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            var response = piwikTracker.DoTrackPageView("Document title of current page view");

            DisplayDebugInfo(response);
        }
        /// <summary>
        /// Triggers a Goal conversion
        /// </summary>
        static private void GoalConversion()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackGoal(1, 42.69F);

            displayDebugInfo(response);
        }
        static private void TrackSongPlayback()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackEvent("music", "play", "Eye Of The Tiger");

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a file download
        /// </summary>
        static private void trackDownload()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackAction("http://piwik.org/path/again/latest.zip", PiwikTracker.ActionType.download);

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a clicked link
        /// </summary>
        static private void TrackLink()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackAction("http://dev.piwik.org/svn", PiwikTracker.ActionType.link);

            displayDebugInfo(response);
        }
        static private async Task TrackSongPlaybackAsync()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            var response = await piwikTracker.DoTrackEventAsync("musicniubi", "play1", "Eye Of The Tiger");

            DisplayDebugInfo(response);
        }
        /// <summary>
        /// Records a product view
        /// </summary>
        static private void ECommerceView()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setEcommerceView("SKU2", "PRODUCT name", "Electronics & Cameras");

            var response = piwikTracker.doTrackPageView("incredible title!");

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a product view which doesn't belong to a category
        /// </summary>
        static private void ECommerceViewWithoutCategory()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setEcommerceView("SKU VERY nice indeed", "PRODUCT name");

            var response = piwikTracker.doTrackPageView("another incredible title!");

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a product view
        /// </summary>
        private static void ECommerceView()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.setEcommerceView("SKU2", "PRODUCT name", new List<string> { "Electronics & Cameras", "Clothes" });

            var response = piwikTracker.doTrackPageView("incredible title!");
            displayDebugInfo(response);
        }
        /// <summary>
        /// Registers 2 eCommerce orders
        /// </summary>
        static private void RecordTwoECommerceOrders()
        {
            var piwikTracker = new PiwikTracker(1);

            // First order

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                "Electronics & Cameras",
                500,
                2
                );

            piwikTracker.addEcommerceItem(
                "ANOTHER SKU HERE",
                "PRODUCT name BIS",
                "",
                100,
                6
                );

            var response =
                piwikTracker.doTrackEcommerceOrder(
                    "137nsjusG 1094",
                    1111.11,
                    1000,
                    111,
                    0.11,
                    666
                    );

            displayHttpWebReponse(response);

            // Second Order

            piwikTracker.addEcommerceItem(
                "SKU2",
                "Canon SLR",
                "Electronics & Cameras",
                1500,
                1
                );

            response = piwikTracker.doTrackEcommerceOrder(
                "1037Bjusu4s3894",
                2000,
                1500,
                400,
                100,
                0
                );

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a product view which doesn't belong to a category
        /// </summary>
        static private void ECommerceViewWithoutCategory()
        {
            var piwikTracker = new PiwikTracker(SiteId, PiwikBaseUrl);

            piwikTracker.SetUserAgent(UA);

            piwikTracker.SetEcommerceView("SKU VERY nice indeed", "PRODUCT name");

            var response = piwikTracker.DoTrackPageView("another incredible title!");

            DisplayDebugInfo(response);
        }
        /// <summary>
        /// Update an eCommerce Cart with one product
        /// </summary>
        static private void UpdateECommerceCartWithOneProductSKUOnly()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed"
                );

            var response = piwikTracker.doTrackEcommerceCartUpdate(1000.2);

            displayHttpWebReponse(response);
        }
Exemple #35
0
        public void GetCustomVariable_Test(Scopes variableScope, int?variableId, string variableName, string variableValue)
        {
            //Arrange
            var sut = new PiwikTracker(SiteId, PiwikBaseUrl);

            if (variableId != null)
            {
                sut.SetCustomVariable(variableId.Value, variableName, variableValue, variableScope);
            }
            //Act
            var actual = sut.GetCustomVariable(variableId ?? 99, variableScope);
        }
        private static void BulkTrackTwoRequests()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.setUserAgent(UA);
            piwikTracker.setTokenAuth("YOUR TOKEN");

            piwikTracker.enableBulkTracking();

            piwikTracker.doTrackPageView("Tracking Request 1");
            piwikTracker.doTrackPageView("Tracking Request 2");

            displayDebugInfo(piwikTracker.doBulkTrack());
        }
        /// <summary>
        /// Triggers a Goal conversion
        /// </summary>
        private static void GoalConversion()
        {
            var piwikTracker = new PiwikTracker(1);

            var response = piwikTracker.doTrackGoal(1, 42.69F);

            displayHttpWebReponse(response);
        }
		public PiwikAnalytics_iOS ()
		{
			if (_piwikTracker == null) {
				_piwikTracker = PiwikTracker.SharedInstanceWithSiteID (AppConfigConstants.PiwikSiteId.ToString (), new NSUrl (AppConfigConstants.PiwikBaseUrl));
			}
		}
        /// <summary>
        /// Triggers a Goal conversion
        /// </summary>
        private static void GoalConversion()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackGoal(1, 42.69F);

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a simple page view with custom geo location parameters
        /// </summary>
        private static void RecordSimplePageViewWithCustomGeoLocation()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setTokenAuth("XYZ");

            piwikTracker.setUserAgent(UA);

            piwikTracker.setCountry("fr");
            piwikTracker.setRegion("A8");
            piwikTracker.setCity("Paris");
            piwikTracker.setLatitude(48.2F);
            piwikTracker.setLongitude(2.1F);

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a simple page view with generation time metric
        /// </summary>
        private static void RecordSimplePageViewWithGenerationTime()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.setGenerationTime(10000);

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayDebugInfo(response);
        }
        private static void RecordECommerceOrder()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                new List<string> { "Electronics & Cameras" , "Clothes"},
                500,
                2
             );

            piwikTracker.addEcommerceItem(
                "ANOTHER SKU HERE",
                "PRODUCT name BIS",
                null,
                100,
                6
            );

            var response =
                piwikTracker.doTrackEcommerceOrder(
                    "133nsjusu 1094",
                    1111.11,
                    1000,
                    111,
                    0.11,
                    666
                );

            displayDebugInfo(response);
        }
        /// <summary>
        /// Update an eCommerce Cart with multiple products
        /// </summary>
        private static void UpdateECommerceCartWithMultipleProducts()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                "Electronics & Cameras",
                500,
                1
            );

            // This one overrides the previous addition
            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                "Electronics & Cameras",
                500,
                2
            );

            piwikTracker.addEcommerceItem(
                "SKU NEW",
                "BLABLA",
                "",
                5000000,
                20
            );

            var response = piwikTracker.doTrackEcommerceCartUpdate(1000);

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Update an eCommerce Cart with one product
        /// </summary>
        private static void UpdateECommerceCartWithOneProduct()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name", "Electronics & Cameras",
                500.2,
                2
            );

            var response = piwikTracker.doTrackEcommerceCartUpdate(1000.4);

            displayHttpWebReponse(response);
        }
        private static void TrackSongPlayback()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackEvent("music", "play", "Eye Of The Tiger");

            displayDebugInfo(response);
        }
        private static void TrackSiteSearch()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackSiteSearch("keyword1", "category2", 0);

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a clicked link
        /// </summary>
        private static void TrackLink()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackAction("http://dev.piwik.org/svn", PiwikTracker.ActionType.link);

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a file download
        /// </summary>
        private static void trackDownload()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            var response = piwikTracker.doTrackAction("http://piwik.org/path/again/latest.zip", PiwikTracker.ActionType.download);

            displayDebugInfo(response);
        }
        /// <summary>
        /// Registers 2 eCommerce orders
        /// </summary>
        private static void RecordTwoECommerceOrders()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            // First order

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                new List<string> { "Electronics & Cameras" },
                500,
                2
             );

            piwikTracker.addEcommerceItem(
                "ANOTHER SKU HERE",
                "PRODUCT name BIS" ,
                null,
                100,
                6
            );

            var response =
                piwikTracker.doTrackEcommerceOrder(
                    "137nsjusG 1094",
                    1111.11,
                    1000,
                    111,
                    0.11,
                    666
                );

            displayDebugInfo(response);

            // Second Order

            piwikTracker.addEcommerceItem(
                "SKU2",
                "Canon SLR" ,
                new List<string> { "Electronics & Cameras" },
                1500,
                1
            );

            response = piwikTracker.doTrackEcommerceOrder(
                "1037Bjusu4s3894",
                2000,
                1500,
                400,
                100,
                0
            );

            displayDebugInfo(response);
        }
        /// <summary>
        /// Update an eCommerce Cart with one product
        /// </summary>
        private static void UpdateECommerceCartWithOneProductSKUOnly()
        {
            var piwikTracker = new PiwikTracker(1);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed"
            );

            var response = piwikTracker.doTrackEcommerceCartUpdate(1000.2);
            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a file download
        /// </summary>
        private static void trackDownload()
        {
            var piwikTracker = new PiwikTracker(1);

            var response = piwikTracker.doTrackAction("http://piwik.org/path/again/latest.zip", PiwikTracker.ActionType.download);

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records 2 custom dimensions
        /// </summary>
        private static void RecordCustomDimensions()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.setCustomTrackingParameter("dimension1", "value1");
            piwikTracker.setCustomTrackingParameter("dimension2", "value2");

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayDebugInfo(response);
        }
        /// <summary>
        /// Update an eCommerce Cart with multiple products
        /// </summary>
        private static void UpdateECommerceCartWithMultipleProducts()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                new List<string> { "Electronics & Cameras" },
                500
            );

            // This one overrides the previous addition
            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name",
                new List<string> { "Electronics & Cameras" },
                500,
                2
            );

            piwikTracker.addEcommerceItem(
                "SKU NEW",
                "BLABLA",
                null,
                5000000,
                20
            );

            var response = piwikTracker.doTrackEcommerceCartUpdate(1000);

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a simple page view with advanced user, browser and server properties
        /// </summary>
        private static void RecordSimplePageViewWithCustomProperties()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.setResolution(1600, 1400);

            piwikTracker.setIp("192.168.52.64");
            piwikTracker.setVisitorId("33c31B01394bdc65");

            piwikTracker.setForceVisitDateTime(new DateTime(2011, 10, 23, 10, 20, 50));

            piwikTracker.setResolution(1600, 1400);

            piwikTracker.setTokenAuth("XYZ");

            var browserPluginsToSet = new BrowserPlugins();
            browserPluginsToSet.silverlight = true;
            browserPluginsToSet.flash = true;
            piwikTracker.setPlugins(browserPluginsToSet);
            piwikTracker.setBrowserHasCookies(true);

            piwikTracker.setLocalTime(new DateTime(2000, 1, 1, 9, 10, 25));

            piwikTracker.setUrl("http://piwik-1.5/supernova");
            piwikTracker.setUrlReferrer("http://supernovadirectory.org");

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayDebugInfo(response);
        }
        /// <summary>
        /// Update an eCommerce Cart with one product
        /// </summary>
        private static void UpdateECommerceCartWithOneProduct()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed",
                "PRODUCT name", new List<string> { "Clothes", "Electronics & Cameras" },
                500.2,
                2
            );

            var response = piwikTracker.doTrackEcommerceCartUpdate(1000.4);

            displayDebugInfo(response);
        }
        /// <summary>
        /// Update an eCommerce Cart with one product
        /// </summary>
        private static void UpdateECommerceCartWithOneProductSKUOnly()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.addEcommerceItem(
                "SKU VERY nice indeed"
            );

            var response = piwikTracker.doTrackEcommerceCartUpdate(1000.2);
            displayDebugInfo(response);
        }
        /// <summary>
        /// Records a clicked link
        /// </summary>
        private static void TrackLink()
        {
            var piwikTracker = new PiwikTracker(1);

            var response = piwikTracker.doTrackAction("http://dev.piwik.org/svn", PiwikTracker.ActionType.link);

            displayHttpWebReponse(response);
        }
        /// <summary>
        /// Records a simple page view with advanced user, browser and server properties
        /// </summary>
        private static void RecordSimplePageViewWithCustomProperties()
        {
            var piwikTracker = new PiwikTracker(28);
            piwikTracker.setUserAgent(UA);

            piwikTracker.setResolution(1600, 1400);

            piwikTracker.setCountry("gb");
            piwikTracker.setCity("London");

            //piwikTracker.setVisitorId("33c31B01394bdc65");
            piwikTracker.setUserId("33c31B01394bdc65");

            piwikTracker.setForceVisitDateTime(new DateTime(2016, 1, 28, 10, 20, 50));

            piwikTracker.setResolution(1600, 1400);

            piwikTracker.setTokenAuth("f458a833a8acfb78d06e85e8e5f01d26");

            var browserPluginsToSet = new BrowserPlugins();
            browserPluginsToSet.silverlight = true;
            browserPluginsToSet.flash = true;
            piwikTracker.setPlugins(browserPluginsToSet);
            piwikTracker.setBrowserHasCookies(true);

            piwikTracker.setLocalTime(new DateTime(2016, 1, 28, 9, 10, 25));

            piwikTracker.setUrl("https://www.ciz-openreach.co.uk/Business/Home/1");
            //piwikTracker.setUrlReferrer("http://supernovadirectory.org");

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayDebugInfo(response);
        }
        /// <summary>
        /// Records 2 page scoped custom variables and 2 visit scoped custom variables
        /// </summary>
        private static void RecordCustomVariables()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            piwikTracker.setCustomVariable(1, "var1", "value1");
            piwikTracker.setCustomVariable(2, "var2", "value2");

            piwikTracker.setCustomVariable(1, "pagevar1", "pagevalue1", CustomVar.Scopes.page);
            piwikTracker.setCustomVariable(2, "pagevar2", "pagevalue2", CustomVar.Scopes.page);

            var response = piwikTracker.doTrackPageView("Document title of current page view");

            displayDebugInfo(response);
        }
        /// <summary>
        /// Triggers a Goal conversion with advanced attribution properties
        /// </summary>
        private static void GoalConversionWithAttributionInfo()
        {
            var piwikTracker = new PiwikTracker(1);
            piwikTracker.setUserAgent(UA);

            var attributionInfo = new AttributionInfo();

            attributionInfo.campaignName = "CAMPAIGN NAME";
            attributionInfo.campaignKeyword = "CAMPAIGN KEYWORD";
            attributionInfo.referrerTimestamp = new DateTime(2011, 04, 08, 23, 48, 24);
            attributionInfo.referrerUrl = "http://www.example.org/test/really?q=yes";

            piwikTracker.setAttributionInfo(attributionInfo);

            var response = piwikTracker.doTrackGoal(1, 42.69F);

            displayDebugInfo(response);
        }