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