如何使用Google Analytics跟踪锚标记

时间:2009-07-31 09:17:53

标签: google-analytics anchor urchin

我正在尝试通过Google Analytics跟踪不会产生新请求的点击次数。具体而言,单击通过jQuery UI tabs widget创建的选项卡。我正在使用旧版本的代码('urchin tracker')并尝试记录点击次数:

$('.ui-tabs-nav li a').click(function() {
    val = "/tab/" + $(this).attr('href');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

在另一个例子中,同样的方法是有效的,据我所知,唯一的区别在于字符串中缺少哈希(#)符号。 urchinTracker()跟踪的字符串中是否不允许使用该字符,或者是否存在其他原因(除了没有人点击链接之外)?

6 个答案:

答案 0 :(得分:9)

默认情况下,Google Analytics会停用tracking anchor tags。要为旧版跟踪代码启用它,请使用以下格式:

_uanchor = 1;
urchinTracker(val);

将值设置为变量_uanchor相当于使用最新的GA代码库时调用方法_setAllowAnchor。 (您在Google Analytics Tracking Code Migration Guide - 中找到详细比较此链接已过时)。

方法_setAllowAnchorGoogle Reference Site上进行了说明。

答案 1 :(得分:3)

简而言之,Google Analytics无法跟踪包含“#”字符的页面链接。点击index.html#foo只会被视为对index.html的点击,忽略'#'后的所有内容。

你可以考虑转义'#'字符:

$('.ui-tabs-nav li a').click(function() {
    val = new String("/tab/" + $(this).attr('href')).replace('#', '&');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

在您的示例中,这会记录/tab/?main的页面视图,该视图适用于Google Analytics。

答案 2 :(得分:1)

如果您想跟踪页内锚点击次数,则以下内容可以全局运行:

window.onhashchange = function() {
  _gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
}

请注意,如果您有一些特定的onclick处理程序,例如

 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // some more clever stuff
 });

您需要手动预先添加哈希以触发onhashchange

 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // triggers onhashchange
   location.hash = target;
   // some more clever stuff
 });

答案 3 :(得分:0)

听起来你想要Google Analytics Event Tracking示例使用onclick =“”垃圾,但我敢打赌你可能也可以将这些绑定到jQuery点击事件。

答案 4 :(得分:0)

  1. 我尝试使用_uanchor = 1;方法。 工作。它无效的原因是它旨在将Google Analytics参数作为哈希值发送,而不是发送您的哈希值。

    在引用in Török Gábor's answer的指南中,将_uanchor设置为1具有以下效果:

      

    启用后,使用#代替默认?将请求词干与查询字符串分开

    这是在“广告系列跟踪”部分。

  2. Rob Knight's answer工作正常,但我做了一个小修改。在伪代码中:

    if (href contains ?) {
    href = href.replace('#', '&');
    } else {
    href = href.replace('#', '?');
    }
    
  3. 不确定GA是否真的对于foo.html&bar=baz这样的网址有用,但它对我来说似乎更清晰。

答案 5 :(得分:0)