Google Analytics(分析) - 与页面跟踪代码</script>不同的<script>中的事件跟踪代码

时间:2013-06-20 21:04:20

标签: javascript google-analytics

在我正在处理的网站上,跟踪代码的主要部分位于页面的底部(不是我选择的展示位置,而是它的位置)。该代码是主要的:

var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
  _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);
})();

在一个特定页面上,我想跟踪在页面加载时自动启动的事件。我在页面顶部的代码(因此在与上述代码不同的标签中)的内容是:

function getFile()
{
  if("<%= getFileURL()%>".length>0){
    window.location.href = "<%=getFileURL() %>";
    var _gaq = _gaq || [];
    _gaq.push(['_trackEvent', 'Downloads', '<%= getFileURL()%>']);
  }
}

但它似乎没有跟踪事件。我确定我在这里做错了,我可以做一些猜测,但对我来说,确切地知道我需要改变的地方还不够明确。

2 个答案:

答案 0 :(得分:1)

您需要延迟重定向。以下这样的事情在过去对我有用:

function getFile() {
  var href = "<%=getFileURL() %>";

  if(href){    
    _gaq.push(['_trackEvent', 'Downloads', href]);
     setTimeout("gotoUrl('" + href + "')", 100);
  }
};

function gotoUrl(href) {
    window.location.href = href;
};

答案 1 :(得分:1)

您的代码有两个问题:

  1. 您在跟踪活动之前重定向。为了获得最佳效果(如提到的@EkoostikMartin),您需要在事件跟踪和重定向之间稍微延迟。
  2. 您在_gaq内定义了本地getFile(),因此您不会与实际的Google分析代码进行对话。
  3. 尝试:

    function getFile() {
      var href  = "<%=getFileURL() %>";
      if (href.length > 0) {
        _gaq.push(['_trackEvent', 'Downloads', href]);
        setTimeout(function(){window.location.href = href}, 100);
      }
    }