Shoora
4/29/2019 - 2:38 PM

gistfile1.js

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);
})();