代码之家  ›  专栏  ›  技术社区  ›  Bobby Jack

如何使用Google Analytics跟踪锚定标签

  •  8
  • Bobby Jack  · 技术社区  · 15 年前

    我正试图通过谷歌分析追踪点击,而不会导致新的请求。具体而言,单击通过创建的选项卡 jQuery UI tabs widget . 我正在使用较旧版本的代码(“顽童跟踪器”),并尝试记录点击,如下所示:

    $('.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 回复  |  直到 15 年前
        1
  •  9
  •   Richard de Wit oden    10 年前

    默认情况下,Google Analytics禁用 tracking anchor tags . 要为旧版跟踪代码启用它,请使用以下表单:

    _uanchor = 1;
    urchinTracker(val);
    

    将值设置为变量 _uanchor 是调用方法的等效项 _setAllowAnchor Google Analytics Tracking Code Migration Guide - 此链接已过时

    方法 Google Reference Site .

        2
  •  3
  •   Rob Knight    15 年前

    简而言之,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 ,这应该可以很好地与谷歌分析。

        3
  •  1
  •   pdeschen    11 年前

    如果要跟踪页面定位点的单击,以下操作将在全局范围内起作用:

    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
     });
    
        4
  •  0
  •   Tom    15 年前

    听起来像是你想要的 Google Analytics Event Tracking

        5
  •  0
  •   Community CDub    7 年前
    1. 我试着用 _uanchor = 1; 工作它不起作用的原因是,它被设计为将Google Analytics参数作为散列值发送,而不是发送 你的 散列值。

      引自指南 in Török Gábor's answer 背景 _uanchor 对一个人有以下影响:

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

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

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

    不确定是否有一个像这样的URL对GA真的很重要 foo.html&bar=baz

        6
  •  0
  •   Kimi    11 年前
    推荐文章