Toni Michel Caubet
Toni Michel Caubet

Reputation: 20173

GA send event, returns undefined

Innit GA

var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxxxx-6']);
    _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);
    })();

Track event

ga('send', {
              'hitType': 'event',
              'eventCategory': 'Customer',
              'eventAction': 'Registration',
              'eventLabel': 'Popup',
              'eventValue': 0.99
            });

But this allways return undefined, And I added the 'Registration' event (with that category, label and value) in conversions, at google analytics site,

Any idea why this could happen?

Of course it isn't tracked..

enter image description here

Upvotes: 2

Views: 10701

Answers (2)

@Eike Pierstorff is actually right, but there is a thing:

Option №1

https://groups.google.com/g/google-analytics-analyticsjs/c/mayu2cf1d0k?pli=1 - Thanks to Brad Townsend.

To be sure, that everything works fine in the browser console (I tested only Google Chrome), use Google Analytics Debugger Plugin, then go to Console, you will start seeing things like that: "Executing/Running Google Analytics commands."

Try to send an event:

ga('create', 'UA-XXXXXXXX-Y', 'auto');
ga('send', {
              'hitType': 'event',
              'eventCategory': 'Test',
              'eventAction': 'Defined',
            });

For your every first event, you must write the first command:

ga('create', 'UA-XXXXXXXX-Y', 'auto');

Or it will log that target is undefined.

Option №2:

Also, if you are using GTM and just want to use "ga('send')" like old times, you need to specify in UA-tag Tracker Name to blank:

Go to GTM, find your UA-tag -> Advanced Configuration -> Set Tracker Name ("True") -> leave the field "Tracker Name" blank.

Google Analytics Tag

Upvotes: 0

Eike Pierstorff
Eike Pierstorff

Reputation: 32780

You are mixing old-style classic syntax (using the _gaq array) and Universal Analytics, so your ga object is not set up correctly (the tracker id from _gaq will not be used in the ga object and hence no tracker is created).

Your code should look something like this:

  (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-XXXXXXXX-1', 'auto');
  ga('send', 'pageview');
ga('send', {
              'hitType': 'event',
              'eventCategory': 'Customer',
              'eventAction': 'Registration',
              'eventLabel': 'Popup',
              'eventValue': 1
            });

Upvotes: 2

Related Questions