服务器端谷歌分析客户端IP



我使用以下代码:

  • https://wordpress.org/support/plugin/seriously-simple-podcasting
  • https://github.com/dancameron/server-side-google-analytics

我正在使用插件提供的wordpress动作挂钩来使用ss-ga类触发XML Feed的页面点击(iTunes需要这个)和podcast播放(下载)的事件:

ssp_file_downloadssp_before_feed

这一切都很好。我使用cloudflare,所以我可以使用$_SERVER['REMOTE_ADDR']$_SERVER["HTTP_CF_CONNECTING_IP"]来获得客户端IP。问题是,使用ss-ga,我无法在注册事件或页面点击时发送客户端IP。因此,它总是显示芝加哥,这是我的主机的数据中心所在的地方。

有人可以建议一种方法来确保,当我发送一个分析事件使用php类,IP是正确的?

提前感谢。如果你想要任何代码,只要让我知道,但我已经使用了两个脚本的文档提供的基本示例。

欢呼。

到目前为止,最好的方法不是使用ss-ga类,而是使用测量协议。测量协议不仅是谷歌分析现在应该实现的方式,它还提供了一个参数&uip来发送用户IP。有各种各样的包在PHP类中实现度量协议,所以它应该不会比ss-ga更难使用(事实上,它很可能更简单、更可靠,并且有更好的文档,因为它是专门为GA提供与语言无关的接口而构建的)。

您可以尝试使用getFullBeaconUrl()生成GIF URL,然后通过Curl请求该GIF,并将IP设置为用户的IP。像这样的代码应该可以工作:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $gifUrl);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip"));

最新更新