diff --git a/src/global-methods.js b/src/global-methods.js index a12c3870d..44ba07acc 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -39,9 +39,11 @@ export default { } const pageName = analyticsMixIn.methods.getPageName(); const nextPageName = router.lastNavigationPage || pageName; + const endpointWithoutParams = + analyticsMixIn.methods.removeParamsFromEndpoint(endpoint); analyticsMixIn.methods.pushEventToGA( GaCategories.API_RESPONSE, - `${nextPageName}_${endpoint}`, + `${nextPageName}_${endpointWithoutParams}`, `${GaLabels.SUCCESS}${additionalEventData}`, true ); diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 75f22edcb..88b4772f8 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -176,6 +176,18 @@ export default { getSessionIdValue() === "00000000-0000-0000-0000-000000000000" ); }, + + removeParamsFromEndpoint(endpoint) { + const endpointWithoutParams = endpoint.split("?")[0]; + const numSlashesBeforeParams = 6; + let splitString = endpointWithoutParams.split("/"); + if (splitString.length > numSlashesBeforeParams) { + splitString = splitString.slice(0, numSlashesBeforeParams); + return splitString.join("/"); + } else { + return endpointWithoutParams; + } + }, }, computed: { analyticsPageEvents() { diff --git a/src/store/index.js b/src/store/index.js index 7e7dfffaf..080abe822 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -596,6 +596,10 @@ function getNonFalseValuesOfPropertyInArrayOfObjects(array, propertyName) { return (array ?? []).map((x) => x[propertyName]).filter((x) => x); } +function provisionalTriggersToString(provisionalTriggers) { + return "ProvisionalTriggers:" + provisionalTriggers.join(","); +} + // Export Actions export const actions = { // Vehicle API Actions @@ -1267,6 +1271,8 @@ export const actions = { method: endpoints.GetShopTimeSlots.method, endpoint: endpoints.GetShopTimeSlots.url, payload: payload, + additionalSuccessEventDataHandler: (response) => + provisionalTriggersToString(response.data.provisionalTriggers), }); }, @@ -1318,6 +1324,8 @@ export const actions = { method: endpoints.GetMobileTimeSlots.method, endpoint: endpoints.GetMobileTimeSlots.url, payload: payload, + additionalSuccessEventDataHandler: (response) => + provisionalTriggersToString(response.data.provisionalTriggers), }); },