From 79d602166004275d794830a51cd8e44a3a177b9c Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Sun, 8 Aug 2021 01:51:04 +1200 Subject: [PATCH] Added Analytics Tracking for Each 'Save' Button Click that Tracks Changes. This should help by giving an upper bound for how many users change these settings at all. --- src/js/Analytics.js | 8 ++++++++ src/js/tabs/configuration.js | 2 +- src/js/tabs/motors.js | 2 +- src/js/tabs/osd.js | 2 +- src/js/tabs/pid_tuning.js | 2 +- src/js/tabs/ports.js | 2 +- src/js/tabs/power.js | 2 +- src/js/tabs/receiver.js | 2 +- src/js/tabs/vtx.js | 2 +- 9 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/js/Analytics.js b/src/js/Analytics.js index 79d4208c..232a639d 100644 --- a/src/js/Analytics.js +++ b/src/js/Analytics.js @@ -109,6 +109,14 @@ Analytics.prototype.sendChangeEvents = function (category, changeList) { } }; +Analytics.prototype.sendSaveAndChangeEvents = function (category, changeList, tabName) { + this.sendEvent(category, 'Save', { + eventLabel: tabName, + eventValue: Object.keys(changeList).length, + }); + this.sendChangeEvents(category, changeList); +}; + Analytics.prototype.sendAppView = function (viewName) { this._googleAnalytics.screenview(viewName); }; diff --git a/src/js/tabs/configuration.js b/src/js/tabs/configuration.js index 051d2ee9..c83a0983 100644 --- a/src/js/tabs/configuration.js +++ b/src/js/tabs/configuration.js @@ -581,7 +581,7 @@ TABS.configuration.initialize = function (callback) { FC.RX_CONFIG.fpvCamAngleDegrees = parseInt($('input[name="fpvCamAngleDegrees"]').val()); - analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges); + analytics.sendSaveAndChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'configuration'); self.analyticsChanges = {}; // fill some data diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index 571690b9..12b11446 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -1075,7 +1075,7 @@ TABS.motors.initialize = function (callback) { .then(() => MSP.promise(MSPCodes.MSP_EEPROM_WRITE)) .then(() => reboot()); - analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges); + analytics.sendSaveAndChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'motors'); self.analyticsChanges = {}; self.configHasChanged = false; }); diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index 4f512809..82e9826d 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -3152,7 +3152,7 @@ TABS.osd.initialize = function(callback) { } }); - analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges); + analytics.sendSaveAndChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'osd'); self.analyticsChanges = {}; }); diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index ed2f0d63..a203ed74 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -2120,7 +2120,7 @@ TABS.pid_tuning.initialize = function (callback) { self.refresh(); }); - analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges); + analytics.sendSaveAndChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'pid_tuning'); self.analyticsChanges = {}; }); diff --git a/src/js/tabs/ports.js b/src/js/tabs/ports.js index b87f27a3..ab6fa971 100644 --- a/src/js/tabs/ports.js +++ b/src/js/tabs/ports.js @@ -351,7 +351,7 @@ TABS.ports.initialize = function (callback, scrollPosition) { } function on_save_handler() { - analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges); + analytics.sendSaveAndChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'ports'); self.analyticsChanges = {}; // update configuration based on current ui state diff --git a/src/js/tabs/power.js b/src/js/tabs/power.js index 1c00c664..9144232e 100644 --- a/src/js/tabs/power.js +++ b/src/js/tabs/power.js @@ -477,7 +477,7 @@ TABS.power.initialize = function (callback) { FC.BATTERY_CONFIG.vbatwarningcellvoltage = parseFloat($('input[name="warningcellvoltage"]').val()); FC.BATTERY_CONFIG.capacity = parseInt($('input[name="capacity"]').val()); - analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges); + analytics.sendSaveAndChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'power'); save_power_config(); }); diff --git a/src/js/tabs/receiver.js b/src/js/tabs/receiver.js index b54028ec..a9aafb6a 100644 --- a/src/js/tabs/receiver.js +++ b/src/js/tabs/receiver.js @@ -468,7 +468,7 @@ TABS.receiver.initialize = function (callback) { } } - analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, tab.analyticsChanges); + analytics.sendSaveAndChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, tab.analyticsChanges, 'receiver'); tab.analyticsChanges = {}; MSP.send_message(MSPCodes.MSP_SET_RX_MAP, mspHelper.crunch(MSPCodes.MSP_SET_RX_MAP), false, save_rssi_config); diff --git a/src/js/tabs/vtx.js b/src/js/tabs/vtx.js index c6c32952..32afeea0 100644 --- a/src/js/tabs/vtx.js +++ b/src/js/tabs/vtx.js @@ -828,7 +828,7 @@ TABS.vtx.initialize = function (callback) { // Start MSP saving save_vtx_config(); - analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges); + analytics.sendSaveAndChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'vtx'); function save_vtx_config() { MSP.send_message(MSPCodes.MSP_SET_VTX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_VTX_CONFIG), false, save_vtx_powerlevels);