But when I later visited the site myself I realized something awful. Since I'm a obsessive middle-clicker opening all potentially interesting links in new tabs I ran into the issue immediately. It opens my middle-clicks in the same tab, transforming my middle-clicks to left-clicks.
Further googling explained everything. Many have written scripts like the one I picked and some have already considered this issue. So I read them all and improved the script I had stolen already. Here it is. Please comment if you think there's something wrong with it!
(function($) { "use strict"; // current page host var baseURI = window.location.host; // click event on body $("body").on("click", function(e) { // abandon if link already aborted or analytics is not available if (e.isDefaultPrevented() || typeof ga !== "function") return; // abandon if no active link or link within domain var link = $(e.target).closest("a"); if (link.length != 1 || baseURI == link[0].host) return; var normalClick = !e.metaKey && !e.crtlKey && e.which == 1; var href = link[0].href; var opts = {'hitType': 'event','eventCategory': 'outbound', 'eventAction': 'link','eventLabel': href } if (normalClick) { // cancel event and record outbound link { opts.hitCallback = loadPage }; e.preventDefault(); ga('send', opts); // redirect after one second if recording takes too long setTimeout(loadPage, 1000); } else { // Just send the event ga('send', opts); } // redirect to outbound page function loadPage() { document.location = href; } }); })(jQuery);
No comments:
Post a Comment