Javascript重定向 - 使用Google Analytics

时间:2011-06-01 16:13:29

标签: php javascript google-analytics

我正在尝试通过一个营销渠道跟踪有多少用户访问我的网站。为客户提供特定于该广告的URL,然后该URL将用户发送到实际站点。在此过程中跟踪它们。我并不完全相信这会做到这一点:

//Include jQuery
<script language="text/javascript" src="jquery.js">

 <script language="text/javascript">
 //Get IP address to block (ours)
 var clientip = "<?php echo $_SERVER['REMOTE_ADDR']; ?>";

 $(document).ready(function() {


 //If IP is forbidden
 if(clientip == "xxx.xxx.xxx.xxx")
 {
      alert("Redirect has been disabled for you");


 } else {


 //GOOGLE ANALYTICS CODE
 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
 _gaq.push(['_trackPageview']);

 (function() {
 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();

 //Redirect User
 window.location = 'http://www.companysite.co.uk';

 }
 });

 </script>

如果用户的IP与禁用的IP不匹配,则此代码应仅运行分析代码。

3 个答案:

答案 0 :(得分:0)

您每页只需加载一次GA。加载GA后,您可以传递其他事件/操作:

_gaq.push(['_setAccount','UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview','/item/to/track']);

答案 1 :(得分:0)

当然,这应该可行,但是如果你要将服务器端和客户端代码混合在一起,为什么不使用服务器端代码输出一位客户端代码或另一位代码第一名。像

这样的东西
<!--Include jQuery-->
<script language="text/javascript" src="jquery.js">

<script language="text/javascript">
$(document).ready(function() {

<?php
  if ($_SERVER['REMOTE_ADDR'] == 'xxx.xxx.xxx.xxx') {
?>
    alert("Redirect has been disabled for you");
<?php
  } else {
?>
    //GOOGLE ANALYTICS CODE
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
    _gaq.push(['_trackPageview']);

    (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();

    //Redirect User
    window.location = 'http://www.companysite.co.uk';
<?php 
 } 
?>

});
</script>

另一件事虽然......你应该将window.location包装在500-1000ms的setTimeout()中,以便GA代码在重定向之前有机会执行。

答案 2 :(得分:0)

虽然这样可行但是有人可以轻松绕过重定向,因为它只是用JavaScript编写的。你最好在服务器上进行重定向。

此外,您不需要这么复杂的东西来排除跟踪中的IP,因为您可以在GA中的配置文件中使用排除过滤器。转到配置文件设置,然后添加具有以下设置的过滤器:

  • 将新过滤器添加到个人资料
  • 过滤器名称:禁止IP
  • 预定义过滤器
  • 过滤器类型:排除&gt;来自IP地址的流量&gt;等于

然后输入您要排除的IP。