Просмотр исходного кода

Merge pull request #5442 from overleaf/ta-ga-v4

Add Google Analytics V4 Tags

GitOrigin-RevId: 8841bd6a902efa15399b1a219ff7740635898fa1
Timothée Alby 4 лет назад
Родитель
Сommit
9278ce6cc0

+ 4 - 0
services/web/app/src/infrastructure/ExpressLocals.js

@@ -280,6 +280,10 @@ module.exports = function (webRouter, privateApiRouter, publicApiRouter) {
   webRouter.use(function (req, res, next) {
   webRouter.use(function (req, res, next) {
     res.locals.gaToken =
     res.locals.gaToken =
       Settings.analytics && Settings.analytics.ga && Settings.analytics.ga.token
       Settings.analytics && Settings.analytics.ga && Settings.analytics.ga.token
+    res.locals.gaTokenV4 =
+      Settings.analytics &&
+      Settings.analytics.ga &&
+      Settings.analytics.ga.tokenV4
     res.locals.gaOptimizeId = _.get(Settings, ['analytics', 'gaOptimize', 'id'])
     res.locals.gaOptimizeId = _.get(Settings, ['analytics', 'gaOptimize', 'id'])
     next()
     next()
   })
   })

+ 8 - 0
services/web/app/views/layout-marketing.pug

@@ -71,6 +71,14 @@ html(
 			script(type="text/javascript", nonce=scriptNonce).
 			script(type="text/javascript", nonce=scriptNonce).
 				window.ga = function() { console.log("would send to GA", arguments) };
 				window.ga = function() { console.log("would send to GA", arguments) };
 
 
+		if (typeof(gaTokenV4) != "undefined")
+			script(async, nonce=scriptNonce, src='https://www.googletagmanager.com/gtag/js?id=' + gaTokenV4)
+			script(type="text/javascript", nonce=scriptNonce).
+				window.dataLayer = window.dataLayer || [];
+				function gtag(){dataLayer.push(arguments);}
+				gtag('js', new Date());
+				gtag('config', '#{gaTokenV4}');
+
 		block meta
 		block meta
 			meta(name="ol-csrfToken" content=csrfToken)
 			meta(name="ol-csrfToken" content=csrfToken)
 			//- Configure dynamically loaded assets (via webpack) to be downloaded from CDN
 			//- Configure dynamically loaded assets (via webpack) to be downloaded from CDN

+ 9 - 0
services/web/app/views/layout.pug

@@ -68,6 +68,15 @@ html(
 			script(type="text/javascript", nonce=scriptNonce).
 			script(type="text/javascript", nonce=scriptNonce).
 				window.ga = function() { console.log("would send to GA", arguments) };
 				window.ga = function() { console.log("would send to GA", arguments) };
 
 
+		if (typeof(gaTokenV4) != "undefined")
+			script(async, nonce=scriptNonce, src='https://www.googletagmanager.com/gtag/js?id=' + gaTokenV4)
+			script(type="text/javascript", nonce=scriptNonce).
+				window.dataLayer = window.dataLayer || [];
+				function gtag(){dataLayer.push(arguments);}
+				gtag('js', new Date());
+
+				gtag('config', '#{gaTokenV4}');
+
 		block meta
 		block meta
 			meta(name="ol-csrfToken" content=csrfToken)
 			meta(name="ol-csrfToken" content=csrfToken)
 			//- Configure dynamically loaded assets (via webpack) to be downloaded from CDN
 			//- Configure dynamically loaded assets (via webpack) to be downloaded from CDN