Browse Source

Add a service to use multiple Google Analytics

If you need to add multiple gtag.js tracker, use this services and pass a JavaScript array to tarteaucitron.user.multiplegtagUa = ['UA-XXXXXXXX', 'UA-XXXXXXXX'];
Amauri CHAMPEAUX 7 years ago
parent
commit
720eb0aaa1
1 changed files with 35 additions and 0 deletions
  1. 35 0
      tarteaucitron.services.js

+ 35 - 0
tarteaucitron.services.js

@@ -2165,3 +2165,38 @@ tarteaucitron.services.webmecanik = {
         });
         });
     }
     }
 };
 };
+
+// google analytics multiple
+tarteaucitron.services.multiplegtag = {
+    "key": "multiplegtag",
+    "type": "analytic",
+    "name": "Google Analytics (gtag.js)",
+    "uri": "https://support.google.com/analytics/answer/6004245",
+    "needConsent": true,
+    "cookies": (function () {
+        
+        var cookies = ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz'];
+
+        if (tarteaucitron.user.multiplegtagUa !== undefined) {
+            tarteaucitron.user.multiplegtagUa.forEach(function(ua) {
+                cookies.push('_gat_gtag_' + ua.replace(/-/g, '_'));
+            });
+        }
+
+        return cookies;
+    })(),
+    "js": function () {
+        "use strict";
+        window.dataLayer = window.dataLayer || [];
+
+        tarteaucitron.user.multiplegtagUa.forEach(function(ua) {
+
+            tarteaucitron.addScript('https://www.googletagmanager.com/gtag/js?id=' + ua, '', function () {
+                function gtag(){dataLayer.push(arguments);}
+                gtag('js', new Date());
+                gtag('config', ua);
+            });
+        });
+    }
+};
+