我正在尝试通过Google Analytics跟踪不会产生新请求的点击次数。具体来说,单击通过 jQuery UI选项卡小部件创建的选项卡。我正在使用旧版本的代码('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()跟踪的字符串中是否不允许使用该字符,或者是否存在其他原因(除非没有人点击链接!)

有帮助吗?

解决方案

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

_uanchor = 1;
urchinTracker(val);

在使用最新的GA代码库时,将值设置为变量 _uanchor 等同于调用方法 _setAllowAnchor 。 (您可以在 Google Analytics跟踪代码中找到详细比较迁移指南 - 此链接已过时)。

_setAllowAnchor 方法。 rel =“nofollow noreferrer”> Google参考网站

其他提示

简而言之,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。

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

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
 });

听起来您想 Google Analytics事件跟踪示例使用onclick =""垃圾,但我打赌你可能也可以将这些绑定到jQuery点击事件。

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

    在引用在TörökGábor的回答中引用,将 _uanchor 设置为一个具有以下内容效果:

      

    启用后,使用而不是默认将请求词干与查询字符串分开

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

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

    if (href contains ?) {
    href = href.replace('#', '&');
    } else {
    href = href.replace('#', '?');
    }
    
  3. 不确定GA是否真的很重要,因为它有一个像 foo.html& bar = baz 这样的网址,但它对我来说似乎更干净。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top