Merge pull request #3119 from Safelite/nation/CASH-2497

CASH-2497 log full querystring on init session
This commit is contained in:
CarlNation 2026-03-27 07:00:01 -04:00 committed by GitHub
commit 06e4c374e6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 11 additions and 105 deletions

View file

@ -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",

View file

@ -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

View file

@ -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) ||

View file

@ -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) {

View file

@ -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();

View file

@ -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 {

View file

@ -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,
}); });
}, },