diff --git a/app/[lang]/(live-current)/current-content-page/page.tsx b/app/[lang]/(live-current)/current-content-page/page.tsx index e014119e5..aed056925 100644 --- a/app/[lang]/(live-current)/current-content-page/page.tsx +++ b/app/[lang]/(live-current)/current-content-page/page.tsx @@ -2,6 +2,7 @@ import { notFound } from "next/navigation" import { request } from "@/lib/request" import { GetCurrentBlockPage } from "@/lib/graphql/Query/CurrentBlockPage.graphql" +import { GetCurrentBlockPageTrackingData } from "@/lib/graphql/Query/CurrentBlockPageTrackingData.graphql" import ContentPage from "@/components/Current/ContentPage" import Header from "@/components/Current/Header" @@ -9,6 +10,7 @@ import Tracking from "@/components/Current/Tracking" import type { PageArgs, LangParams, UriParams } from "@/types/params" import type { GetCurrentBlockPageData } from "@/types/requests/currentBlockPage" +import { TrackingData } from "@/types/requests/trackingData" export default async function CurrentContentPage({ params, @@ -26,7 +28,7 @@ export default async function CurrentContentPage({ url: searchParams.uri, }, { - tags: [`${searchParams.uri}-${params.lang}`] + tags: [`${searchParams.uri}-${params.lang}`], } ) @@ -36,11 +38,24 @@ export default async function CurrentContentPage({ console.log("SearchParams URI: ", searchParams.uri) throw new Error("Not found") } + + // This is currently to be considered a temporary solution to provide the tracking with a few values in english to align with existing reports + const pageDataForTracking = await request( + GetCurrentBlockPageTrackingData, + { uid: response.data.all_current_blocks_page.items[0].system.uid }, + { + tags: [`${searchParams.uri}-en`], + } + ) + const pageData = response.data.all_current_blocks_page.items[0] + const trackingData = { + lang: params.lang, publishedDate: pageData.system.updated_at, createdDate: pageData.system.created_at, pageId: pageData.system.uid, + englishUrl: pageDataForTracking.data?.current_blocks_page.url, } return ( diff --git a/components/Current/Tracking.tsx b/components/Current/Tracking.tsx index 446663fb5..b3efbe123 100644 --- a/components/Current/Tracking.tsx +++ b/components/Current/Tracking.tsx @@ -9,9 +9,13 @@ import { usePathname, useSearchParams } from "next/navigation" import { useEffect, useState } from "react" function createPageObject(trackingData: TrackingData) { + const englishSegments = trackingData.englishUrl + ? trackingData.englishUrl.split("/").filter((seg?: string) => seg) + : null + const [lang, ...segments] = trackingData.pathName .split("/") - .filter((v: string) => v) + .filter((seg: string) => seg) function getSiteSections(segments: string[]): SiteSectionObject { /* @@ -39,10 +43,12 @@ function createPageObject(trackingData: TrackingData) { } return sitesections } - const sitesections = getSiteSections(segments) + const sitesections = englishSegments + ? getSiteSections(englishSegments) + : getSiteSections(segments) const { host: domain, href: fullurl, origin } = window.location const page_obj = { - pagename: segments.join("|"), + pagename: englishSegments ? englishSegments.join("|") : segments.join("|"), pagetype: "contentpage", pageurl: origin + trackingData.pathName, fullurl, @@ -53,7 +59,7 @@ function createPageObject(trackingData: TrackingData) { querystring: trackingData.queryString || "", pageid: trackingData.pageId, // sessionid: "", // base on what? - domainlanguage: lang, + domainlanguage: trackingData.lang ? trackingData.lang : lang, hotelbrand: "scandic", siteversion: "new-web", ...sitesections, diff --git a/lib/graphql/Query/CurrentBlockPageTrackingData.graphql b/lib/graphql/Query/CurrentBlockPageTrackingData.graphql new file mode 100644 index 000000000..d27eb15d3 --- /dev/null +++ b/lib/graphql/Query/CurrentBlockPageTrackingData.graphql @@ -0,0 +1,5 @@ +query GetCurrentBlockPageTrackingData($uid: String!) { + current_blocks_page(uid: $uid, locale: "en") { + url + } +} diff --git a/types/components/tracking.ts b/types/components/tracking.ts index 8c2f3ccbd..26f95dcbe 100644 --- a/types/components/tracking.ts +++ b/types/components/tracking.ts @@ -1,12 +1,18 @@ +import { Lang } from "../lang" + export type TrackingProps = { pageData: { pageId: string createdDate: string publishedDate: string + englishUrl?: string + lang: Lang } } export type TrackingData = { + lang: Lang + englishUrl?: string pathName: string queryString: string pageId: string diff --git a/types/requests/trackingData.ts b/types/requests/trackingData.ts new file mode 100644 index 000000000..74d000ceb --- /dev/null +++ b/types/requests/trackingData.ts @@ -0,0 +1,3 @@ +export type TrackingData = { + current_blocks_page: { url: string; title: string } +}