From ee5c761680268809fa187228a8875303e0c1380f Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 12 Feb 2019 16:04:14 -0600 Subject: [PATCH 1/4] fix(analytics): set reg platform only once --- website/server/libs/analyticsService.js | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/website/server/libs/analyticsService.js b/website/server/libs/analyticsService.js index f96e7ca228..2e64bd7b3d 100644 --- a/website/server/libs/analyticsService.js +++ b/website/server/libs/analyticsService.js @@ -10,7 +10,7 @@ import { } from 'lodash'; import { content as Content } from '../../common'; -const AMPLIUDE_TOKEN = nconf.get('AMPLITUDE_KEY'); +const AMPLITUDE_TOKEN = nconf.get('AMPLITUDE_KEY'); const GA_TOKEN = nconf.get('GA_ID'); const GA_POSSIBLE_LABELS = ['gaLabel', 'itemKey']; const GA_POSSIBLE_VALUES = ['gaValue', 'gemCost', 'goldCost']; @@ -23,7 +23,7 @@ const PLATFORM_MAP = Object.freeze({ }); let amplitude; -if (AMPLIUDE_TOKEN) amplitude = new Amplitude(AMPLIUDE_TOKEN); +if (AMPLITUDE_TOKEN) amplitude = new Amplitude(AMPLITUDE_TOKEN); let ga = googleAnalytics(GA_TOKEN); @@ -271,11 +271,28 @@ let _sendPurchaseDataToGoogle = (data) => { }); }; +let _setOnce = (data) => { + return new Promise((resolve, reject) => { + amplitude.identify({ + user_properties: { + $setOnce: data, + }, + }) + .then(resolve) + .catch(reject); + }); +}; + function track (eventType, data) { - return Promise.all([ + let promises = [ _sendDataToAmplitude(eventType, data), _sendDataToGoogle(eventType, data), - ]); + ]; + if (data.user && data.user.registeredThrough) { + promises.push(_setOnce({registeredPlatform: data.user.registeredThrough})); + } + + return Promise.all(promises); } function trackPurchase (data) { From 94db493974ab14d5b1b063589e93c99d1a04ea1b Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 12 Feb 2019 16:07:14 -0600 Subject: [PATCH 2/4] fix(analytics): don't also send prop along with event --- website/server/libs/analyticsService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/server/libs/analyticsService.js b/website/server/libs/analyticsService.js index 2e64bd7b3d..0a7ff5da70 100644 --- a/website/server/libs/analyticsService.js +++ b/website/server/libs/analyticsService.js @@ -14,7 +14,7 @@ const AMPLITUDE_TOKEN = nconf.get('AMPLITUDE_KEY'); const GA_TOKEN = nconf.get('GA_ID'); const GA_POSSIBLE_LABELS = ['gaLabel', 'itemKey']; const GA_POSSIBLE_VALUES = ['gaValue', 'gemCost', 'goldCost']; -const AMPLITUDE_PROPERTIES_TO_SCRUB = ['uuid', 'user', 'purchaseValue', 'gaLabel', 'gaValue', 'headers']; +const AMPLITUDE_PROPERTIES_TO_SCRUB = ['uuid', 'user', 'purchaseValue', 'gaLabel', 'gaValue', 'headers', 'registeredPlatform']; const PLATFORM_MAP = Object.freeze({ 'habitica-web': 'Web', From f137342d88b94ea18394b3a88c95609c2471e78b Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 12 Feb 2019 16:12:53 -0600 Subject: [PATCH 3/4] fix(analytics): still more registeredThrough cleanup --- website/server/libs/analyticsService.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/website/server/libs/analyticsService.js b/website/server/libs/analyticsService.js index 0a7ff5da70..b6eab215d9 100644 --- a/website/server/libs/analyticsService.js +++ b/website/server/libs/analyticsService.js @@ -14,7 +14,7 @@ const AMPLITUDE_TOKEN = nconf.get('AMPLITUDE_KEY'); const GA_TOKEN = nconf.get('GA_ID'); const GA_POSSIBLE_LABELS = ['gaLabel', 'itemKey']; const GA_POSSIBLE_VALUES = ['gaValue', 'gemCost', 'goldCost']; -const AMPLITUDE_PROPERTIES_TO_SCRUB = ['uuid', 'user', 'purchaseValue', 'gaLabel', 'gaValue', 'headers', 'registeredPlatform']; +const AMPLITUDE_PROPERTIES_TO_SCRUB = ['uuid', 'user', 'purchaseValue', 'gaLabel', 'gaValue', 'headers', 'registeredThrough']; const PLATFORM_MAP = Object.freeze({ 'habitica-web': 'Web', @@ -97,10 +97,6 @@ let _formatUserData = (user) => { properties.ABtests = toArray(user._ABtests); } - if (user.registeredThrough) { - properties.registeredPlatform = user.registeredThrough; - } - if (user.loginIncentives) { properties.loginIncentives = user.loginIncentives; } From d178928c45cf0f33b9211d673156437b47677d8a Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Mon, 18 Mar 2019 15:51:49 -0500 Subject: [PATCH 4/4] fix(analytics): remove excess promise layer --- website/server/libs/analyticsService.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/website/server/libs/analyticsService.js b/website/server/libs/analyticsService.js index b6eab215d9..38da9c6a9c 100644 --- a/website/server/libs/analyticsService.js +++ b/website/server/libs/analyticsService.js @@ -268,14 +268,10 @@ let _sendPurchaseDataToGoogle = (data) => { }; let _setOnce = (data) => { - return new Promise((resolve, reject) => { - amplitude.identify({ - user_properties: { - $setOnce: data, - }, - }) - .then(resolve) - .catch(reject); + return amplitude.identify({ + user_properties: { + $setOnce: data, + }, }); };