diff --git a/app/[lang]/(live)/layout.tsx b/app/[lang]/(live)/layout.tsx
index 3704178c4..fde914bbe 100644
--- a/app/[lang]/(live)/layout.tsx
+++ b/app/[lang]/(live)/layout.tsx
@@ -7,10 +7,13 @@ import { env } from "@/env/server"
import TrpcProvider from "@/lib/trpc/Provider"
import TokenRefresher from "@/components/Auth/TokenRefresher"
+import CookieBotConsent from "@/components/CookieBot"
import AdobeSDKScript from "@/components/Current/AdobeSDKScript"
+import GTMScript from "@/components/Current/GTMScript"
import VwoScript from "@/components/Current/VwoScript"
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
import { preloadUserTracking } from "@/components/TrackingSDK"
+import RouterTracking from "@/components/TrackingSDK/RouterTracking"
import { getIntl } from "@/i18n"
import ServerIntlProvider from "@/i18n/Provider"
import { setLang } from "@/i18n/serverContext"
@@ -38,6 +41,7 @@ export default async function RootLayout({
+
diff --git a/components/TrackingSDK/Client.tsx b/components/CookieBot/index.tsx
similarity index 58%
rename from components/TrackingSDK/Client.tsx
rename to components/CookieBot/index.tsx
index 9239c9e70..32b9dd0c0 100644
--- a/components/TrackingSDK/Client.tsx
+++ b/components/CookieBot/index.tsx
@@ -1,24 +1,13 @@
"use client"
import { usePathname } from "next/navigation"
-import { useCallback, useEffect, useRef } from "react"
+import { useCallback, useEffect } from "react"
import { webviews } from "@/constants/routes/webviews"
-import useTrackingStore from "@/stores/tracking"
-import { createSDKPageObject } from "@/utils/tracking"
-
-import { TrackingSDKProps } from "@/types/components/tracking"
-
-export default function TrackingSDK({
- pageData,
- userData,
- hotelInfo,
-}: TrackingSDKProps) {
+export default function CookieBot() {
const pathName = usePathname()
const isWebview = webviews.includes(pathName)
- const { hasRun, setHasRun, getPageLoadTime } = useTrackingStore()
- const hasRunLocal = useRef(false)
const CookiebotCallbackOnAccept = useCallback(() => {
const cookie = window._satellite.cookie.get("CookieConsent")
@@ -43,38 +32,6 @@ export default function TrackingSDK({
}
}
- useEffect(() => {
- if (!hasRun && !hasRunLocal.current) {
- hasRunLocal.current = true
- setHasRun()
-
- if (window.adobeDataLayer) {
- const trackingData = {
- ...pageData,
- pathName,
- pageLoadTime: getPageLoadTime(),
- }
-
- const pageObject = createSDKPageObject(trackingData)
- console.log("TRACKING: Tracking pageView", pageObject, userData)
- window.adobeDataLayer.push({
- event: "pageView",
- pageInfo: pageObject,
- userInfo: userData,
- hotelInfo: hotelInfo,
- })
- }
- }
- }, [
- pathName,
- pageData,
- userData,
- hasRun,
- setHasRun,
- hotelInfo,
- getPageLoadTime,
- ])
-
useEffect(() => {
// handle consent
window.addEventListener("CookiebotOnAccept", CookiebotCallbackOnAccept)
diff --git a/components/Current/GTMScript.tsx b/components/Current/GTMScript.tsx
new file mode 100644
index 000000000..3abcc7dfc
--- /dev/null
+++ b/components/Current/GTMScript.tsx
@@ -0,0 +1,21 @@
+export default function GTMScript() {
+ return (
+
+ )
+}
diff --git a/components/TempDesignSystem/Link/index.tsx b/components/TempDesignSystem/Link/index.tsx
index e45d08954..f87724d9d 100644
--- a/components/TempDesignSystem/Link/index.tsx
+++ b/components/TempDesignSystem/Link/index.tsx
@@ -3,10 +3,7 @@ import NextLink from "next/link"
import { usePathname, useRouter } from "next/navigation"
import { startTransition, useCallback } from "react"
-import useRouterTransitionStore from "@/stores/router-transition"
-import useTrackingStore from "@/stores/tracking"
-
-import { trackClick, trackPageViewStart } from "@/utils/tracking"
+import { trackClick } from "@/utils/tracking"
import { linkVariants } from "./variants"
@@ -28,7 +25,6 @@ export default function Link({
...props
}: LinkProps) {
const currentPageSlug = usePathname()
- const { setInitialPageLoadTime } = useTrackingStore()
let isActive = active || currentPageSlug === href
if (partialMatch && !isActive) {
@@ -46,10 +42,6 @@ export default function Link({
const router = useRouter()
- const startRouterTransition = useRouterTransitionStore(
- (state) => state.startRouterTransition
- )
-
const trackClickById = useCallback(() => {
if (trackingId) {
trackClick(trackingId)
@@ -74,10 +66,7 @@ export default function Link({
return
}
e.preventDefault()
- setInitialPageLoadTime(Date.now())
- trackPageViewStart()
startTransition(() => {
- startRouterTransition()
router.push(href, { scroll })
})
}}
diff --git a/components/TrackingSDK/RouterTracking.tsx b/components/TrackingSDK/RouterTracking.tsx
new file mode 100644
index 000000000..d73bfd6ce
--- /dev/null
+++ b/components/TrackingSDK/RouterTracking.tsx
@@ -0,0 +1,27 @@
+"use client"
+
+import { usePathname, useSearchParams } from "next/navigation"
+import { startTransition, useEffect } from "react"
+
+import useRouterTransitionStore from "@/stores/router-transition"
+import useTrackingStore from "@/stores/tracking"
+
+import { trackPageViewStart } from "@/utils/tracking"
+
+export default function RouterTracking({ children }: React.PropsWithChildren) {
+ const pathName = usePathname()
+ const searchParams = useSearchParams()
+ const { setInitialPageLoadTime } = useTrackingStore()
+
+ const { startRouterTransition } = useRouterTransitionStore()
+
+ useEffect(() => {
+ setInitialPageLoadTime(Date.now())
+ trackPageViewStart()
+ startTransition(() => {
+ startRouterTransition()
+ })
+ }, [pathName, searchParams, setInitialPageLoadTime, startRouterTransition])
+
+ return <>{children}>
+}
diff --git a/components/TrackingSDK/RouterTransition.tsx b/components/TrackingSDK/RouterTransition.tsx
index a664e8677..cbece358c 100644
--- a/components/TrackingSDK/RouterTransition.tsx
+++ b/components/TrackingSDK/RouterTransition.tsx
@@ -6,7 +6,7 @@ import { startTransition, useEffect, useOptimistic, useState } from "react"
import useRouterTransitionStore from "@/stores/router-transition"
import useTrackingStore from "@/stores/tracking"
-import { createSDKPageObject, trackPageViewStart } from "@/utils/tracking"
+import { createSDKPageObject } from "@/utils/tracking"
import { TrackingSDKProps } from "@/types/components/tracking"
@@ -32,17 +32,6 @@ export default function RouterTransition({
const pathName = usePathname()
const { isTransitioning, stopRouterTransition } = useRouterTransitionStore()
- // useEffect(() => {
- // const handleStart = () => {
- // trackPageViewStart()
- // setInitialPageLoadTime(Date.now())
- // }
-
- // return () => {
- // handleStart()
- // }
- // }, [pathName])
-
useEffect(() => {
if (isTransitioning && status === TransitionStatusEnum.NotRun) {
startTransition(() => {
diff --git a/components/TrackingSDK/index.tsx b/components/TrackingSDK/index.tsx
index f38c2bd0e..30b8adfa7 100644
--- a/components/TrackingSDK/index.tsx
+++ b/components/TrackingSDK/index.tsx
@@ -2,8 +2,6 @@ import { serverClient } from "@/lib/trpc/server"
import RouterTransition from "@/components/TrackingSDK/RouterTransition"
-import TrackingSDKClient from "./Client"
-
import {
TrackingSDKHotelInfo,
TrackingSDKPageData,
@@ -23,17 +21,10 @@ export default async function TrackingSDK({
const userTrackingData = await serverClient().user.tracking()
return (
- <>
-
-
- >
+
)
}
diff --git a/types/components/tracking.ts b/types/components/tracking.ts
index 7af334623..9e31fe2d9 100644
--- a/types/components/tracking.ts
+++ b/types/components/tracking.ts
@@ -74,6 +74,11 @@ export type TrackingSDKHotelInfo = {
analyticsrateCode?: string // flex, save, change
specialRoomType?: string // allergy room, pet-friendly, accesibillity room
//modifyValues?: string // ,roomtype:value>,bed:
+ country?: string // Country of the hotel
+ region?: string // Region of the hotel
+ discount?: number
+ totalPrice?: number
+ lowestRoomPrice?: number
}
export type TrackingSDKProps = {