9

我正在尝试通过 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(),或者可能有其他原因(除了没有人点击链接!)?

4

6 回答 6

9

默认情况下,Google Analytics 会禁用跟踪锚标记。要为旧版跟踪代码启用它,请使用以下表单:

_uanchor = 1;
urchinTracker(val);

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

该方法_setAllowAnchorGoogle 参考网站上进行了描述。

于 2009-08-14T12:42:41.583 回答
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 一起正常工作。

于 2009-08-10T12:55:43.790 回答
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
 });
于 2013-04-11T16:42:33.497 回答
0

听起来您希望Google Analytics Event Tracking示例使用 onclick="" 垃圾,但我敢打赌您也可以将这些绑定到 jQuery 点击事件。

于 2009-08-17T11:06:50.647 回答
0
  1. 我尝试使用该_uanchor = 1;方法。那是行不通的。它不起作用的原因是它旨在将 Google Analytics 参数作为哈希值发送,而不是发送您的哈希值。

    从Török Gábor 的答案中引用的指南中,设置_uanchor为 one 具有以下效果:

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

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

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

    if (href contains ?) {
    href = href.replace('#', '&');
    } else {
    href = href.replace('#', '?');
    }
    

不确定拥有这样的 URL 对 GA 是否真的很重要,foo.html&bar=baz但它对我来说似乎更干净。

于 2009-11-05T16:23:24.027 回答
0

https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiCampaignTracking

_gaq.push(['_setAllowAnchor', true]);
于 2013-07-22T08:57:23.017 回答