it-swarm.com.de

ga oder _gaq.Push für die Ereignisüberwachung von Google Analytics?

Ich möchte eine onclick einer Schaltfläche auf einer Seite einer Website verfolgen, nachdem eine Bedingung übergeben wurde und geprüft wird, ob ein Cookie vorhanden ist.

Sehr einfach, aber welche Syntax würde am besten funktionieren?

Ich habe das Präfix ga und gaq_Push der GA - Ereignisverfolgungssyntax und (verzeihen Sie mir, wenn ich falsch liege) recherchiert.

_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

Wenn Sie ga.js ("traditioneller" asynchroner Code) verwenden, müssen Sie _gaq.Push verwenden. Wenn Sie analytics.js verwenden, müssen Sie ga send verwenden. Die Methoden sind nicht austauschbar, sie gehören zu zwei verschiedenen Versionen des Google Analytics-Tracking-Codes.

Mittlerweile (2017) gibt es eine neue Codeversion (gtag.js). Wenn Sie also verwenden, verwenden Sie weder ga noch _gaq.Push, sondern befolgen Sie die Migrationsrichtlinien , um Ihren Code auf die neueste Version (oder Sie beginnen recht sinnvoll, den Google Tag Manager zu verwenden.

80
Eike Pierstorff

Wenn Sie auf Ihrer Website sowohl analytics.js als auch ga.js ausgeführt haben, was empfohlen wird, während analytics.js noch in der Betaversion ist, können Sie beide ausführen, obwohl ich sie in der notregisterbtn-Funktion kombinieren würde:

    <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

Ich würde eine Funktion erstellen, wenn Sie verschiedene Ereignisse verfolgen müssen. Auf diese Weise wird Ihr Code sauberer.

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

Dies ist mein Skript, das ich auf der Google Analytics-Seite erhalten habe

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

Um meine anderen Seiten in Backbone.js zu verfolgen, gebe ich diesen Code in jedes Backbone.js-View-Skript ein:

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