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 */}
|
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
|
||||||
<Script id="ensure-adobeDataLayer">{`
|
<Script id="ensure-adobeDataLayer">{`
|
||||||
window.adobeDataLayer = window.adobeDataLayer || []
|
window.adobeDataLayer = window.adobeDataLayer || []
|
||||||
|
window.dataLayer = window.dataLayer || []
|
||||||
`}</Script>
|
`}</Script>
|
||||||
</head>
|
</head>
|
||||||
<body className="scandic">
|
<body className="scandic">
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ export default async function RootLayout({
|
|||||||
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
|
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
|
||||||
<Script id="ensure-adobeDataLayer">{`
|
<Script id="ensure-adobeDataLayer">{`
|
||||||
window.adobeDataLayer = window.adobeDataLayer || []
|
window.adobeDataLayer = window.adobeDataLayer || []
|
||||||
|
window.dataLayer = window.dataLayer || []
|
||||||
`}</Script>
|
`}</Script>
|
||||||
</head>
|
</head>
|
||||||
<body className="scandic">
|
<body className="scandic">
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ export default async function RootLayout({
|
|||||||
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
|
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}
|
||||||
<Script id="ensure-adobeDataLayer">{`
|
<Script id="ensure-adobeDataLayer">{`
|
||||||
window.adobeDataLayer = window.adobeDataLayer || []
|
window.adobeDataLayer = window.adobeDataLayer || []
|
||||||
|
window.dataLayer = window.dataLayer || []
|
||||||
`}</Script>
|
`}</Script>
|
||||||
</head>
|
</head>
|
||||||
<body className={`scandic ${styles.layout}`}>
|
<body className={`scandic ${styles.layout}`}>
|
||||||
|
|||||||
@@ -94,11 +94,11 @@ export default function Tracking({ pageData }: TrackingProps) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (window.datalayer) {
|
if (window.dataLayer) {
|
||||||
const trackingData = { ...pageData, pathName, queryString }
|
const trackingData = { ...pageData, pathName, queryString }
|
||||||
const pageObject = createPageObject(trackingData)
|
const pageObject = createPageObject(trackingData)
|
||||||
|
|
||||||
window.datalayer.page = pageObject
|
window.dataLayer.page = pageObject
|
||||||
}
|
}
|
||||||
}, [pathName, queryString, pageData])
|
}, [pathName, queryString, pageData])
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default function GTMScript() {
|
|||||||
data-cookieconsent="statistics"
|
data-cookieconsent="statistics"
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
__html: `
|
__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
|
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 {
|
interface Window {
|
||||||
datalayer: { [key: string]: any }
|
dataLayer: {
|
||||||
|
[key: string]: any
|
||||||
|
push: (...args: unknown) => void
|
||||||
|
}
|
||||||
adobeDataLayer: {
|
adobeDataLayer: {
|
||||||
push: (...args: unknown) => void
|
push: (...args: unknown) => void
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
import { SESSION_ID_KEY_NAME } from "@/hooks/useSessionId"
|
import { SESSION_ID_KEY_NAME } from "@/hooks/useSessionId"
|
||||||
|
|
||||||
export function trackEvent(data: any) {
|
export function trackEvent(data: any) {
|
||||||
if (typeof window !== "undefined" && window.adobeDataLayer) {
|
if (
|
||||||
|
typeof window !== "undefined" &&
|
||||||
|
window.adobeDataLayer &&
|
||||||
|
window.dataLayer
|
||||||
|
) {
|
||||||
let sessionId = ""
|
let sessionId = ""
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -13,6 +17,7 @@ export function trackEvent(data: any) {
|
|||||||
data = { ...data, siteVersion: "new-web", sessionId }
|
data = { ...data, siteVersion: "new-web", sessionId }
|
||||||
|
|
||||||
window.adobeDataLayer.push(data)
|
window.adobeDataLayer.push(data)
|
||||||
|
window.dataLayer.push(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user