// Adobe Launch Embed code has been implemented via Branding Center
/*** Init Functions ***/ // Increment version following any update applied on Prod (SEMVER) var versionEDDL = "1.0.0" // Array of tracked pages in RF var trackedPages = [ "all-tracks", "americasregionpage", "AmericasRegionPagePreKeynote", "AmericasShowAllSpeakerGallery", "asiapacificregionpage", "AsiaPacificRegionPagePreKeynote", "AsiaPacificShowAllSpeakerGallery", "calendar", "DashboardPreKeynote", "discovermore", "discovermoreprekeynote", "emearegionpage", "EMEARegionPagePreKeynote", "EMEAShowAllSpeakerGallery", "home", "HomePreKeynote", "instructions", "June2homepage", "June2Dashbaord", "SessionCatalog", "sessions", "sessionsprekeynote", "ShowAllFeaturedinMyRegionAmericas", "ShowAllFeaturedinMyRegionAsiaPacific", "ShowAllFeaturedinMyRegionEMEA", "ShowAllRecommendedSessions", "ShowAllSAPrunsSAP", "sponsors", "sponsorsprekeynote", "track-customer-experience", "track-finance", "track-hr", "track-industries", "track-it", "track-midmarket", "track-procurement", "track-supply-chain", "btp", "cx", "erp", "hxm", "isbn", "scm", "se", "ind", "bos", "catalog", "overview", "channels", "networking", "mycalendar", "live", ]; // Prime the datalayer window.adobeDataLayer = window.adobeDataLayer || []; window.uniqueTimeStamp = Date.now(); // Global values for use in helper functions var trimTimestamp = uniqueTimeStamp.toString().substr(-10); var trimAttendeeId = data.attendee && data.attendee.attendeeId.substr(-10); // Global EDDL init logic for all pages if (trackedPages.includes(data.page)) { initGlobalEDDL(); setPageView(); beaconPageView() } else if (data.page === "welcome") { initGlobalEDDL(); setPageView(); beaconPageView() } else if (data.page === "dashboard") { initGlobalEDDL(); setPageView(); beaconPageView() } else if (data.page === "regquestions" || data.page === 'unsubscribe' || data.page === "contactInfo") { initGlobalEDDL(); setPageView(); setFormView('RF_G_2023_08_PME_EV_TECHED2023'); beaconPageView() } else if (data.page === "MyProfile") { initGlobalEDDL(); setPageView(); setFormView('RF_G_2023_08_PME_EV_TECHEDUPD2023'); beaconPageView() } else if (data.page === "profileconfirm") { initGlobalEDDL(); setPageView(); setFormSubmit( 'RF_G_2023_08_PME_EV_TECHEDUPD2023', 'S-1649707982616001L21R-' + data.attendee.attendeeId ); beaconPageView() } else if (data.page === "confirm") { initGlobalEDDL(); setPageView(); setFormSubmit( 'RF_G_2023_08_PME_EV_TECHED2023', 'S-1649707982616001L21R-' + data.attendee.attendeeId ); // SMC Interaction event? beaconPageView() } else if (data.page === "idslogin") { initGlobalEDDL(); setPageView(); setFormView('RF_G_2023_02_PME_EV_SAPP_VIRTUPD'); beaconPageView() } else if (data.page === "order" || data.page === 'restrictedaccess' || data.page === 'cannotaccessregistration' || data.page === 'catalog' || data.page === 'overview' || data.page === 'appdev' || data.page === 'ai' || data.page === 'dataandanalytics' || data.page === 'digitaltransformationclouderp' || data.page === 'integration' || data.page === 'sapbtp') { initGlobalEDDL(); setPageView(); beaconPageView(); } else if (data.page === "Confirm") { initGlobalEDDL(); setPageView(); setFormSubmit( 'RF_G_2023_08_PME_EV_TECHED2023', "S-1649707982616001L21R-" + data.attendee.attendeeId ); setSMCInteraction( 'S-1649707982616001L21R-' + data.attendee.attendeeId, 'CRM-YE23-TED-2084187_03', ["No Item of Interest Value"], ); beaconPageView(); } else if ( data.app && data.app === "widgets" && data.page.match(/^(\d)+[a-zA-Z]+/g) ) { var detail = document.querySelector( ".exhibitor-title h1, .catalog-result-title-text .title-text" ); initGlobalEDDL(event.name); setPageView(detail); beaconPageView() } /*** Helper Functions ***/ // Init Global Data Layer properties function initGlobalEDDL() { var globalProps = { event: "globalDL", site: { name: "events", event: data.event.name, country: data.attendee.countryId && data.attendee.countryId.toLowerCase(), }, user: getUser(), eddl: { version: versionEDDL } }; window.adobeDataLayer.push(globalProps); } // Helper function to create a page view event function setPageView(detail) { var detail = detail || ""; var pageView = { event: "pageView", page: { name: document.location.pathname, detail: detail, section: "sanow", language: navigator.language.substring(0,2), country: data.attendee.countryId && data.attendee.countryId.toLowerCase(), URL: window.location.href, }, }; window.adobeDataLayer.push(pageView); } // Helper function to set the user function getUser() { return { loginStatus: getLoginStatus(), } }; //Helper function to push any Form Views function setFormView(formName) { var formView = { event: "formView", form: { uniqueID: trimAttendeeId + trimTimestamp, name: formName, }, }; window.adobeDataLayer.push(formView); } //Helper function to push any Form Submissions function setFormSubmit(formName, transactionId) { var formSubmit = { event: "formSubmit", form: { uniqueID: trimAttendeeId + trimTimestamp, name: formName, referrer: document.referrer, relationship: getSAPRelationshipAdobeAC(), transactionID: transactionId, }, }; window.adobeDataLayer.push(formSubmit); } // Helper function to push any event listener calls, e.g Exhibitor form submitted function setEvent(eventName) { var eventData = { event: eventName, user: getUser(), }; window.adobeDataLayer.push(eventData); } // Helper function to set the SMC interactive values function setSMCInteraction( id, type, interests, ) { var SMCdata = { event: "smcInteraction", smcInteraction: { ID: id, type: type, interests: interests, reason: "SAP_EVENT" }, }; window.adobeDataLayer.push(SMCdata); } // Helper function get login status function getLoginStatus(attendee) { var loginStatus = "no"; if ( (window.initialState && window.initialState.isAttendeeLoggedIn) || (attendee && attendee.attendeeId) ) { loginStatus = "yes"; } return loginStatus; } // Helper function to determine relationship to SAP function getSAPRelationshipAdobeAC(attendee) { switch (data.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; } } // Helper function to send beacon call to Track Page View function beaconPageView() { window.adobeDataLayer.push({ event: "stBeaconReady", }); } // Helper function to send beacon call as Non-Tracked Page View function beaconNonPageView() { window.adobeDataLayer.push({ event: "stlBeaconReady", }); }