Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 谷歌分析服务器端跟踪_Php_Google Analytics_Server Side - Fatal编程技术网

Php 谷歌分析服务器端跟踪

Php 谷歌分析服务器端跟踪,php,google-analytics,server-side,Php,Google Analytics,Server Side,我试图跟踪一个移动应用程序的使用情况,该应用程序从用php编写的数据源获取数据。 所以我现在正在使用这个脚本 然而,对我来说重要的是在谷歌分析中看到用户的位置。但这似乎不可用 有人能做到这一点吗 我在网站上创建了如示例所示的事件,但访问者的位置始终设置为“我们”,我相信这正是我的服务器所在的位置。编辑:我以前的回答有点不正确。我已经修改过了 通常,Google Analytics不会自行明确传递位置信息;相反,它依赖于用户的IP地址。也就是说,当Google Analytics向Google

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

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

有人能做到这一点吗


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

编辑:我以前的回答有点不正确。我已经修改过了

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

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

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

提醒:从UA更改Analytics web属性ID上的前缀- 在下面给出的服务器端代码段中。例如,如果您的 web属性ID为UA-12345-67,您可以在 服务器端代码段


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

我调整了谷歌提供的代码,尝试发送请求用户的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)

检查,这可能是GA最强大的服务器端实现库。它也解决了这个问题: