fix: add correct properties to tracking
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user