fix: add correct properties to tracking

This commit is contained in:
Christel Westerberg
2024-07-16 10:39:22 +02:00
parent 92829108be
commit d8f7e4157a
3 changed files with 10 additions and 33 deletions

View File

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

View File

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

View File

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