web-dev-qa-db-fra.com

ga ou _gaq.Push pour le suivi des événements Google Analytics?

Je souhaite suivre une onclick d'un bouton sur une page d'un site, après qu'une condition est passée, vérifiant si un cookie est présent.

Très simple mais quelle syntaxe fonctionnerait le mieux?

J'ai effectué des recherches sur les préfixes ga et gaq_Push de la syntaxe de suivi des événements GA et (pardonnez-moi si je me trompe), mais ils semblent assez similaires?

_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>
46
Harry Lincoln

Si vous utilisez ga.js (code asynchrone "traditionnel"), vous devez utiliser _gaq.Push. Si vous utilisez analytics.js , vous devez utiliser ga send. Les méthodes ne sont pas interchangeables, elles appartiennent à deux versions différentes du code de suivi de Google Analytics.

À présent (2017), il existe une nouvelle version du code (gtag.js). Par conséquent, si vous utilisez cette option, vous n’utilisez ni ga ni _gaq.Push, mais suivez plutôt les instructions de migration pour mettre votre code à la dernière version (ou vous commencez à utiliser Google Tag Manager).

80
Eike Pierstorff

Si vous avez analyalys.js et ga.js exécutés sur votre site, ce qui est recommandé tant que analytics.js est toujours en version bêta, vous pouvez exécuter les deux, bien que je les combine dans la fonction notregisterbtn, comme suit:

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

Je créerais une fonction si vous devez suivre différents événements pour que votre code soit plus propre.

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

Ceci est mon script que j'ai sur la page 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>

Pour suivre mes autres pages dans Backbone.js, j'ai placé ce code dans chaque script d'affichage de Backbone.js:

ga('send', 'pageview', myUrl);
0
Artem Zaika
/* 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;
    }
};
0
AnOldMan