Merge pull request #3119 from Safelite/nation/CASH-2497
CASH-2497 log full querystring on init session
This commit is contained in:
commit
06e4c374e6
7 changed files with 11 additions and 105 deletions
|
|
@ -180,10 +180,6 @@ const endpoints = {
|
||||||
url: "/analytics/api/v1/analytics/log-part-questions",
|
url: "/analytics/api/v1/analytics/log-part-questions",
|
||||||
method: "POST",
|
method: "POST",
|
||||||
},
|
},
|
||||||
LogDigitalConsumer: {
|
|
||||||
url: "/analytics/api/v1/analytics/digitalconsumer-log",
|
|
||||||
method: "POST",
|
|
||||||
},
|
|
||||||
LogFmgSessionData: {
|
LogFmgSessionData: {
|
||||||
url: "/analytics/api/v1/analytics/digitalconsumer-session-logging",
|
url: "/analytics/api/v1/analytics/digitalconsumer-session-logging",
|
||||||
method: "POST",
|
method: "POST",
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,6 @@ const storeActions = {
|
||||||
LOG_CUSTOM_EVENT: "logCustomEvent",
|
LOG_CUSTOM_EVENT: "logCustomEvent",
|
||||||
INITIALIZE_SESSION: "initializeSession",
|
INITIALIZE_SESSION: "initializeSession",
|
||||||
LOG_PART_QUESTIONS: "logPartQuestions",
|
LOG_PART_QUESTIONS: "logPartQuestions",
|
||||||
LOG_DIGITALCONSUMER: "logDigitalConsumer",
|
|
||||||
LOG_FMG_SESSION_DATA: "logFmgSessionData",
|
LOG_FMG_SESSION_DATA: "logFmgSessionData",
|
||||||
|
|
||||||
// DEPENDENCY MUTATIONS
|
// DEPENDENCY MUTATIONS
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,6 @@ export default {
|
||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
if (
|
if (
|
||||||
endpoint.toLowerCase().includes(endpoints.LogDigitalConsumer.url) ||
|
|
||||||
endpoint.toLowerCase().includes(endpoints.LogFmgSessionData.url) ||
|
endpoint.toLowerCase().includes(endpoints.LogFmgSessionData.url) ||
|
||||||
endpoint.toLowerCase().includes(endpoints.LogPageView.url) ||
|
endpoint.toLowerCase().includes(endpoints.LogPageView.url) ||
|
||||||
endpoint.toLowerCase().includes(endpoints.LogCustomEvent.url) ||
|
endpoint.toLowerCase().includes(endpoints.LogCustomEvent.url) ||
|
||||||
|
|
|
||||||
|
|
@ -132,51 +132,6 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async logDigitalConsumer() {
|
|
||||||
const currentPageName = getPageNameFromRouter();
|
|
||||||
const universes = store.getters.applicationUser.experiments;
|
|
||||||
|
|
||||||
const variationNames = universes
|
|
||||||
.filter((item) => item.universeName === experimentUniverses.CONCEPT_FUNNEL)
|
|
||||||
.map((item) => item.variationName)
|
|
||||||
.filter(Boolean); // removes undefined/null
|
|
||||||
|
|
||||||
const conceptVariation = variationNames.length > 0 ? variationNames[0] : "";
|
|
||||||
|
|
||||||
const isConceptExposed = universes.find(
|
|
||||||
(item) => item.universeName === experimentUniverses.CONCEPT_FUNNEL
|
|
||||||
)?.isExposed;
|
|
||||||
|
|
||||||
const submittedOrder = baseMixin.methods.getSubmittedOrder();
|
|
||||||
const hasSubmittedOrder = baseMixin.methods.hasSubmittedOrder();
|
|
||||||
const hasSubmittedOrderAtConfirmationPage =
|
|
||||||
hasSubmittedOrder && currentPageName?.toLowerCase() == routeData.CONFIRMATION.name;
|
|
||||||
|
|
||||||
var payload = {
|
|
||||||
actionName: `Browser page:${currentPageName}`,
|
|
||||||
referralSequenceNumber: hasSubmittedOrderAtConfirmationPage
|
|
||||||
? submittedOrder.referralSequenceNumber
|
|
||||||
: store.getters.order.referralSequenceNumber,
|
|
||||||
referralNumber: hasSubmittedOrderAtConfirmationPage
|
|
||||||
? submittedOrder.referralNumber
|
|
||||||
: store.getters.order.referralNumber,
|
|
||||||
workOrderId: hasSubmittedOrderAtConfirmationPage
|
|
||||||
? submittedOrder.workOrderId
|
|
||||||
: store.getters.order.workOrderId,
|
|
||||||
workOrderNumber: hasSubmittedOrderAtConfirmationPage
|
|
||||||
? submittedOrder.workOrderNumber
|
|
||||||
: store.getters.order.workOrderNumber,
|
|
||||||
conceptVariation: conceptVariation,
|
|
||||||
isConceptExposed: isConceptExposed,
|
|
||||||
};
|
|
||||||
|
|
||||||
await baseMixin.methods.dispatchStoreAction(
|
|
||||||
storeActions.LOG_DIGITALCONSUMER,
|
|
||||||
payload,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
async pushEventForChatsToGA(category, action, label, pushToLogApp = false) {
|
async pushEventForChatsToGA(category, action, label, pushToLogApp = false) {
|
||||||
const currentPageName = getPageNameFromRouter();
|
const currentPageName = getPageNameFromRouter();
|
||||||
const value = `2.0_${currentPageName}`;
|
const value = `2.0_${currentPageName}`;
|
||||||
|
|
@ -206,6 +161,11 @@ export default {
|
||||||
// S3 bucket, safelite-dev-digitalconsumer-session-data-us-east-2/1.
|
// S3 bucket, safelite-dev-digitalconsumer-session-data-us-east-2/1.
|
||||||
// This bucket data is then picked up by snowflake for analytics use.
|
// This bucket data is then picked up by snowflake for analytics use.
|
||||||
async pushFmgSessionData() {
|
async pushFmgSessionData() {
|
||||||
|
var currentPageName = getPageNameFromRouter(true);
|
||||||
|
if (!currentPageName) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const hasSubmittedOrder = baseMixin.methods.hasSubmittedOrder();
|
const hasSubmittedOrder = baseMixin.methods.hasSubmittedOrder();
|
||||||
const submittedOrder = baseMixin.methods.getSubmittedOrder();
|
const submittedOrder = baseMixin.methods.getSubmittedOrder();
|
||||||
const order = hasSubmittedOrder ? submittedOrder : store.getters.order;
|
const order = hasSubmittedOrder ? submittedOrder : store.getters.order;
|
||||||
|
|
@ -247,22 +207,6 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
var appointment = `${order?.schedule?.date ?? ""} ${order?.schedule?.startTime ?? ""}`;
|
var appointment = `${order?.schedule?.date ?? ""} ${order?.schedule?.startTime ?? ""}`;
|
||||||
var currentPageName = getPageNameFromRouter();
|
|
||||||
|
|
||||||
// add query strings to the page name for debugging. on the vehicle page, if from an external link, pull it from the stash
|
|
||||||
if (currentPageName === "vehicle") {
|
|
||||||
if (!window.location.search) {
|
|
||||||
if (store.getters.externalParameterState?.qsStash) {
|
|
||||||
currentPageName += `${store.getters.externalParameterState.qsStash}`;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
currentPageName += `${window.location.search}`;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (window.location.search) {
|
|
||||||
currentPageName += `${window.location.search}`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var sessionData = {};
|
var sessionData = {};
|
||||||
sessionData.currentPage = currentPageName;
|
sessionData.currentPage = currentPageName;
|
||||||
|
|
@ -911,6 +855,9 @@ export default {
|
||||||
setSessionIdIfUnset(response.data.sessionId);
|
setSessionIdIfUnset(response.data.sessionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// logging on session init so we capture complete query string data
|
||||||
|
await this.pushFmgSessionData();
|
||||||
},
|
},
|
||||||
|
|
||||||
noSession() {
|
noSession() {
|
||||||
|
|
@ -977,7 +924,7 @@ function pushToDataLayerIfDefined(data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPageNameFromRouter() {
|
function getPageNameFromRouter(useDefaultUrl = false) {
|
||||||
if (
|
if (
|
||||||
router &&
|
router &&
|
||||||
router.currentRoute &&
|
router.currentRoute &&
|
||||||
|
|
@ -987,7 +934,7 @@ function getPageNameFromRouter() {
|
||||||
return router.currentRoute.value.name;
|
return router.currentRoute.value.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
return window.location.href.replace(/\/$/, "").split("/").pop();
|
return useDefaultUrl ? window.location.search : window.location.href.replace(/\/$/, "").split("/").pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getValueToLog(value, valueToLogType) {
|
function getValueToLog(value, valueToLogType) {
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,6 @@ import { storeMutations } from "@/constants/store-mutations";
|
||||||
export async function afterEach(to, from) {
|
export async function afterEach(to, from) {
|
||||||
store.commit(storeMutations.UPDATE_LAST_PAGE_VISITED, to.name);
|
store.commit(storeMutations.UPDATE_LAST_PAGE_VISITED, to.name);
|
||||||
|
|
||||||
// digital consumer logging
|
|
||||||
analyticsMixin.methods.logDigitalConsumer();
|
|
||||||
|
|
||||||
// digital consumer fmg session logging to snowflake
|
// digital consumer fmg session logging to snowflake
|
||||||
analyticsMixin.methods.pushFmgSessionData();
|
analyticsMixin.methods.pushFmgSessionData();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ export async function errorBeforeEnter(to, from) {
|
||||||
nextPage: to?.name,
|
nextPage: to?.name,
|
||||||
};
|
};
|
||||||
|
|
||||||
analyticsMixin.methods.logDigitalConsumer();
|
|
||||||
await handleHardError(errorPayload);
|
await handleHardError(errorPayload);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -33,7 +32,6 @@ export async function errorBeforeEnter(to, from) {
|
||||||
nextPage: to?.name,
|
nextPage: to?.name,
|
||||||
};
|
};
|
||||||
|
|
||||||
analyticsMixin.methods.logDigitalConsumer();
|
|
||||||
await handleHardError(errorPayload);
|
await handleHardError(errorPayload);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -1630,37 +1630,6 @@ export const actions = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
logDigitalConsumer(
|
|
||||||
context,
|
|
||||||
{
|
|
||||||
actionName,
|
|
||||||
referralSequenceNumber,
|
|
||||||
referralNumber,
|
|
||||||
workOrderId,
|
|
||||||
workOrderNumber,
|
|
||||||
conceptVariation,
|
|
||||||
isConceptExposed,
|
|
||||||
}
|
|
||||||
) {
|
|
||||||
var payload = {
|
|
||||||
sessionId: getSessionIdValue(),
|
|
||||||
deviceId: getDeviceIdValue(),
|
|
||||||
actionName: actionName ?? "",
|
|
||||||
referralSequenceNumber: referralSequenceNumber ?? "",
|
|
||||||
referralNumber: referralNumber ?? "",
|
|
||||||
applicationName: baseMixin.methods.isMobileDevice() ? "2.0 Mobile" : "2.0",
|
|
||||||
workOrderId: workOrderId ?? "",
|
|
||||||
workOrderNumber: workOrderNumber ?? "",
|
|
||||||
conceptVariation: conceptVariation,
|
|
||||||
isConceptExposed: isConceptExposed,
|
|
||||||
};
|
|
||||||
|
|
||||||
return globalMethods.callHttpClient({
|
|
||||||
method: endpoints.LogDigitalConsumer.method,
|
|
||||||
endpoint: endpoints.LogDigitalConsumer.url,
|
|
||||||
payload: payload,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
logFmgSessionData(
|
logFmgSessionData(
|
||||||
context,
|
context,
|
||||||
|
|
@ -1770,6 +1739,7 @@ export const actions = {
|
||||||
method: endpoints.LogFmgSessionData.method,
|
method: endpoints.LogFmgSessionData.method,
|
||||||
endpoint: endpoints.LogFmgSessionData.url,
|
endpoint: endpoints.LogFmgSessionData.url,
|
||||||
payload: payload,
|
payload: payload,
|
||||||
|
logApiCall: false,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue