Browse Source

feat: Makes the google analytics tracking id configurable.

master
Boris Grozev 7 years ago
parent
commit
03fc711e81
3 changed files with 16 additions and 4 deletions
  1. 10
    3
      analytics-ga.js
  2. 3
    0
      config.js
  3. 3
    1
      react/features/analytics/functions.js

+ 10
- 3
analytics-ga.js View File

4
     /**
4
     /**
5
      *
5
      *
6
      */
6
      */
7
-    function Analytics() {
7
+    function Analytics(options) {
8
         /* eslint-disable */
8
         /* eslint-disable */
9
 
9
 
10
+        if (!options.googleAnalyticsTrackingId) {
11
+            console.log(
12
+                'Failed to initialize Google Analytics handler, no tracking ID');
13
+             return;
14
+        }
15
+
10
         /**
16
         /**
11
          * Google Analytics
17
          * Google Analytics
18
+         * TODO: Keep this local, there's no need to add it to window.
12
          */
19
          */
13
         (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
20
         (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
14
             (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)
21
             (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)
15
         })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
22
         })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
16
-        ga('create', 'UA-319188-14', 'jit.si');
23
+        ga('create', options.googleAnalyticsTrackingId, 'jit.si');
17
         ga('send', 'pageview');
24
         ga('send', 'pageview');
18
 
25
 
19
         /* eslint-enable */
26
         /* eslint-enable */
114
      * lib-jitsi-meet.
121
      * lib-jitsi-meet.
115
      */
122
      */
116
     Analytics.prototype.sendEvent = function(event) {
123
     Analytics.prototype.sendEvent = function(event) {
117
-        if (!event) {
124
+        if (!event || !ga) {
118
             return;
125
             return;
119
         }
126
         }
120
 
127
 

+ 3
- 0
config.js View File

313
     //      "https://example.com/my-custom-analytics.js"
313
     //      "https://example.com/my-custom-analytics.js"
314
     // ],
314
     // ],
315
 
315
 
316
+    // The Google Analytics Tracking ID
317
+    // googleAnalyticsTrackingId = 'your-tracking-id-here-UA-123456-1',
318
+
316
     // Information about the jitsi-meet instance we are connecting to, including
319
     // Information about the jitsi-meet instance we are connecting to, including
317
     // the user region as seen by the server.
320
     // the user region as seen by the server.
318
     deploymentInfo: {
321
     deploymentInfo: {

+ 3
- 1
react/features/analytics/functions.js View File

43
 
43
 
44
     const state = getState();
44
     const state = getState();
45
     const config = state['features/base/config'];
45
     const config = state['features/base/config'];
46
-    const { analyticsScriptUrls, deploymentInfo } = config;
46
+    const { analyticsScriptUrls, deploymentInfo, googleAnalyticsTrackingId }
47
+        = config;
47
     const { group, server, user } = state['features/base/jwt'];
48
     const { group, server, user } = state['features/base/jwt'];
48
     const handlerConstructorOptions = {
49
     const handlerConstructorOptions = {
49
         envType: (deploymentInfo && deploymentInfo.envType) || 'dev',
50
         envType: (deploymentInfo && deploymentInfo.envType) || 'dev',
51
+        googleAnalyticsTrackingId,
50
         group,
52
         group,
51
         product: deploymentInfo && deploymentInfo.product,
53
         product: deploymentInfo && deploymentInfo.product,
52
         subproduct: deploymentInfo && deploymentInfo.environment,
54
         subproduct: deploymentInfo && deploymentInfo.environment,

Loading…
Cancel
Save