11a0f34a70d0afa0c979e7183bd9d54c6b5f636d max Wed Mar 1 14:55:03 2023 -0800 adding support for Analytics 4 tags, refs #30725 diff --git src/hg/lib/googleAnalytics.c src/hg/lib/googleAnalytics.c index ed35f86..42ddf3e 100644 --- src/hg/lib/googleAnalytics.c +++ src/hg/lib/googleAnalytics.c @@ -18,30 +18,42 @@ done = TRUE; /* do not repeat this by mistake */ char *analyticsKey = cfgOption("analyticsKey"); // link tracking broke in Firefox once. In case this ever happens again, we can // now switch off outlink tracking quickly boolean trackClicks = cfgOptionBooleanDefault("analytics.trackClicks", TRUE); boolean trackButtons = cfgOptionBooleanDefault("analytics.trackButtons", TRUE); /* if config is missing or empty, nothing happens here */ if (isEmpty(analyticsKey)) return; /* updated to Universal Analytics code 2014-06-19 */ +if (startsWith("G-", analyticsKey)) + { + jsInlineF( + "\n" + "\n" + "\n", analyticsKey, analyticsKey); + return; + } // replace analytics.js below with analytics_debug.js to activate ga debugging // It will log all events and all data that is sent to the javascript console, very handy 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('set', 'transport', 'beacon');\n" // default to beacons. Old browser cannot use them, so ga will use an alternative. " ga('send', 'pageview');\n" "\n" , analyticsKey); // to reduce the risk of breaking existing click handlers, only track links on hgc and hgTracks pages