Skip to content

Commit 98722a3

Browse files
Merge pull request #328 from arifshanji/virtualPageTracking
Virtual page tracking with GA
2 parents c58d346 + d301a64 commit 98722a3

File tree

5 files changed

+34
-84
lines changed

5 files changed

+34
-84
lines changed

lib/controller/auth-form.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77

88
var app = require('../app'),
9-
tracking = require('../core/tracking');
9+
analytics = require('../core/analytics');
1010

1111
app.controller('AuthController', ['$scope', '$rootScope', '$element', 'API', 'AUTH', function ($scope, $rootScope, $element, api, auth) {
1212
var loginForm = $element.find('kano-login-form')[0],
@@ -28,7 +28,7 @@ app.controller('AuthController', ['$scope', '$rootScope', '$element', 'API', 'AU
2828

2929
$scope.onLoginSuccess = function (ev) {
3030
var user = ev.details.user;
31-
tracking.event('Login success', {
31+
analytics.track('Login success', {
3232
id: user.id,
3333
email: user.email,
3434
username: user.username
@@ -37,7 +37,7 @@ app.controller('AuthController', ['$scope', '$rootScope', '$element', 'API', 'AU
3737

3838
$scope.onSignupSuccess = function (ev) {
3939
var user = ev.details.user;
40-
tracking.event('Registration Completed', {
40+
analytics.track('Registration Completed', {
4141
username: user.username
4242
});
4343
};

lib/core/analytics.js

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,16 @@
1-
var config = window.CONFIG,
2-
analytics = window.analytics;
3-
41
/*
52
* Analytics module
6-
*
7-
* Wrapper to Segment.io analytics
8-
* More documentation at: https://segment.com/docs/libraries/analytics.js
9-
*/
10-
11-
var enabled = config.SEGMENTIO_ID && !config.OFFLINE && analytics;
3+
* Currently we are using Google Analytics with Google Tag Manager
4+
*/
125

136
/*
14-
* Initialise Segment.io if `SEGMENTIO_ID` is present in config, start
7+
* Initialise start
158
* tracking page views
169
*
1710
* @return void
1811
*/
1912
exports.init = function () {
20-
if (!enabled) { return; }
21-
22-
window.analytics.load(config.SEGMENTIO_ID);
13+
return;
2314
};
2415

2516
/*
@@ -29,9 +20,15 @@ exports.init = function () {
2920
* @return void
3021
*/
3122
exports.page = function (pageId) {
32-
if (!enabled) { return; }
23+
if (!pageId) {
24+
return;
25+
}
3326

34-
window.analytics.page(pageId);
27+
dataLayer.push({
28+
'event' : 'virtualPageView',
29+
'virtualPageTitle' : document.title,
30+
'virtualPageURL' : pageId
31+
});
3532
};
3633

3734
/*
@@ -48,9 +45,8 @@ exports.page = function (pageId) {
4845
* @return void
4946
*/
5047
exports.identify = function (userId, traits, options, callback) {
51-
if (!enabled) { return; }
52-
53-
window.analytics.identify(userId, traits, options, callback);
48+
// Not used - switched to GA
49+
return;
5450
};
5551

5652
/*
@@ -65,7 +61,6 @@ exports.identify = function (userId, traits, options, callback) {
6561
* @return void
6662
*/
6763
exports.track = function (event, properties, options, callback) {
68-
if (!enabled) { return; }
69-
70-
window.analytics.track(event, properties, options, callback);
64+
// Not used - switched to GA
65+
return;
7166
};

lib/core/auth.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
var api,
88
user = null,
9-
tracking = require('./tracking');
9+
analytics = require('./analytics');
1010

1111
/*
1212
* Get user object if logged in
@@ -49,7 +49,7 @@ function auth (config) {
4949
user = session.user;
5050
},
5151
logout : function () {
52-
tracking.event('Logout', {
52+
analytics.track('Logout', {
5353
user: {
5454
id : user.id,
5555
username : user.username,

lib/core/tracking.js

Lines changed: 0 additions & 48 deletions
This file was deleted.

views/index.jade

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ html(lang='en', xmlns:ng="http://angularjs.org")
1414
link(href='/css/main.css', rel='stylesheet', type='text/css')
1515

1616
script(type="text/javascript").
17+
var dataLayer = [];
1718
(function() {
1819
window.XMLHttpRequest = window.XMLHttpRequest || (function() {
1920
return new window.ActiveXObject("Microsoft.XMLHTTP");
@@ -24,16 +25,7 @@ html(lang='en', xmlns:ng="http://angularjs.org")
2425
script(src='/js/vendor/xtag.js')
2526

2627
body(id="ng-app", ng-app='draw', class=offline ? 'offline' : 'online')
27-
//- Google Tag Manager
28-
noscript
29-
iframe(src='//www.googletagmanager.com/ns.html?id=GTM-WMGKFR', height='0', width='0', style='display: none; visibility: hidden;')
30-
script(type='text/javascript').
31-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
32-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
33-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
34-
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
35-
})(window,document,'script','dataLayer','GTM-WMGKFR');
36-
//- End Google Tag Manager
28+
3729

3830
script(src='/js/vendor/console-polyfill.js', type='text/javascript')
3931
.loading-overlay(ng-cloak): .spinner
@@ -78,3 +70,14 @@ html(lang='en', xmlns:ng="http://angularjs.org")
7870
//- Livereload
7971
if !production
8072
script(src='http://localhost:35729/livereload.js?snipver=1', type='text/javascript')
73+
74+
//- Google Tag Manager
75+
noscript
76+
iframe(src='//www.googletagmanager.com/ns.html?id=GTM-WMGKFR', height='0', width='0', style='display: none; visibility: hidden;')
77+
script(type='text/javascript').
78+
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
79+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
80+
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
81+
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
82+
})(window,document,'script','dataLayer','GTM-WMGKFR');
83+
//- End Google Tag Manager

0 commit comments

Comments
 (0)