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 { webviews } from "@/constants/routes/webviews"
|
||||||
|
|
||||||
import {
|
import { TrackingSDKData, TrackingSDKProps } from "@/types/components/tracking"
|
||||||
SiteSectionObject,
|
|
||||||
TrackingSDKData,
|
|
||||||
TrackingSDKProps,
|
|
||||||
} from "@/types/components/tracking"
|
|
||||||
|
|
||||||
function createSDKPageObject(trackingData: TrackingSDKData) {
|
function createSDKPageObject(trackingData: TrackingSDKData) {
|
||||||
const [lang, ...segments] = trackingData.pathName
|
const [lang, ...segments] = trackingData.pathName
|
||||||
.split("/")
|
.split("/")
|
||||||
.filter((seg: string) => seg)
|
.filter((seg: string) => seg)
|
||||||
|
|
||||||
/*
|
const joinedSegments = segments.join("|")
|
||||||
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 { host: domain } = window.location
|
const { host: domain } = window.location
|
||||||
const page_obj = {
|
const page_obj = {
|
||||||
event: "pageView",
|
event: "pageView",
|
||||||
pageInfo: {
|
pageInfo: {
|
||||||
pageName: segments.join("|"),
|
pageType: trackingData.pageType,
|
||||||
|
pageName: joinedSegments,
|
||||||
pageId: trackingData.pageId,
|
pageId: trackingData.pageId,
|
||||||
channel: trackingData.channel,
|
channel: trackingData.channel,
|
||||||
siteSections,
|
siteSection: joinedSegments,
|
||||||
domain,
|
domain,
|
||||||
siteversion: "new-web",
|
siteversion: "new-web",
|
||||||
domainlanguage: trackingData.lang ? trackingData.lang : lang,
|
domainlanguage: trackingData.lang ? trackingData.lang : lang,
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ export const userQueryRouter = router({
|
|||||||
}),
|
}),
|
||||||
tracking: safeProtectedProcedure.query(async function ({ ctx }) {
|
tracking: safeProtectedProcedure.query(async function ({ ctx }) {
|
||||||
const notLoggedInUserTrackingData: TrackingSDKUserData = {
|
const notLoggedInUserTrackingData: TrackingSDKUserData = {
|
||||||
loginStatus: false,
|
loginStatus: "Non-logged in",
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ctx.session) {
|
if (!ctx.session) {
|
||||||
@@ -267,12 +267,13 @@ export const userQueryRouter = router({
|
|||||||
const membership = getMembership(verifiedUserData.data.memberships)
|
const membership = getMembership(verifiedUserData.data.memberships)
|
||||||
|
|
||||||
const loggedInUserTrackingData: TrackingSDKUserData = {
|
const loggedInUserTrackingData: TrackingSDKUserData = {
|
||||||
loginStatus: true,
|
loginStatus: "logged in",
|
||||||
loginType: ctx.session.token.loginType as LoginType,
|
loginType: ctx.session.token.loginType as LoginType,
|
||||||
memberId: membership?.membershipNumber,
|
memberId: membership?.membershipNumber,
|
||||||
memberLevel: membership?.membershipLevel,
|
memberLevel: membership?.membershipLevel,
|
||||||
noOfNightsStayed: verifiedPreviousStaysData.data.links?.totalCount ?? 0,
|
noOfNightsStayed: verifiedPreviousStaysData.data.links?.totalCount ?? 0,
|
||||||
totalPointsAvailableToSpend: membership?.currentPoints,
|
totalPointsAvailableToSpend: membership?.currentPoints,
|
||||||
|
loginAction: "login success",
|
||||||
}
|
}
|
||||||
|
|
||||||
return loggedInUserTrackingData
|
return loggedInUserTrackingData
|
||||||
|
|||||||
@@ -25,12 +25,13 @@ export enum LoginTypeEnum {
|
|||||||
export type LoginType = keyof typeof LoginTypeEnum
|
export type LoginType = keyof typeof LoginTypeEnum
|
||||||
|
|
||||||
export type TrackingSDKUserData = {
|
export type TrackingSDKUserData = {
|
||||||
loginStatus: boolean
|
loginStatus: "logged in" | "Non-logged in"
|
||||||
loginType?: LoginType
|
loginType?: LoginType
|
||||||
memberId?: string
|
memberId?: string
|
||||||
memberLevel?: MembershipLevel
|
memberLevel?: MembershipLevel
|
||||||
noOfNightsStayed?: number
|
noOfNightsStayed?: number
|
||||||
totalPointsAvailableToSpend?: number
|
totalPointsAvailableToSpend?: number
|
||||||
|
loginAction?: "login success"
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TrackingSDKProps = {
|
export type TrackingSDKProps = {
|
||||||
|
|||||||
Reference in New Issue
Block a user