为什么HttpWebRequest在跟踪桌面应用程序指标时没有击中Google Analytics或Piwik ?
本文关键字:Google Analytics Piwik 跟踪 HttpWebRequest 桌面 应用程序 为什么 | 更新日期: 2023-09-27 18:18:50
我的应用程序在启动之前做的最后一件事是启动一个新线程,执行一个简单的HttpWebRequest,我想用Google Analytics或Piwik跟踪:
Thread thread2 = new Thread(new ThreadStart(this.ThreadAnalytics));
thread2.IsBackground = true; thread2.Start();
public void ThreadAnalytics()
{
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://netlauncher.org/version1.0.0.html");
request.Method = "GET";
WebResponse response = request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(),System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
response.Close();
}
catch (Exception) { /* do nothing */ }
}
注意:虽然StreamReader不是必需的,但我已经将其包含在测试中。
我可以看到与WireShark的HTTP GET,但我没有看到任何在谷歌分析。这让我相信这是一个Java问题。我切换到Piwik,使用他们的图像跟踪代码,不需要Java:
<img src="http://mydomain.com/piwik.php?idsite=1&rec=1" style="border:0" alt="" />
与Google Analytics一样,我可以使用IE for Firefox导航到这个页面并看到点击出现。然而,从我的应用程序命中没有。我还尝试指定用户代理、语言等。有什么是我忽略了的吗?
Google Analytics也不需要Java(它使用JavaScript)。
问题是GA、Piwik和大多数其他分析工具都需要某种类型的回调,这些回调是作为HTML页面的一部分加载的资源——通常是图像或JavaScript调用。通过只读取HTTP响应,您的代码目前没有加载任何将被这些工具之一使用的依赖资源。
Google Analytics可能会提供一个API,你可以直接调用你正在尝试的东西。同样,与您的Piwik代码,您可以通过直接调用http://mydomain.com/piwik.php?idsite=1&rec=1
URL作为您的HttpWebRequest的一部分,而不是调用包含该URL的图像引用的HTML页面来让它工作。否则,您将需要使用额外的代码或库来充当浏览器,并实际"加载"您在请求响应中收到的HTML。