Merged in hotfix/gtm (pull request #2070)
Hotfix/gtm * hotfix: gtm * wip Approved-by: Joakim Jäderberg
This commit is contained in:
@@ -55,6 +55,7 @@ export default async function RootLayout({
|
||||
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
|
||||
<Script id="ensure-adobeDataLayer">{`
|
||||
window.adobeDataLayer = window.adobeDataLayer || []
|
||||
window.dataLayer = window.dataLayer || []
|
||||
`}</Script>
|
||||
</head>
|
||||
<body className="scandic">
|
||||
|
||||
@@ -46,6 +46,7 @@ export default async function RootLayout({
|
||||
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
|
||||
<Script id="ensure-adobeDataLayer">{`
|
||||
window.adobeDataLayer = window.adobeDataLayer || []
|
||||
window.dataLayer = window.dataLayer || []
|
||||
`}</Script>
|
||||
</head>
|
||||
<body className="scandic">
|
||||
|
||||
@@ -41,6 +41,7 @@ export default async function RootLayout({
|
||||
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
|
||||
<Script id="ensure-adobeDataLayer">{`
|
||||
window.adobeDataLayer = window.adobeDataLayer || []
|
||||
window.dataLayer = window.dataLayer || []
|
||||
`}</Script>
|
||||
</head>
|
||||
<body className={`scandic ${styles.layout}`}>
|
||||
|
||||
@@ -94,11 +94,11 @@ export default function Tracking({ pageData }: TrackingProps) {
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (window.datalayer) {
|
||||
if (window.dataLayer) {
|
||||
const trackingData = { ...pageData, pathName, queryString }
|
||||
const pageObject = createPageObject(trackingData)
|
||||
|
||||
window.datalayer.page = pageObject
|
||||
window.dataLayer.page = pageObject
|
||||
}
|
||||
}, [pathName, queryString, pageData])
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ export default function GTMScript() {
|
||||
data-cookieconsent="statistics"
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://analytics.scandichotels.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','adobeDataLayer','GTM-KNJCW67W');
|
||||
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://analytics.scandichotels.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KNJCW67W');
|
||||
`,
|
||||
}}
|
||||
async
|
||||
|
||||
5
apps/scandic-web/types/window.d.ts
vendored
5
apps/scandic-web/types/window.d.ts
vendored
@@ -1,5 +1,8 @@
|
||||
interface Window {
|
||||
datalayer: { [key: string]: any }
|
||||
dataLayer: {
|
||||
[key: string]: any
|
||||
push: (...args: unknown) => void
|
||||
}
|
||||
adobeDataLayer: {
|
||||
push: (...args: unknown) => void
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import { SESSION_ID_KEY_NAME } from "@/hooks/useSessionId"
|
||||
|
||||
export function trackEvent(data: any) {
|
||||
if (typeof window !== "undefined" && window.adobeDataLayer) {
|
||||
if (
|
||||
typeof window !== "undefined" &&
|
||||
window.adobeDataLayer &&
|
||||
window.dataLayer
|
||||
) {
|
||||
let sessionId = ""
|
||||
|
||||
try {
|
||||
@@ -13,6 +17,7 @@ export function trackEvent(data: any) {
|
||||
data = { ...data, siteVersion: "new-web", sessionId }
|
||||
|
||||
window.adobeDataLayer.push(data)
|
||||
window.dataLayer.push(data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user