Reputation: 284
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
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
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