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');
// },
// });
// }