Merge pull request #1199 from Safelite/feature/CSR-1436

CSR-1436 provisional triggers ga event logging
This commit is contained in:
Matt Caimi 2023-06-30 14:06:01 -04:00 committed by GitHub
commit 3bbf52e3f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 1 deletions

View file

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

View file

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

View file

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