谷歌分析服务器端跟踪

时间:2011-08-20 07:34:58

标签: php google-analytics server-side

我正在尝试跟踪移动应用程序的使用,该移动应用程序从用PHP编写的数据源获取数据。 所以我目前正在使用这个脚本。

http://code.google.com/p/serversidegoogleanalytics/

然而,对我来说重要的是在谷歌分析中查看用户的位置。但这似乎不可用。

有人能够做到这一点。

我创建的事件如网站上的示例所示,但访问者的位置始终设置为美国,我相信这就是我的服务器所在的位置。

3 个答案:

答案 0 :(得分:6)

编辑:我之前的回答有点不正确。我修改了它。

通常,Google Analytics不会自行明确传递位置信息;相反,它依赖于用户的IP地址。也就是说,当Google Analytics向Google Analytics“发送”数据时,它向Google Analytics服务器发出HTTP请求,并使用请求代理的IP地址来确定位置。 (同样的方法用于确定用户的浏览器,因为HTTP请求将User-Agent标头发送到Google的服务器。)

然而,事实证明,在官方Google Analytics for Mobile library中,有一个特殊参数utmip,您可以通过该参数来模拟此行为并为您提供正确的地理位置报告。您可以下载该库以查看如何在PHP中实现它(它似乎不会传递整个IP地址。)

看来,为了使用此功能,您必须将您的帐户名称传递为MO-XXX-X,而不是UA-XXX-X

  

提醒:从UA-更改Google Analytics网络媒体资源ID上的前缀   MO-在下面给出的服务器端片段中。例如,如果你的   网络媒体资源ID是UA-12345-67,你可以在你的网站中使用MO-12345-67   服务器端代码段。

他们的PHP库还显示了如何欺骗用户代理以匹配用户代理,以便您可以收集相关的浏览器信息。

答案 1 :(得分:5)

查看http://code.google.com/p/php-ga,这可能是GA最强大的服务器端实现库。它也解决了这个问题:http://code.google.com/p/php-ga/issues/detail?id=9

答案 2 :(得分:0)

我已经调整了代码google耗材以尝试发送请求用户的IP地址,所以类似于:

// Construct the gif hit url.
string utmUrl = utmGifLocation + "?" +
    "utmwv=" + Version +
    "&utmn=" + GetRandomNumber() +
    "&utmhn=" + HttpUtility.UrlEncode(domainName) +
    "&utmr=" + HttpUtility.UrlEncode(documentReferer) +
    "&utmp=" + HttpUtility.UrlEncode(documentPath) +
    "&utmac=" + account +
    "&utmcc=__utma%3D999.999.999.999.999.1%3B" +
    "&utmvid=" + visitorId +
    //"&utmip=" + GetIP(Request.ServerVariables["REMOTE_ADDR"]);
    "&utmip=" + GetIP(Request.UserHostAddress);

SendRequestToGoogleAnalytics(utmUrl);

但在谷歌分析中,我只看到托管服务器在德国的位置,而不是最终用户。

有人知道utmip是否仍在工作/支持吗?它似乎只是使用上面代码运行的IP地址,而不是我传递的请求者的IP地址。

(PS - 我已经检查并使用了正确的MO - ????跟踪ID)