tk66
tk66

Reputation: 284

Google Analytics Event Tracking

I am trying to implement the google event tracking api into a html5 player, but for some reason it doesn't want to work.. Here is what i am doing:

var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-myid-1']);
    _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//u/ga_debug.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();


    if (typeof _gaq != undefined){
        _gaq.push(['_trackEvent', 'krusty-player', eventName, 'demo', 1]);
    }

i copied the code from the google documentation page, so i guess it has to be right. From the Developer Console i don't see any HTTP request happening when the code runs, but when i do :

console.log(_gaq.push(['_trackEvent', 'krusty-player', eventName]));

i get a counter that goes up +1 for every time this part is called. No errors here..

i also tried using:

_trackEvent('krusty-player', eventName);

This returns error "_trackEvent is not defined"

Any idea what is going on?

Upvotes: 5

Views: 5237

Answers (2)

mike
mike

Reputation: 7167

Are you testing on localhost or an intranet? See Google Analytics GIF request not sent for details.
TLDR: the tracking GIF request doesn't get made for localhost servers by default.

Regarding _trackEvent is not defined: _trackEvent() isn't a stand alone function and needs to be called via _gaq.push

_gaq.push(['_trackEvent', category, action])

or via a pageTracker object (old style, non-async analytics)

pageTracker._trackEvent(category, action)

Upvotes: 7

Cosmin
Cosmin

Reputation: 1490

Bind the _gaq.push action on an event.

Like :

<span onClick="_gaq.push(['_trackEvent', EVENT_NAME, EVENT_ACTION, EVENT_DESCRIPTION]);">Click me</span>

And rename the caps names with plain / dynamic generated text and it should work.

Upvotes: 1

Related Questions