ga或_gaq.push用于Google Analytics事件跟踪?

我想跟踪一个网站上的一个页面上的button,在条件通过后检查是否存在cookie。

非常简单,但哪种语法最好?

我已经研究了GA事件跟踪语法的gagaq_push前缀(如果我错了,请原谅我)但他们看起来很相似?

_gaq.push

 <script type="text/javascript"> jQuery(document).ready(function () { if (jQuery.cookie('entry_winagrand_cookie') !== null) { jQuery('notregisterbtn').on('click', function () { _gaq.push(['_trackEvent', 'QR_Win_A_Grand', 'Clicked through to Register']); }); } }); </script> 

ga

 <script type="text/javascript"> jQuery(document).ready(function () { if (jQuery.cookie('entry_winagrand_cookie') !== null) { jQuery('notregisterbtn').on('click', function () { ga('send', 'event', 'button', 'click', 'QR_Win_A_Grand', 'Clicked_through_to_register'); }); } }); </script> 

如果使用ga.js (“传统”asynchronous代码),则必须使用_gaq.push。 如果您使用analytics.js ,则需要使用ga send。 这些方法不可互换,属于Google Analytics(分析)跟踪代码的两个不同版本。

现在(2017)有一个新的代码版本(gtag.js),所以如果你使用的是你既不使用ga也不使用_gaq.push ,而是按照迁移指导方针将你的代码升级到最新版本(或者你明智地开始使用Google跟踪代码pipe理器)。

如果您的网站上同时运行了analytics.js和ga.js,build议在analytics.js仍处于testing阶段时,您可以同时运行这两个操作,但我会将它们结合到notregisterbtn函数中,如下所示:

  <script type="text/javascript"> jQuery(document).ready(function () { if (jQuery.cookie('entry_winagrand_cookie') !== null) { jQuery('notregisterbtn').on('click', function () { //you should first check if ga is set if (typeof ga !== 'undefined') { ga('send', 'event', 'QR_Win_A_Grand', 'Clicked_through_to_register'); } //check if _gaq is set too if (typeof _gaq !== 'undefined') { _gaq.push(['_trackEvent', 'QR_Win_A_Grand', 'Clicked through to Register']); } }); } }); </script> 

如果你需要跟踪不同的事件,我会创build一个函数,这样你的代码就会更干净。

的analytics.js

的ga.js

 function TrackEventGA(Category, Action, Label, Value) { "use strict"; if (typeof (_gaq) !== "undefined") { _gaq.push(['_trackEvent', Category, Action, Label, Value]); } else if (typeof (ga) !== "undefined") { ga('send', 'event', Category, Action, Label, Value); } } TrackEventGA('QR_Win_A_Grand', 'Clicked_through_to_register'); 

这是我在Google Analytics(分析)页面上的脚本

  <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-77777777-2', 'auto'); ga('send', 'pageview'); </script> 

为了在Backbone.js中跟踪我的其他页面,我把这个代码放在每个Backbone.js视图脚本中:

 ga('send', 'pageview', myUrl); 
 /* universal event tracking */ function trackEventTag(category, action, opt_label) { /* analytics.js send event */ ga('send', 'event', { 'eventCategory': category, 'eventAction': action, 'eventLabel': opt_label }); /* add delay or additional tracking here */ return true; } /* send ga.js _gaq.push() events to universal tracker */ var _gaq = window._gaq || { push: function (ar) { if (ar && ar.constructor === Array && 0 in ar) { if (ar[0] == '_trackEvent') { var category = 1 in ar ? ar[1] : null, action = 2 in ar ? ar[2] : null, opt_label = 3 in ar ? ar[3] : null; return trackEventTag(category, action, opt_label); } /* test for others you want to translate here */ } return true; } };