From 38c70bfda2c608514ad53f0659634cf3dee1da3a Mon Sep 17 00:00:00 2001 From: Kyle Zhao Date: Mon, 10 Sep 2018 10:17:56 +0800 Subject: [PATCH] extract inline JS for google analytics --- .../javascripts/google-universal-analytics.js | 20 +++++++++++++++++++ .../_google_universal_analytics.html.erb | 19 ++++++------------ 2 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 app/assets/javascripts/google-universal-analytics.js diff --git a/app/assets/javascripts/google-universal-analytics.js b/app/assets/javascripts/google-universal-analytics.js new file mode 100644 index 00000000000..76d59a1d41c --- /dev/null +++ b/app/assets/javascripts/google-universal-analytics.js @@ -0,0 +1,20 @@ +/* eslint-disable */ +// prettier-ignore +(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +/* eslint-enable */ + +(function() { + const gaDataElement = document.getElementById("data-ga-universal-analytics"); + const gaJson = JSON.parse(gaDataElement.dataset.json); + + window.ga("create", gaDataElement.dataset.trackingCode, gaJson); + if (gaDataElement.dataset.autoLinkDomains.length) { + const autoLinkDomains = gaDataElement.dataset.autoLinkDomains.split("|"); + + window.ga("require", "linker"); + window.ga("linker:autoLink", autoLinkDomains); + } +})(); diff --git a/app/views/common/_google_universal_analytics.html.erb b/app/views/common/_google_universal_analytics.html.erb index 7c03711df43..81d7a96db94 100644 --- a/app/views/common/_google_universal_analytics.html.erb +++ b/app/views/common/_google_universal_analytics.html.erb @@ -1,14 +1,7 @@ - +<%= preload_script "google-universal-analytics" %>