为什么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导航到这个页面并看到点击出现。然而,从我的应用程序命中没有。我还尝试指定用户代理、语言等。有什么是我忽略了的吗?

为什么HttpWebRequest在跟踪桌面应用程序指标时没有击中Google Analytics或Piwik ?

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。