Tracking WIP

This commit is contained in:
Linus Flood
2024-09-27 08:46:12 +02:00
parent 27159d739f
commit 54f094af86
19 changed files with 199 additions and 74 deletions

View File

@@ -2,6 +2,7 @@ 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: {
@@ -13,6 +14,7 @@ export function trackClick(name: string) {
export function trackPageViewStart() {
if (typeof window !== "undefined" && window.adobeDataLayer) {
console.log("TRACKING: Tracking pageViewStart")
window.adobeDataLayer.push({
event: "pageViewStart",
})
@@ -21,6 +23,7 @@ export function trackPageViewStart() {
export function trackLoginClick(position: TrackingPosition) {
if (typeof window !== "undefined" && window.adobeDataLayer) {
console.log("TRACKING: Tracking loginStart, position", position)
const loginEvent = {
event: "loginStart",
login: {
@@ -33,26 +36,20 @@ export function trackLoginClick(position: TrackingPosition) {
}
}
export function createSDKPageObject(trackingData: TrackingSDKData) {
export function createSDKPageObject(
trackingData: TrackingSDKData
): TrackingSDKData {
const [lang, ...segments] = trackingData.pathName
.split("/")
.filter((seg: string) => seg)
const joinedSegments = segments.join("|")
const { host: domain } = window.location
const page_obj = {
pageType: trackingData.pageType,
pageName: joinedSegments,
pageId: trackingData.pageId,
channel: trackingData.channel,
siteSection: joinedSegments,
domain,
siteversion: "new-web",
domainlanguage: trackingData.lang ? trackingData.lang : lang,
createDate: trackingData.createdDate,
publishDate: trackingData.publishedDate,
// sessionid: "<unique identifier of session>", // base on what?
return {
...trackingData,
domain: window.location.host,
pageName: trackingData.pageName ?? joinedSegments,
siteSections: trackingData.siteSections ?? joinedSegments,
domainLanguage: trackingData.domainLanguage ?? lang,
}
return page_obj
}