5

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?

tk66
  • 274
  • 7
  • 20
  • It looks fine. Does the `_trackPageview` occurs correctly? – Tchoupi Aug 29 '12 at 13:09
  • @MathieuImbert no.. i don't see a request for this one as well.. – tk66 Aug 29 '12 at 13:17
  • What *request* are you looking for? It should be an image file called `__utm.gif` – Tchoupi Aug 29 '12 at 13:24
  • well i am clearing the console and no new request come in when i trigger the event. Either way i was searching for something like what is posted here: http://pranshuarya.com/jaal/Development/how-to-check-google-analytics-event-tracking.html – tk66 Aug 29 '12 at 13:26
  • It is very hard to debug with no access to the code. Is your website public? Can we see it? – Tchoupi Aug 29 '12 at 13:28
  • nope, afraid not:/ what bugs me the most is that _trackEvent() says is not defined.. – tk66 Aug 29 '12 at 13:31
  • let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/15959/discussion-between-mathieu-imbert-and-tk66) – Tchoupi Aug 29 '12 at 13:33

2 Answers2

7

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)
Community
  • 1
  • 1
mike
  • 7,137
  • 2
  • 23
  • 27
  • Thanks! This fixed my problem. @tk66: I feel this should be accepted as an answer... – tony722 Feb 04 '13 at 20:22
  • 1
    Make sure you have the asynchronous Tracking code installed... https://developers.google.com/analytics/devguides/collection/gajs/asyncTracking – ATSiem May 14 '13 at 03:41
1

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.

Cosmin
  • 1,482
  • 12
  • 26
  • then just put `_gaq.push(['_trackEvent', EVENT_NAME, EVENT_ACTION, EVENT_DESCRIPTION]);` on the keyboard event ( `$('#target').keydown(function() { _gaq.push(['_trackEvent', EVENT_NAME, EVENT_ACTION, EVENT_DESCRIPTION]); });` and eventually if you want filter the keyboard event you desire - http://api.jquery.com/keydown/ – Cosmin Aug 29 '12 at 13:24
  • it is a big project and the structure for keyboard events is already there.. so i can't change the way it is.. But shouldn't it work the same way in javascript? – tk66 Aug 29 '12 at 13:29
  • Yes, it should. I have that exact same code in all the project and they work. Sorry I cannot be of more assistance. – Cosmin Aug 29 '12 at 14:01