代码之家  ›  专栏  ›  技术社区  ›  bozdoz

如何在Google Analytics的自定义变量中使用变量

  •  2
  • bozdoz  · 技术社区  · 14 年前

    我正在试图跟踪我的页面上的链接的特定部分。我想知道点击的是什么,所以我试图用jQuery设置一个点击处理程序,用Google Analytics注册一个自定义变量,但是它不起作用。这是我的代码:

      <!--Google Analytics-->
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-18698622-1']);
      _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(){
    $('a.link-item.bullet').click(function(){
    _gaq.push(['_setCustomVar', 1, 'National Link', $(this).text(), 2]);
    });
    });
    </script>
    

    3 回复  |  直到 14 年前
        1
  •  7
  •   doug    14 年前

    看起来你只需要改变几行的顺序——特别是 必须设置自定义变量 之前 被称为 .

    在这种情况下,自定义变量的值由事件触发(例如,用户单击页面上的按钮),因此在事件激发时只需调用setCustomVar()。例如。,

    <input type="button" name="National Link", value=[dynamically set], onclick="my_function()", 2>
    

        2
  •  1
  •   dana    14 年前

    我同意你的情况,事件跟踪确实更适合你。(用户可以在不单击链接的情况下访问页面,也可以单击多次?)如果您提前知道某个用户的一些信息,自定义变量是很方便的,但是正如doug指出的,您必须在调用 _trackPageview .

    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
      _gaq.push(['_setCustomVar', 1, 'name-goes-here', 'value-goes-here']);
      _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);
      })();
    </script>
    

    另一方面,在跟踪需要URL编码的字符时,使用自定义变量有一个已知的bug( http://www.google.com/support/forum/p/Google%20Analytics/thread?tid=2cdb3ec0be32e078&hl=en ).

    在您的例子中,“National Event”将使用自定义变量保存为“National%20Event”,这也不理想。

    如果操作正确,实际上可以在同一个应用程序中同时使用自定义变量和事件跟踪,并生成引用两个数据源的自定义报表。( http://code.google.com/apis/analytics/docs/gdata/gdataReferenceValidCombos.html ).

        3
  •  0
  •   bozdoz    14 年前

    就我而言,最好使用事件跟踪,而不是自定义变量。为了跟踪对某组链接的单击,我可以使用以下代码:

    $(function(){
    $('a.link-item.bullet').click(function(){
    _gaq.push(['_trackEvent', 'National Link Event', $(this).text()]);
    });
    });
    

    _setCustomVar 依赖于 _trackPageview 功能和 _trackEvent 没有。此代码出现在 _轨迹页面视图 函数,它工作得很好:单击时,事件显示为“全国链接事件”,并以链接文本命名操作。