Reputation: 479
Following is the Google Analytics code added just before close of /head in html page.
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxxx-x']);
_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);
})();
Following is where I am calling the event... when successful or failed...
$.ajax({
url: "/xxx/xx/",
type: "POST",
data: { name: q, seme: o, profile: x }
datatype: "html",
success: function (f) {
_gaq && _gaq.push(["_trackEvent", "contactform", "success", i, p])
},
error: function (f) {
_gaq && _gaq.push(["_trackEvent", "contactform", "crash", i, p])
}
});
But the event is not recorded... I have been waiting to see something from past 4 days.. I have performed few tests but it is not showing up in the analytics... Am I doing anything wrong? Do I have to add any extra line in Google Analytics main snippet added in head tag?
GA tracks the normal data but not these event.
Upvotes: 4
Views: 3721
Reputation: 3723
I dont understand why you have the line:
_gaq && _gaq.push(["_trackEvent", "contactform", "success", i, p])
and not just
_gaq.push(["_trackEvent", "contactform", "success", i, p]);
or even
if (typeof _gaq != "undefined")
_gaq.push(["_trackEvent", "contactform", "success", i, p]);
Another trick for knowing when data has been sent correctly is to reference ga_debug.js
on Google Analytics' servers rather then the standard ga.js
- this will give you Console output and show "Tracking beacon sent!" as well as all the data that has been sent, when it's been successful. I suggest you try that out and see if it helps!
Upvotes: 6