谷歌分析服务器端跟踪


google analytics serverside tracking

我试图跟踪从php编写的数据源获取数据的移动应用程序的使用情况。所以我现在正在使用这个脚本。

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

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

有人能做这件事吗?

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

EDIT:我之前的回答有点不正确。我已经修改了。

通常情况下,Google Analytics不会明确地传递位置信息;相反,它依赖用户的IP地址。即,当Google Analytics(分析)"发送"数据到Google Analytics(分析)时,它会向Google Analytics(分析)服务器发出HTTP请求,并且请求代理的IP地址用于确定位置。(同样的方法用于确定用户的浏览器,因为HTTP请求将user - agent头发送到Google的服务器。)

然而,事实证明,在官方的谷歌分析移动库中,有一个特殊的参数,utmip,你可以通过它来模拟这种行为,并给你适当的地理位置报告。您可以下载该库以查看如何在PHP中实现它(它似乎没有传递整个IP地址)

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

提示:从UA-更改您的Analytics web属性ID的前缀在下面给出的服务器端代码片段中。例如,如果你的web属性ID是UA-12345-67,您将使用MO-12345-67服务器端代码片段。

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

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

我已经调整了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);

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

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

(PS -我已经检查并使用正确的MO-????追踪id)