window.uniqueTimeStamp = Date.now();
/** * options: { * enableLogs: Boolean, * intervalFrequency: Number, * logIdentifier: String, * maxIterations: Number, * onSuccess: () => void,f * onTimeout: () => void, * successCheck: () => Boolean, * } */ function waitForX(options) { var log = function log() { if (options.enableLogs) console.log.apply(console, arguments) } var logSuffix = options.logIdentifier ? ' -- [' + options.logIdentifier + ']' : '' var intervalFrequency = options.intervalFrequency || 100 var maxIterations = options.maxIterations || 100 // Do 1 immediate check before the interval starts. if (options.successCheck()) { log('SUCCESS (immediate), no interval needed' + logSuffix) options.onSuccess() return; } log('every ' + intervalFrequency + 'ms, for ' + intervalFrequency * maxIterations + 'ms' + logSuffix) var iterations = 0 var waitTimer = window.setInterval(function () { if (options.successCheck.apply(options)) { log('SUCCESS, waited: ' + ((iterations + 1) * intervalFrequency) + 'ms (' + (iterations + 1) + ' iterations)' + logSuffix) options.onSuccess.apply(options) window.clearInterval(waitTimer); log('cleared interval' + logSuffix) } if (iterations >= maxIterations) { log('TIMED OUT' + logSuffix) // Safety net to ensure this interval won't run forever. window.clearInterval(waitTimer) log('cleared interval' + logSuffix) if (options.onTimeout) { options.onTimeout.apply(options) } } iterations++ }, options.intervalFrequency) } function getDefaultPayloadAdobeAC(attendee) { var payload = { events: { pageView: true, }, page: { detail: "", language: navigator.language, name: document.location.pathname, referrer: getReferrerAdobeAC(), section: "sapteched2022", url: document.location.href, }, user: { loginStatus: getLoginStatusAdobeAC(attendee), }, form: {}, SMC: {}, }; return payload; } function getReferrerAdobeAC() { var referrer = document.referrer; if ( referrer === "https://accounts.sap.com/" || referrer === "https://accounts400.sap.com/" ) { referrer = window.localStorage.getItem("referrerUrl"); } if (typeof Storage !== "undefined") { localStorage.setItem("referrerUrl", document.location.href); } return referrer; } function getLoginStatusAdobeAC(attendee) { var loginStatus = "logN"; if ( (window.initialState && window.initialState.isAttendeeLoggedIn) || (attendee && attendee.attendeeId) ) { loginStatus = "logY"; } return loginStatus; } function getSAPRelationshipAdobeAC(attendee) { switch (attendee.relationshipToSAP) { case "Customer": return 01; case "Prospective Customer": return 02; case "Partner": return 03; case "Prospective Partner": return 04; case "Consultant": return 05; case "Press/Analyst": return 06; case "Investor/Shareholder": return 07; case "Student": return 08; case "SAP Employee": return 09; case "Competitor": return 10; } } function runTrackDataAdobeAC(payload) { if (window._trackData) { console.log("adobeDataLayerPayload", payload); window._trackData(payload); } else { console.warn("*** _trackData is not defined ***"); } }
var basicPagesAdobeAC = []; var attendeeAdobeAC = data.attendee || {}; var pathArray = window.location.pathname.split('/'); var urlValue = pathArray[8]+ "/"+pathArray[9]; if (basicPagesAdobeAC.indexOf(data.page) !== -1) { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); runTrackDataAdobeAC(payload); } else if (data.page === "welcome") { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); runTrackDataAdobeAC(payload); } else if (data.page === "dashboard") { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); payload.user.loginStatus = "logY"; runTrackDataAdobeAC(payload); window.localStorage.removeItem("referrerUrl"); } else if (data.page === "regquestions") { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); var trimTimestamp = uniqueTimeStamp.toString().substr(-10); var trimAttendeeId = attendeeAdobeAC.attendeeId.substr(-10); payload.user.loginStatus = "logY"; payload.events.formView = true; payload.events.formSubmit = false; payload.events.SMCInteraction = false; payload.form.uniqueID = trimAttendeeId + trimTimestamp; console.log("Unique ID - Reg Question:", trimTimestamp + trimAttendeeId); payload.form.name = "RF_G_2022_10_PME_EV_TECHED2022"; runTrackDataAdobeAC(payload); } else if (urlValue === "inperson/order") { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); payload.user.loginStatus = "logY"; payload.events.formView = false; payload.events.formSubmit = false; payload.events.SMCInteraction = false; runTrackDataAdobeAC(payload); } else if (data.page === "physicalconfirmation") { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); var trimTimestamp = uniqueTimeStamp.toString().substr(-10); var trimAttendeeId = attendeeAdobeAC.attendeeId.substr(-10); payload.user.loginStatus = "logY"; payload.events.formView = false; payload.events.formSubmit = true; payload.events.pageView = true; payload.events.SMCInteraction = true; payload.form.uniqueID = trimAttendeeId + trimTimestamp; console.log("Unique ID - Confirm:", trimTimestamp + trimAttendeeId); payload.form.name = "RF_G_2022_10_PME_EV_TECHED2022"; payload.form.transactionID = "S-1662063275616001alX1-" + attendeeAdobeAC.attendeeId; payload.form.relationship = getSAPRelationshipAdobeAC(attendeeAdobeAC); payload.form.optinStatus = attendeeAdobeAC.marketingConsentSubscriptions && attendeeAdobeAC.marketingConsentSubscriptions.toLowerCase(); payload.form.country = attendeeAdobeAC.countryId && attendeeAdobeAC.countryId.toLowerCase(); if (attendeeAdobeAC.registrantType === 'Virtual') { payload.SMC.interactionType = "YY_ONLINE_EVENT_REG"; } else if (attendeeAdobeAC.registrantType === 'Full') { payload.SMC.interactionType = "YY_EVENT_REG"; } payload.SMC.itemsOfInterest = ["No Item of Interest Value"]; payload.SMC.interactionReason = "SAP_EVENT"; payload.SMC.interactionID = "S-1662063275616001alX1-" + attendeeAdobeAC.attendeeId; runTrackDataAdobeAC(payload); var remainingID = ["1662112920865001qHxS","16620650982700012AYL","1662112871918001qncK","1662126452442001s36m","1663089877969001TqmD"]; for (var i = 0; i < remainingID.length; i++) { var payload2 = getDefaultPayloadAdobeAC(attendeeAdobeAC); payload2.user.loginStatus = "logY"; payload2.events.pageView = false; payload2.events.formView = false; payload2.events.formSubmit = false; payload2.events.SMCInteraction = true; payload2.form.transactionID = ""; if (attendeeAdobeAC.registrantType === 'Virtual') { payload2.SMC.interactionType = "YY_ONLINE_EVENT_REG"; } else if (attendeeAdobeAC.registrantType === 'Full') { payload2.SMC.interactionType = "YY_EVENT_REG"; } payload2.SMC.itemsOfInterest = ["No Item of Interest Value"]; payload2.SMC.interactionReason = "SAP_EVENT"; payload2.SMC.interactionID = "S-" + remainingID[i] + "-" + attendeeAdobeAC.attendeeId; runTrackDataAdobeAC(payload2) } } else if (data.page === "Confirm") { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); var trimTimestamp = uniqueTimeStamp.toString().substr(-10); var trimAttendeeId = attendeeAdobeAC.attendeeId.substr(-10); payload.user.loginStatus = "logY"; payload.events.formView = false; payload.events.formSubmit = true; payload.events.pageView = true; payload.events.SMCInteraction = true; payload.form.uniqueID = trimAttendeeId + trimTimestamp; console.log("Unique ID - Confirm:", trimTimestamp + trimAttendeeId); payload.form.name = "RF_G_2022_10_PME_EV_TECHED2022"; payload.form.transactionID = "S-1662063275616001alX1-" + attendeeAdobeAC.attendeeId; payload.form.relationship = getSAPRelationshipAdobeAC(attendeeAdobeAC); payload.form.optinStatus = attendeeAdobeAC.marketingConsentSubscriptions && attendeeAdobeAC.marketingConsentSubscriptions.toLowerCase(); payload.form.country = attendeeAdobeAC.countryId && attendeeAdobeAC.countryId.toLowerCase(); if (attendeeAdobeAC.registrantType === 'Virtual') { payload.SMC.interactionType = "YY_ONLINE_EVENT_REG"; } else if (attendeeAdobeAC.registrantType === 'Full') { payload.SMC.interactionType = "YY_EVENT_REG"; } payload.SMC.itemsOfInterest = ["No Item of Interest Value"]; payload.SMC.interactionReason = "SAP_EVENT"; payload.SMC.interactionID = "S-1662063275616001alX1-" + attendeeAdobeAC.attendeeId; runTrackDataAdobeAC(payload); var remainingID = ["1663089877969001TqmD","16620650982700012AYL"]; for (var i = 0; i < remainingID.length; i++) { var payload2 = getDefaultPayloadAdobeAC(attendeeAdobeAC); payload2.user.loginStatus = "logY"; payload2.events.pageView = false; payload2.events.formView = false; payload2.events.formSubmit = false; payload2.events.SMCInteraction = true; payload2.form.transactionID = ""; if (attendeeAdobeAC.registrantType === 'Virtual') { payload2.SMC.interactionType = "YY_ONLINE_EVENT_REG"; } else if (attendeeAdobeAC.registrantType === 'Full') { payload2.SMC.interactionType = "YY_EVENT_REG"; } payload2.SMC.itemsOfInterest = ["No Item of Interest Value"]; payload2.SMC.interactionReason = "SAP_EVENT"; payload2.SMC.interactionID = "S-" + remainingID[i] + "-" + attendeeAdobeAC.attendeeId; runTrackDataAdobeAC(payload2) } } else if (data.page === "profile" || data.page === "addon" || data.page === "contactInfo" || data.page === "registrationtest") { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); payload.user.loginStatus = "logY"; payload.events.formView = false; payload.events.formSubmit = false; payload.events.SMCInteraction = false; runTrackDataAdobeAC(payload); } else if (data.page === "unsubscribe") { var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); var trimTimestamp = uniqueTimeStamp.toString().substr(-10); var trimAttendeeId = attendeeAdobeAC.attendeeId.substr(-10); payload.user.loginStatus = "logY"; payload.events.formView = true; payload.events.formSubmit = false; payload.events.SMCInteraction = false; payload.form.uniqueID = trimAttendeeId + trimTimestamp; console.log("Unique ID - Profile:", trimTimestamp + trimAttendeeId); payload.form.name = "RF_G_2022_10_PME_EV_TECHED2022"; runTrackDataAdobeAC(payload); } // else if ( // data.app && // data.app === "widgets" && // data.page.match(/^(\d)+[a-zA-Z]+/g) // ) { // var payload = getDefaultPayloadAdobeAC(attendeeAdobeAC); // waitForX({ // enableLogs: false, // intervalFrequency: 250, // maxIterations: 60, // onSuccess: () => { // var titleEl = document.querySelector('.exhibitor-title h1, .catalog-result-title-text .title-text'); // if (titleEl) // payload.page.detail = titleEl.innerText; // runTrackDataAdobeAC(payload); // }, // onTimeout: () => { // runTrackDataAdobeAC(payload); // }, // successCheck: () => { // return document.querySelector('.exhibitor-title h1, .catalog-result-title-text .title-text'); // }, // }); // }