From d8f7e4157ae73d7ae038a41b39a0a56d83128bb1 Mon Sep 17 00:00:00 2001 From: Christel Westerberg Date: Tue, 16 Jul 2024 10:39:22 +0200 Subject: [PATCH] fix: add correct properties to tracking --- components/TrackingSDK/Client.tsx | 35 +++++-------------------------- server/routers/user/query.ts | 5 +++-- types/components/tracking.ts | 3 ++- 3 files changed, 10 insertions(+), 33 deletions(-) diff --git a/components/TrackingSDK/Client.tsx b/components/TrackingSDK/Client.tsx index 2fd9cba33..95d42884c 100644 --- a/components/TrackingSDK/Client.tsx +++ b/components/TrackingSDK/Client.tsx @@ -5,49 +5,24 @@ import { useCallback, useEffect } from "react" import { webviews } from "@/constants/routes/webviews" -import { - SiteSectionObject, - TrackingSDKData, - TrackingSDKProps, -} from "@/types/components/tracking" +import { TrackingSDKData, TrackingSDKProps } from "@/types/components/tracking" function createSDKPageObject(trackingData: TrackingSDKData) { const [lang, ...segments] = trackingData.pathName .split("/") .filter((seg: string) => seg) - /* - Adobe expects the properties sitesection1 - sitessection6, hence the for-loop below - The segments ['explore-scandic', 'wifi'] should result in: - { - sitesection1: "explore-scandic", - sitesection2: "explore-scandic|wifi", - sitesection3: "explore-scandic|wifi|", - sitesection4: "explore-scandic|wifi||", - sitesection5: "explore-scandic|wifi|||", - sitesection6: "explore-scandic|wifi||||", - } - */ - const siteSections = {} as SiteSectionObject - for (let i = 0; i < 6; i++) { - const key = ("sitesection" + (i + 1)) as keyof SiteSectionObject - - siteSections[key] = segments.slice(0, i + 1).join("|") - if (i > 0 && !segments[i]) { - siteSections[key] = siteSections[key].concat( - "|".repeat(i + 1 - segments.length) - ) - } - } + const joinedSegments = segments.join("|") const { host: domain } = window.location const page_obj = { event: "pageView", pageInfo: { - pageName: segments.join("|"), + pageType: trackingData.pageType, + pageName: joinedSegments, pageId: trackingData.pageId, channel: trackingData.channel, - siteSections, + siteSection: joinedSegments, domain, siteversion: "new-web", domainlanguage: trackingData.lang ? trackingData.lang : lang, diff --git a/server/routers/user/query.ts b/server/routers/user/query.ts index 3a4c13aac..370989034 100644 --- a/server/routers/user/query.ts +++ b/server/routers/user/query.ts @@ -222,7 +222,7 @@ export const userQueryRouter = router({ }), tracking: safeProtectedProcedure.query(async function ({ ctx }) { const notLoggedInUserTrackingData: TrackingSDKUserData = { - loginStatus: false, + loginStatus: "Non-logged in", } if (!ctx.session) { @@ -267,12 +267,13 @@ export const userQueryRouter = router({ const membership = getMembership(verifiedUserData.data.memberships) const loggedInUserTrackingData: TrackingSDKUserData = { - loginStatus: true, + loginStatus: "logged in", loginType: ctx.session.token.loginType as LoginType, memberId: membership?.membershipNumber, memberLevel: membership?.membershipLevel, noOfNightsStayed: verifiedPreviousStaysData.data.links?.totalCount ?? 0, totalPointsAvailableToSpend: membership?.currentPoints, + loginAction: "login success", } return loggedInUserTrackingData diff --git a/types/components/tracking.ts b/types/components/tracking.ts index 1c4362eb7..cbda0eec7 100644 --- a/types/components/tracking.ts +++ b/types/components/tracking.ts @@ -25,12 +25,13 @@ export enum LoginTypeEnum { export type LoginType = keyof typeof LoginTypeEnum export type TrackingSDKUserData = { - loginStatus: boolean + loginStatus: "logged in" | "Non-logged in" loginType?: LoginType memberId?: string memberLevel?: MembershipLevel noOfNightsStayed?: number totalPointsAvailableToSpend?: number + loginAction?: "login success" } export type TrackingSDKProps = {