From d3b553643b149d3cdea98ed1d76abc8913cce964 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Mon, 15 Jul 2024 16:09:30 -0400 Subject: [PATCH 1/2] Add log exposure to before enter on welcome page. --- src/constants/experiments.js | 4 +++- src/layouts/welcome-page/welcome-page.vue | 4 ++-- src/store/index.js | 21 ++++++++++++++++++--- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/constants/experiments.js b/src/constants/experiments.js index b5af7dbc..f1d52ede 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -1,5 +1,7 @@ const experimentUniverses = Object.freeze({ - ISS_FUNNEL: 'ISSFunnel' + ISS_FUNNEL: 'ISSFunnel', + ISS_FEATURETOGGLE_AREFEES_HIDDEN: 'NextGenISS_FeatureToggle_AreFeesHidden', + ISS_FEATURETOGGLE_AREFEES_OVERRIDDEN: 'NextGenISS_FeatureToggle_AreFeesOverridden' }); const experimentSettings = Object.freeze({ diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index 0298a45c..edfcab02 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -202,9 +202,9 @@ export default { async beforeRouteEnter(to, from, next) { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.issPage); - const cmsGlobalSiteHeaderContentPromise = - fetchGlobalCmsContent('iss-siteheader'); + const cmsGlobalSiteHeaderContentPromise = fetchGlobalCmsContent('iss-siteheader'); + useMainStore().logWelcomePageExperiments(to.query.issPage); // Settle promises and get results const promiseResultMap = [ { diff --git a/src/store/index.js b/src/store/index.js index 79eea573..ae4587b5 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -6,7 +6,7 @@ import { endpoints } from '@/constants/endpoints'; import { getDateForSavedSessionTimeout } from '@/helpers/session-helper'; // eslint-disable-next-line import/no-cycle import globalMethods from '@/global-methods'; -import { experimentTriggers } from '@/constants/experiments'; +import { experimentTriggers, experimentUniverses } from '@/constants/experiments'; import applicationConfig from '@/constants/application-config'; import issPageValues from '@/router/router-constants/issPage-values'; import damageLocationsSelected from '@/constants/damage-locations-selected'; @@ -29,6 +29,7 @@ import { getLineItemsFlattened } from '@/helpers/line-items-helper'; import { buildQueryStringParameterFromArrayOfComplexObjects, getLineItemQueryString, getTaxLineItemQueryString } from '@/helpers/querystring-helper'; import coverageType from '@/constants/coverage-type'; import { getFeatureTogglesQueryString } from '@/helpers/experiment-helper'; +import { getSessionKeyValue, getUserIdValue } from '@/helpers/cookie-helper'; const storeId = 'main'; @@ -2202,9 +2203,8 @@ export const useMainStore = defineStore({ this.order.schedule.jobMinMinutes = scheduleInfo.jobMinMinutes; } }, - // Analytics Actions - logExperimentExposure({ userId, sessionKey, pageName, experiment }) { + logExperimentExposure(userId, sessionKey, pageName, experiment) { return globalMethods.callHttpClient({ method: endpoints.LogExperimentExposureIfAssigned.method, endpoint: endpoints.LogExperimentExposureIfAssigned.url, @@ -2281,6 +2281,21 @@ export const useMainStore = defineStore({ } ); }, + logWelcomePageExperiments(issPage) { + const hideFeesExperiment = this.applicationUser.experiments.find((e) => e.universeName === experimentUniverses.ISS_FEATURETOGGLE_AREFEES_HIDDEN); + const overrideFeesExperiment = this.applicationUser.experiments.find((e) => e.universeName === experimentUniverses.ISS_FEATURETOGGLE_AREFEES_OVERRIDDEN); + + if ((hideFeesExperiment !== undefined) || (overrideFeesExperiment !== undefined)) { + const userId = getUserIdValue(); + const sessionKey = getSessionKeyValue(); + if (hideFeesExperiment !== undefined) { + this.logExperimentExposure(userId, sessionKey, issPage, hideFeesExperiment); + } + if (overrideFeesExperiment !== undefined) { + this.logExperimentExposure(userId, sessionKey, issPage, overrideFeesExperiment); + } + } + }, initializeSession({ userId, sessionId, userAgent, referrer }) { const payload = { applicationName: applicationConfig.APPLICATION_NAME, From 61ca1bf39d1fc128aa7027db580084172be2ea56 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Tue, 16 Jul 2024 10:08:42 -0400 Subject: [PATCH 2/2] refactored --- src/store/index.js | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index ae4587b5..8dd6e86a 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -2204,13 +2204,13 @@ export const useMainStore = defineStore({ } }, // Analytics Actions - logExperimentExposure(userId, sessionKey, pageName, experiment) { + logExperimentExposure(pageName, experiment) { return globalMethods.callHttpClient({ method: endpoints.LogExperimentExposureIfAssigned.method, endpoint: endpoints.LogExperimentExposureIfAssigned.url, payload: { experimentForLogging: { - userId, + userId: getUserIdValue(), experimentUniverseId: experiment.universeId, experimentUniverseName: experiment.universeName, experimentTestId: experiment.testId, @@ -2221,12 +2221,18 @@ export const useMainStore = defineStore({ isExposed: experiment.isExposed, userPartitionNumber: experiment.userPartitionNumber, assignmentId: experiment.assignmentId, - sessionKey, + sessionKey: getSessionKeyValue(), pageName } } }); }, + logExperimentIfExists(pageName, universe) { + const experiment = this.applicationUser.experiments.find((e) => e.universeName === universe); + if (experiment !== undefined) { + this.logExperimentExposure(pageName, experiment); + } + }, logPageView({ userId, sessionKey, pageName, sessionId, action, event, shouldUseSessionId, experimentsForUser }) { const payload = { userId, @@ -2282,19 +2288,8 @@ export const useMainStore = defineStore({ ); }, logWelcomePageExperiments(issPage) { - const hideFeesExperiment = this.applicationUser.experiments.find((e) => e.universeName === experimentUniverses.ISS_FEATURETOGGLE_AREFEES_HIDDEN); - const overrideFeesExperiment = this.applicationUser.experiments.find((e) => e.universeName === experimentUniverses.ISS_FEATURETOGGLE_AREFEES_OVERRIDDEN); - - if ((hideFeesExperiment !== undefined) || (overrideFeesExperiment !== undefined)) { - const userId = getUserIdValue(); - const sessionKey = getSessionKeyValue(); - if (hideFeesExperiment !== undefined) { - this.logExperimentExposure(userId, sessionKey, issPage, hideFeesExperiment); - } - if (overrideFeesExperiment !== undefined) { - this.logExperimentExposure(userId, sessionKey, issPage, overrideFeesExperiment); - } - } + this.logExperimentIfExists(issPage, experimentUniverses.ISS_FEATURETOGGLE_AREFEES_HIDDEN); + this.logExperimentIfExists(issPage, experimentUniverses.ISS_FEATURETOGGLE_AREFEES_OVERRIDDEN); }, initializeSession({ userId, sessionId, userAgent, referrer }) { const payload = {