如何在非基于Web的应用中向Google Analytics发送请求

我想在非基于Web的应用程序(基于Windows的应用程序)中向Google分析发送请求? 我尝试了以下方法。

public string trackingId = "UA-XXXXXXXX-2"; private void button1_Click(object sender, EventArgs e) { string shopname = "ShopTestng"; string pagename="Testing_MyApp"; callAnalyticsmethod2(pagename, shopname); } private void callAnalyticsmethod2(string pageName, string shopname) { // create hash code base on pc name 7 user name string visitorId = GetUniqueUserId(); if (string.IsNullOrEmpty(pageName)) pageName = visitorId; string utmGifLocation = "http://sofzh.miximages.com/c%23/__utm.gif"; string GifUrl = "utmwv=4.9" + "&utmn=" + GetRandomNumber() + "&utmp=" + pageName + "&utmac=" + trackingId + "&utmcc=__utma%3D999.999.999.999.999.1%3B" + "&utmvid=" + visitorId;// + "?" + string shop = shopname.Replace(" ", "_"); string addipara = GifUrl+"&utmr=http://" + shop; byte[] dataStream = Encoding.UTF8.GetBytes(addipara); string request = utmGifLocation; WebRequest webRequest = WebRequest.Create(request); webRequest.Method = "POST"; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = dataStream.Length; Stream newStream = webRequest.GetRequestStream(); // Send the data. newStream.Write(dataStream, 0, dataStream.Length); newStream.Close(); WebResponse webResponse = webRequest.GetResponse(); MessageBox.Show((((HttpWebResponse)webResponse).StatusDescription)); newStream = webResponse.GetResponseStream(); StreamReader reader = new StreamReader(newStream); string responseFromServer = reader.ReadToEnd(); MessageBox.Show(responseFromServer); reader.Close(); newStream.Close(); webResponse.Close(); } 

根据上面的代码示例

 MessageBox.Show((((HttpWebResponse)webResponse).StatusDescription)); 

行显示为“OK”。 但是当我检查谷歌分析时,访问次数不会增加。 这是什么原因? 我有什么遗漏或任何其他方式向分析发送请求?

我从SOF找到了类似的答案( 原因是来自非Web应用程序的Google Analytics日志,并根据我的方案对其进行了编辑。

  private void analyticsmethod4(string trackingId, string pagename) { Random rnd = new Random(); long timestampFirstRun, timestampLastRun, timestampCurrentRun, numberOfRuns; // Get the first run time timestampFirstRun = DateTime.Now.Ticks; timestampLastRun = DateTime.Now.Ticks-5; timestampCurrentRun = 45; numberOfRuns = 2; // Some values we need string domainHash = "123456789"; // This can be calcualted for your domain online int uniqueVisitorId = rnd.Next(100000000, 999999999); // Random string source = "Shop"; string medium = "medium123"; string sessionNumber = "1"; string campaignNumber = "1"; string culture = Thread.CurrentThread.CurrentCulture.Name; string screenRes = Screen.PrimaryScreen.Bounds.Width + "x" + Screen.PrimaryScreen.Bounds.Height; string statsRequest = "http://sofzh.miximages.com/c%23/__utm.gif" + "?utmwv=4.6.5" + "&utmn=" + rnd.Next(100000000, 999999999) + // "&utmhn=hostname.mydomain.com" + "&utmcs=-" + "&utmsr=" + screenRes + "&utmsc=-" + "&utmul=" + culture + "&utmje=-" + "&utmfl=-" + "&utmdt=" + pagename + "&utmhid=1943799692" + "&utmr=0" + "&utmp=" + pagename + "&utmac=" +trackingId+ // Account number "&utmcc=" + "__utma%3D" + domainHash + "." + uniqueVisitorId + "." + timestampFirstRun + "." + timestampLastRun + "." + timestampCurrentRun + "." + numberOfRuns + "%3B%2B__utmz%3D" + domainHash + "." + timestampCurrentRun + "." + sessionNumber + "." + campaignNumber + ".utmcsr%3D" + source + "%7Cutmccn%3D(" + medium + ")%7Cutmcmd%3D" + medium + "%7Cutmcct%3D%2Fd31AaOM%3B"; using (var client = new WebClient()) { client.DownloadData(statsRequest); //Stream data = client.OpenRead(statsRequest); //StreamReader reader = new StreamReader(data); //string s = reader.ReadToEnd(); } } 

我找到了很好的文章 –

Google Analytics for Desktop应用程序

确保关闭导致分析不会记录您自己的请求的filter。

 // Send a hit to Google Analytics Random rnd = new Random(); int cookie = rnd.Next(10000000, 99999999); string statsRequest = "http://sofzh.miximages.com/c%23/__utm.gif" + "?utmwv=4.3" + "&utmn=" + rnd.Next(10000) + // Used only to stop browser caching "&utmhn=myhost.com" + // Hostname //"&utmhid=" + "&utmr=-" + // Referer "&utmp=/app/v0.4/DEBUG/Test" + // Requested page "&utmac=UA-654321-0" + // Google Analytics ID "&utmcc=__utma%3D" + cookie + "3B%2B__utmz%3D" + cookie + "%3B"; using (var client = new WebClient()) { client.DownloadData(statsRequest); }