Files
web/utils/tracking.ts
Linus Flood 54f094af86 Tracking WIP
2024-09-27 08:46:12 +02:00

56 lines
1.4 KiB
TypeScript

import { TrackingPosition, TrackingSDKData } from "@/types/components/tracking"
export function trackClick(name: string) {
if (typeof window !== "undefined" && window.adobeDataLayer) {
console.log("TRACKING: Tracking click", name)
window.adobeDataLayer.push({
event: "linkClick",
cta: {
name,
},
})
}
}
export function trackPageViewStart() {
if (typeof window !== "undefined" && window.adobeDataLayer) {
console.log("TRACKING: Tracking pageViewStart")
window.adobeDataLayer.push({
event: "pageViewStart",
})
}
}
export function trackLoginClick(position: TrackingPosition) {
if (typeof window !== "undefined" && window.adobeDataLayer) {
console.log("TRACKING: Tracking loginStart, position", position)
const loginEvent = {
event: "loginStart",
login: {
position,
action: "login start",
ctaName: "login",
},
}
window.adobeDataLayer.push(loginEvent)
}
}
export function createSDKPageObject(
trackingData: TrackingSDKData
): TrackingSDKData {
const [lang, ...segments] = trackingData.pathName
.split("/")
.filter((seg: string) => seg)
const joinedSegments = segments.join("|")
return {
...trackingData,
domain: window.location.host,
pageName: trackingData.pageName ?? joinedSegments,
siteSections: trackingData.siteSections ?? joinedSegments,
domainLanguage: trackingData.domainLanguage ?? lang,
}
}