gtag google eventos event jquery events google-analytics tracking

jquery - google - gtag send event



ga o_gaq.push para el seguimiento de eventos de Google Analytics? (5)

Crearía una función si necesita rastrear diferentes eventos, de esa manera su código estará más limpio.

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

Me gustaría rastrear un clic de un botón en una página de un sitio, después de que se aprueba una condición comprobando si hay una cookie presente.

Muy simple pero, ¿qué sintaxis funcionaría mejor?

He investigado el prefijo ga y gaq_push de la sintaxis de seguimiento de eventos de GA y (perdónenme si estoy equivocado) pero parecen bastante similares?

_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>


Este es mi script que tengo en la página de 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>

Para rastrear mis otras páginas en Backbone.js, pongo este código en cada script de Backbone.js View:

ga(''send'', ''pageview'', myUrl);


Si tuviste tanto analytics.js como ga.js ejecutándose en tu sitio, lo que se recomienda mientras analytics.js aún está en beta, puedes ejecutar ambos, aunque los combinaría en la función notregisterbtn, así:

<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>


Si usa ga.js (código asíncrono "tradicional"), debe usar _gaq.push. Si usa analytics.js , necesita usar ga send. Los métodos no son intercambiables, pertenecen a dos versiones diferentes del código de seguimiento de Google Analytics.

Por ahora (2017) hay una nueva versión de código (gtag.js), por lo que si está utilizando eso, no usa ga ni _gaq.push sino que sigue las pautas de migración para actualizar su código a la última versión (o usted bastante comience a usar el Administrador de etiquetas de Google de manera sensata).


/* 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; } };