Skip to content

Instantly share code, notes, and snippets.

@gaurish
Created August 18, 2011 10:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save gaurish/1153813 to your computer and use it in GitHub Desktop.
Save gaurish/1153813 to your computer and use it in GitHub Desktop.
var _gaq = _gaq || [];
//Enter GA Account ID
_gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
//extract parameters from URI
var extractParamFromUri = function(uri, paramName) {
if (!uri) {
return;
}
var uri = uri.split('#')[0]; // Remove anchor.
var parts = uri.split('?'); // Check for query params.
if (parts.length == 1) {
return;
}
var query = decodeURI(parts[1]);
// Find url param.
paramName += '=';
var params = query.split('&');
for (var i = 0, param; param = params[i]; ++i) {
if (param.indexOf(paramName) === 0) {
return unescape(param.split('=')[1]);
}
}
}
//function to subscribe to Facebook events(Like,Unlike & Send)
var trackfb = function() {
try {
if (FB && FB.Event && FB.Event.subscribe) {
FB.Event.subscribe('edge.create', function(targetUrl) {
_gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
});
FB.Event.subscribe('message.send', function(targetUrl) {
_gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);
});
FB.Event.subscribe('edge.remove', function(targetUrl) {
_gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);
});
}
}
catch (e) {}
}
//function to subscribe to tweet event
var tracktwtter = function() {
try {
if (twttr && twttr.events && twttr.events.bind) {
twttr.events.bind('tweet', function(event) {
if (event) {
var targetUrl;
if (event.target && event.target.nodeName == 'IFRAME') {
targetUrl = extractParamFromUri(event.target.src, 'url');
}
_gaq.push(['_trackSocial', 'twitter', 'tweet', targetUrl]);
}
});
}
}
catch (e) {}
}
//Lets call these functions
trackfb();
trackTwitter();
//other GA commands like tracking Page Load time
_gaq.push(["_trackPageview"]);
_gaq.push(['_trackPageLoadTime']);
//load GA async script
(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);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment