Skip to content

Commit 65f9b97

Browse files
author
peterdotjs
committed
Added tracking for keyboard shortcut keys.
1 parent 279dfe8 commit 65f9b97

File tree

6 files changed

+80
-18
lines changed

6 files changed

+80
-18
lines changed

js/background.js

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ function setResizeWidthHeight(resize, screenInfo, rows, cols){
297297
} else {
298298
resize.width = Math.round(window.screen.availWidth/cols);
299299
resize.height = Math.round(window.screen.availHeight/rows);
300-
}
300+
}
301301
}
302302

303303
function resizeTabHelper(resize, screenInfo, scaledOrientation){
@@ -350,7 +350,7 @@ function initResizePreferences(resize){
350350
var emptyTabValue = localStorage.getItem('emptyTab');
351351
if(!emptyTabValue || emptyTabValue === 'true'){
352352
resize.emptyTab = true;
353-
}
353+
}
354354

355355
var alignmentValue = localStorage.getItem('alignment');
356356
if(!alignmentValue){
@@ -360,6 +360,30 @@ function initResizePreferences(resize){
360360
}
361361
}
362362

363+
function sendTracking(category, label) {
364+
var optOut = localStorage.getItem("tracking-opt-out"),
365+
deferTracking = false;
366+
367+
if(optOut && optOut === 'true'){
368+
deferTracking = true;
369+
}
370+
371+
if(!deferTracking && ga) {
372+
ga('send','event', category, 'clicked', label || "na");
373+
}
374+
}
375+
376+
// Standard Google Universal Analytics code
377+
/* jshint ignore:start */
378+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
379+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
380+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
381+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); // Note: https protocol here
382+
/* jshint ignore:end */
383+
ga('create', 'UA-34217520-2', 'auto');
384+
ga('set', 'checkProtocolTask', function(){}); // Removes failing protocol check. @see: http://stackoverflow.com/a/22152353/1958200
385+
ga('require', 'displayfeatures');
386+
363387
chrome.commands.onCommand.addListener(function callback(command) {
364388

365389
if(command.indexOf('tab-resize') === -1){
@@ -377,7 +401,9 @@ chrome.commands.onCommand.addListener(function callback(command) {
377401

378402
var displayJSON = util.displayInfoFormatter(displayInfo,currentWindowInfo),
379403
isScaled = command.indexOf('scale') !== -1,
380-
resizeParams = getResizeParams(command);
404+
resizeParams = getResizeParams(command);
405+
406+
sendTracking('keyboard-shortcut',command);
381407

382408
if(isScaled){
383409
resizeScaledTabs(displayJSON.displays[displayJSON.primaryIndex].workArea, resizeParams.primaryRatio, resizeParams.secondaryRatio, resizeParams.orientation);

js/main.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626
scaledResizeType = resizeTypeStr.split('-'),
2727
resizeType = (isScaled ? scaledResizeType[0]: resizeTypeStr.split('x')),
2828
orientation = (isScaled ? scaledResizeType[2] : null);
29-
29+
3030
main_view[isScaled ? 'resizeScaledTabs' : 'resizeTabs'](Number(resizeType[0]),Number(resizeType[1]), orientation);
3131
sendTracking('resize',resizeTypeStr);
32-
32+
3333
}).on('show','.modal-box', function(evt){
3434
evt.stopPropagation();
3535
util.centerModal($(this));
@@ -141,8 +141,10 @@
141141
}).on('click','.signature a',function(){
142142
if($(this).hasClass('rate-it')){
143143
sendTracking('info-links','rate-it');
144-
} else {
144+
} else if ($(this).hasClass('signature')) {
145145
sendTracking('info-links','author');
146+
} else {
147+
sendTracking('info-links','keyboard-shortcuts');
146148
}
147149
}).on('click','a.keyboard-shortcuts', function(){
148150
chrome.tabs.create({url:'chrome://extensions/configureCommands'});
@@ -154,24 +156,27 @@
154156
if(option === 'scaled' && !$customView.hasClass('scaled') || option !== 'scaled' && $customView.hasClass('scaled')){
155157
changed = true;
156158
}
157-
159+
158160
$customView[(option === 'scaled') ? 'addClass' : 'removeClass']('scaled');
159161

160162
if(changed){
161163
util.clearCanvas();
162164
custom_view.clearCustomValues();
163165
if(option === 'scaled'){
164-
custom_view.showScaledMenu();
166+
custom_view.showScaledMenu();
165167
}
168+
sendTracking('custom-layout',option);
166169
}
167170

168171
}).on('click', '.custom-view .scaled-input', function(){
169172
var $this = $(this);
170173
$('.custom-view .scaled-input').removeClass('selected');
171174
$this.addClass('selected');
172175
custom_view.showScaledMenu();
176+
sendTracking('custom-layout',$this.text());
173177
}).on('click','.custom-view .switch-toggle.scaled-layout-orientation input', function(){
174178
custom_view.showScaledMenu();
179+
sendTracking('custom-layout',$(this).attr('id'));
175180
});
176181

177182
})();

public/tabResize.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1110,10 +1110,10 @@ if(!deferTracking) {
11101110
scaledResizeType = resizeTypeStr.split('-'),
11111111
resizeType = (isScaled ? scaledResizeType[0]: resizeTypeStr.split('x')),
11121112
orientation = (isScaled ? scaledResizeType[2] : null);
1113-
1113+
11141114
main_view[isScaled ? 'resizeScaledTabs' : 'resizeTabs'](Number(resizeType[0]),Number(resizeType[1]), orientation);
11151115
sendTracking('resize',resizeTypeStr);
1116-
1116+
11171117
}).on('show','.modal-box', function(evt){
11181118
evt.stopPropagation();
11191119
util.centerModal($(this));
@@ -1225,8 +1225,10 @@ if(!deferTracking) {
12251225
}).on('click','.signature a',function(){
12261226
if($(this).hasClass('rate-it')){
12271227
sendTracking('info-links','rate-it');
1228-
} else {
1228+
} else if ($(this).hasClass('signature')) {
12291229
sendTracking('info-links','author');
1230+
} else {
1231+
sendTracking('info-links','keyboard-shortcuts');
12301232
}
12311233
}).on('click','a.keyboard-shortcuts', function(){
12321234
chrome.tabs.create({url:'chrome://extensions/configureCommands'});
@@ -1238,24 +1240,27 @@ if(!deferTracking) {
12381240
if(option === 'scaled' && !$customView.hasClass('scaled') || option !== 'scaled' && $customView.hasClass('scaled')){
12391241
changed = true;
12401242
}
1241-
1243+
12421244
$customView[(option === 'scaled') ? 'addClass' : 'removeClass']('scaled');
12431245

12441246
if(changed){
12451247
util.clearCanvas();
12461248
custom_view.clearCustomValues();
12471249
if(option === 'scaled'){
1248-
custom_view.showScaledMenu();
1250+
custom_view.showScaledMenu();
12491251
}
1252+
sendTracking('custom-layout',option);
12501253
}
12511254

12521255
}).on('click', '.custom-view .scaled-input', function(){
12531256
var $this = $(this);
12541257
$('.custom-view .scaled-input').removeClass('selected');
12551258
$this.addClass('selected');
12561259
custom_view.showScaledMenu();
1260+
sendTracking('custom-layout',$this.text());
12571261
}).on('click','.custom-view .switch-toggle.scaled-layout-orientation input', function(){
12581262
custom_view.showScaledMenu();
1263+
sendTracking('custom-layout',$(this).attr('id'));
12591264
});
12601265

12611266
})();

0 commit comments

Comments
 (0)