9f25e02aec426e8ae2cd2d67a66c218d51b03989
max
  Mon Sep 21 08:06:01 2020 -0700
adding outbound link tracking to google analytics code, refs #21916

diff --git src/hg/lib/googleAnalytics.c src/hg/lib/googleAnalytics.c
index 258c759..c7d662b 100644
--- src/hg/lib/googleAnalytics.c
+++ src/hg/lib/googleAnalytics.c
@@ -23,16 +23,32 @@
 if (isEmpty(analyticsKey))
     return;
 
 /* updated to Universal Analytics code 2014-06-19 */
 
 jsInlineF(
 "  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n"
 "  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n"
 "  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n"
 "  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n"
 "  ga('create', '%s', 'auto');\n"
 "  ga('require', 'displayfeatures');\n"
 "  ga('send', 'pageview');\n"
 "\n"
 , analyticsKey);
+// see https://support.google.com/analytics/answer/1136920?hl=en
+jsInlineF(
+"  function anchorClicked(ev) {\n"
+"      var isExternal = (ev.target.target==='_blank');\n"
+"      var url = ev.target.href;\n"
+"      if (isExternal) {\n"
+"         ga('send', 'event', 'outbound', 'click', url,\n"
+"           { 'transport': 'beacon', 'hitCallback': function(){window.open(url);} });\n"
+"      } else {\n"
+"         document.location(url);\n"
+"      }\n"
+"  }"
+"  $(document).ready(function() {\n"
+"      var anchors = document.getElementsByTagName('a');\n"
+"      for (var i in anchors) { anchors[i].onclick = anchorClicked };\n"
+"  });");
 }