(function () { MainFrame = window.MainFrame || {}; MainFrame.Tracker = { // 'tagbleu.net', 'easy-publication.com' disallowedDomains: ['dGFnYmxldS5uZXQ=','a3RhLmludGVyYWN0aXZlbHkuZXU=','ZWFzeS1wdWJsaWNhdGlvbi5jb20=', 'MTkyLjE2OA==', 'cHJlc3RpbWVkaWE='], // the main.xml id of the catalog mainModuleId: 'catalog', trackingType: "events", //events - new tracking | pageviews - for the old tracking useBD: false, //big data config: {}, trackers: [], trackedEvents: [], loadedTrackers: 0, trackersCounter: 0, gaVersion: 'analytics', hasTrackedOpening: false, openingEvents: [], v : '1.0.0', pageViewUrl: "", environ_configuration: { catalogue_url: "", //catalogue_id: "FR-s26-v01-2024",//Catalogue ID FR-s26-v01-2024 catalogue_name: "PS45 - Catalogue de la semaine",//Type of catalogue displayed PS32 - Catalogue rentrée env_work: "prod",//Working environment prod, preprod, dev env_channel: "",//Device category (desktop, tablet, mobile) desktop, mobile, tablet env_language: "fr",//Site Language fr env_country: "fr",//Country fr env_template: "catalogue",//Page Template homepage,product list env_currency: "eur",//Currency Used eur }, catalogue_name: "", page_categories: { "1":"Accueil", "2-3":"Ma maison cosy", "4-5":"Mon shopping déco", "6-7":"Collection LIDA", "8":"Collection DÉTROIT", "9":"Collection KANNA", "10-11":"Ma cuisine cosy", "12":"Ma maison cosy", "13":"Pour les Super-Animaux!", "14-17":"La foire aux plantes", "18-19":"Jardinons!", "20-23":"Aménageons", "24-25":"Illuminons", "26":"Le coin des enfants !", "27":"Tout à moins de... 1€ 2€ 3€", "28":"Jardinons!" }, initializeTracker: function () { var testingServer = this.isTestingServer(); if (testingServer) { MainFrame.Tracker.callTracker = MainFrame.Tracker.callTrackerMockup; } }, //init tracker options init: function (options) { if (options.type == "GUA") { options.type = "GA4"; } this.setDefaultCodes(options); this.gaVersion = options.version ? options.version : this.gaVersion; this.trackers.push(options); this.trackersCounter++; this.loadTrackers(options); }, //setting default available codes setDefaultCodes: function(options) { var trackedEventCodes = options.codes; if (this.trackingType && this.trackingType === "events") { trackedEventCodes = [ 'page_changed',//page changed 'summary_open',//summary open 'summary_close',//summary close 'summary_click',//summary click 'search_open',//search open 'search_close',//search close 'search_click', '810','search_keyword',//search keyword 'diaporama_open',//diaporama open 'diaporama_close',//diaporama close 'diaporama_click',//diaporama click 'download_open',//download open 'download_close',//download close '320','download_click',//download click 'print_open',//print open 'print_close',//print close '310','print_click',//print click 'share_open',//share open 'share_close',//share close 'share_facebook',//share facebook 'share_twitter',//share twitter 'share_linkedin',//share linkedIn 'share_pinterest',//share pinterest 'share_google',//share google+ 'share_whatsapp',//share whatsapp 'share_messenger',//share facebook messenger 'share_sms',//share sms 'share_mail',//share mail 'share_mail_error',//share mail error 'mail_open',//mail open 'mail_close',//mail close 'favorites_open',//mail close 'favorites_close',//mail close 'favorites_add',//mail close 'favorit_delete',//mail close 'notes_open',//notes open 'notes_close',//notes close 'notes_add',//notes add 'notes_delete',//notes delete 'notes_click',//notes click 'index_open',//index open 'index_close',//index close 'index_click',//index click 'bookmarks_add',//bookmarks add 'bookmarks_remove',//bookmarks remove 'bookmarks_open',//bookmarks open 'bookmarks_close',//bookmarks close 'bookmarks_click',//bookmarks add 'access_btn_open',//access_btn open 'access_btn_close',//access_btn close 'access_btn_click',//access_btn click 'fullscreen_open',//fullscreen open 'fullscreen_close',//fullscreen close 'zoom_page',//zoom page 'zoom_zone',//zoom zone 'scrollshop_open',//scrollshop open 'scrollshop_close',//scrollshop close 'scrollshop_filter',//scrollshop 'scrollshop_zoom',//scrollshop zoom '610','product_click',//product click 'product_open',// '620','product_goto',// product goto 'product_facebook',//product facebook 'product_facebook_eshop',//product facebook 'product_pinterest_eshop',//product facebook 'product_google',//product google 'product_pinterest',//product pinterest 'product_twitter',//product twitter 'product_linkedin',//product linkedin 'product_myspace',//product myspace 'product_digg',//product digg 'product_delicious',//product delicious 'product_viadeo',//product viadeo 'product_print',//product print 'product_whatsapp',//product whatsapp 'basket_add',//basket add 'basket_remove',//basket remove 'basket_checkout',//basket checkout 'basket_empty',//basket empty 'cart_open',// 'wishlist_open',//wishlist open 'wishlist_close',//wishlist close 'wishlist_add',//wishlist add 'wishlist_remove',//wishlist remove 'wishlist_empty',//wishlist empty 'wishlist_print',//wishlist print 'wishlist_email',//wishlist email 'wishlist_email_error',//wishlist email error 'button_open',//generic button open 'video_open',//generic video open 'gallery_open',//generic gallery open 'gallery_view',//generic gallery view 'help_open',//help open 'help_close',//help close ]; } else { if (!trackedEventCodes.length) { trackedEventCodes = ['110', '110-120', '210', '230', '250', '260', '310', '320', '410','415','420','430','440','450','460','510-520', '610', '620', '810', '910', '920']; } } options.codes = trackedEventCodes; }, //loading trackers loadTrackers: function (options) { switch (options.type) { case 'Omniture': this.initOmnitureTracker(options.vars); break; case 'XITI': this.initXITITracker(options.vars); break; case 'GA4': this.initGA4(options.vars); break; case 'GTM': this.initGTM(options.vars); break; case 'Piano': this.initPianoTracker(options.vars); break; case 'GA': default: this.initGoogleAnalyticsTracker(options.vars, this.gaVersion); break; } }, initOmnitureTracker: function (data) { for (var name in data) { window[name] = data[name] } this.trackerLoader(window.url) }, initXITITracker: function (data) { for (var name in data) { if(name == 'xtnv' && data[name] == 'document') window[name] = window.document else window[name] = data[name] } if(location.href.indexOf('common/facebook')>=0){ if(window.url.indexOf('http')==-1){ window.url = '../../'+window.url } } this.trackerLoader(window.url) }, initPianoTracker: function (data) { if (this.isMobile()) { this.environ_configuration.env_channel = "mobile"; } else if (this.isTablet()) { this.environ_configuration.env_channel = "tablet"; } else { this.environ_configuration.env_channel = "desktop"; } this.environ_configuration.catalogue_url = window.location.origin + window.location.pathname; /* var catalogue_id = window.location.pathname.split("/"); catalogue_id.splice(0,1); catalogue_id.pop(); this.environ_configuration.catalogue_id = catalogue_id.join("/"); */ var testingServer = this.isTestingServer(); if (testingServer == false) { console.log("Piano:init ", data); /* var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.onload = function(){ for (var i in data) { pa.setConfiguration(i, data[i]); } for (var i in this.environ_configuration) { pa.setConfiguration(i, this.environ_configuration[i]); } var gdpr_consent = JSON.parse(localStorage.getItem('gdpr-cookies-v1')); if (gdpr_consent) { if(gdpr_consent.analytical){ console.log("Piano privacy optin"); pa.privacy.setMode('optin'); } else { console.log("Piano privacy no-consent"); pa.privacy.setMode('no-consent'); } } else { console.log("Piano privacy no-consent"); pa.privacy.setMode('no-consent'); } //pa.privacy.setMode('optin'); //pa.privacy.setMode('no-consent'); //pa.privacy.setMode('advertising'); MainFrame.Tracker.loadedTrackers++ if(MainFrame.Tracker.finishedLoading()){ if(MainFrame.EventHandler){ MainFrame.EventHandler.dispatch('catalogLoadedTrackerInit') } } } script.onerror = function(){ console.log("Error Piano Analitics"); } window._pac = window._pac || {}; //_pac.cookieDomain = '.gifi.fr'; script.src = "https://tag.aticdn.net/piano-analytics.js"; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(script, s); */ window.dataLayer = window.dataLayer || []; MainFrame.Tracker.loadedTrackers++ if(MainFrame.Tracker.finishedLoading()){ if(MainFrame.EventHandler){ MainFrame.EventHandler.dispatch('catalogLoadedTrackerInit') } } } else { console.log("Piano:init ", data); for (var i in this.environ_configuration) { console.log(" "+i+" = ", this.environ_configuration[i]); } /* var gdpr_consent = JSON.parse(localStorage.getItem('gdpr-cookies-v1')); if (gdpr_consent) { if(gdpr_consent.analytical){ console.log("Piano privacy optin"); } else { console.log("Piano privacy no-consent"); } } else { console.log("Piano privacy no-consent"); } */ MainFrame.Tracker.loadedTrackers++; } }, isMobile: function(){var isiPhone=navigator.userAgent.indexOf("iPhone")!=-1;var isiPod=navigator.userAgent.indexOf("iPod")!=-1;var isBlackBerry=navigator.userAgent.indexOf("BlackBerry")!=-1;var isAndroid=navigator.userAgent.indexOf("Android")!=-1;var isiPad=navigator.userAgent.indexOf("iPad")!=-1;var isKindleFire=navigator.userAgent.indexOf("Silk")!=-1;if(navigator.platform==='MacIntel'&&navigator.maxTouchPoints>1){isiPad=true;};var isWindowsPhoneInDesktopMode=(navigator.userAgent.match('Windows')&&navigator.userAgent.match('Touch')&&navigator.userAgent.match('ARM')&&navigator.userAgent.match('WPDesktop'));var isWindowsMobile=(navigator.userAgent.match(/IEMobile/i)||isWindowsPhoneInDesktopMode);var isMobile=(isiPhone||isiPod||isiPad||isBlackBerry||isAndroid||isKindleFire||isWindowsMobile)?true:false;return isMobile}, isTablet: function (){var isTablet = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(navigator. userAgent.toLowerCase());return isTablet}, initGoogleAnalyticsTracker: function (data, version) { switch (version) { case 'analytics': this.initGoogleAnalyticsTracker_analytics(data); break; case 'ga.js': // falltrough default: this.initGoogleAnalyticsTracker_gajs(data); break; } }, initGoogleAnalyticsTracker_analytics: function (data) { this.trackerLoader(('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/analytics.js'); var r = 'ga', i = window; i['GoogleAnalyticsObject']=r; i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments) },i[r].l=1*new Date(); console.log("GA:init "+data['_setAccount']); if (data['_setAccountId']) { ga('create', data['_setAccount'], 'auto', data['_setAccountId']); } else { ga('create', data['_setAccount'], 'auto'); } }, initGoogleAnalyticsTracker_gajs: function (data) { this.trackerLoader(('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'); window._gaq = window._gaq || []; for (var name in data) { window._gaq.push([name, data[name]]); } }, initGA4: function (data) { if (data.id) { window.dataLayer = window.dataLayer || []; window.gtag = function(){ window.dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', data.id, { 'send_page_view': false }); var testingServer = this.isTestingServer(); if (testingServer == false) { var gtmUrl = "https://www.googletagmanager.com/gtag/js?id="+data.id; this.trackerLoader(gtmUrl); } else { console.log("GA4:init "+data.id); MainFrame.Tracker.loadedTrackers++; } } }, initGTM: function (data) { if (data.id) { window.dataLayer = window.dataLayer || []; window.dataLayer.push({'gtm.start': new Date().getTime(), event:'gtm.js'}) var testingServer = this.isTestingServer(); if (testingServer == false) { var gtmUrl = "https://www.googletagmanager.com/gtm.js?id="+data.id;//+"&l=dataLayer"; this.trackerLoader(gtmUrl); } else { console.log("GTM:init "+data.id); MainFrame.Tracker.loadedTrackers++; } } }, trackerLoader: function(url){ (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.onload = function(){ MainFrame.Tracker.loadedTrackers++; if(MainFrame.Tracker.finishedLoading()){ MainFrame.Tracker.trackOpeningEvents(); if(MainFrame.EventHandler){ MainFrame.EventHandler.dispatch('catalogLoadedTrackerInit') } } } ga.src = url; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); }, finishedLoading: function(){ if(this.loadedTrackers == this.trackersCounter){ //MainFrame.EventHandler.dispatch('catalogLoadedTrackerInit') return true } else return false }, trackOpeningEvents: function() { if (this.finishedLoading() && this.openingEvents.length > 0) { this.sendTrackedObjects("page_changed", this.openingEvents, false); this.openingEvents = []; } }, //deprecated sendTrackedEvent: function (eventCode, actionTrigger, actionInitiator, params) { console.log("??? src-mini is out of date ???"); }, //processing track requests sendTrackedEventNew: function(trackOptions) { if (this.trackingType && this.trackingType === "events") { this.trackEvent(trackOptions); } else { var eventCode = trackOptions.eventCode; var actionTrigger = trackOptions.actionTrigger; var actionInitiator = trackOptions.actionInitiator; var actionTarget = trackOptions.actionTarget; var eventValues = trackOptions.extraValues; this.trackPageView(eventCode, actionTrigger, actionInitiator, eventValues); }; }, //sending only pageviews trackPageView: function (eventCode, actionTrigger, actionInitiator, params) { if (!this.mainModule) { this.mainModule = MainFrame.Manager.Scoping.getById(this.mainModuleId); } var currentPage = this.mainModule.currentPage, currentPageData = this.mainModule.pageReferences[currentPage], currentPageNumber = currentPageData.number; currentPageNumbers = []; if (this.mainModule.pagesOnScreen == 2) { currentPageNumbers.push(this.mainModule.leftPageNumber); currentPageNumbers.push(this.mainModule.rightPageNumber); } else { if (this.mainModule.rightPageNumber != "") { currentPageNumbers.push(this.mainModule.rightPageNumber); } else { currentPageNumbers.push(this.mainModule.leftPageNumber); } } var i, j, totalPages = currentPageNumbers.length; var trackedEvent; var trackedObjects = []; switch (eventCode) { case '110': trackedObjects.push({type:"page_view", eventString:'/open/direct/page=' + params[0], eventValues:{page:params[0]}}); break; case '110-120': // params[0] = refferal if (params[0] === 'mail') { //trackedEvent = '/open/mail/page=' + currentPageNumber; } else { for (i=0;i=0) { var scrollShopItem = actionInitiator.superObject; var zoneData = scrollShopItem.zoneData; var refId = zoneData.refId, zoneId = zoneData.id, page = zoneData.page; var catalog = MainFrame.Manager.Scoping.getById("catalog"); var mapFileName = MainFrame.Util.zeroFill(page), mapXmlPath = MainFrame.Util.getAppURL() + catalog.settings.maps.dataSrcMaps + '/' + mapFileName + '.xml'; MainFrame.Util.request({ url: mapXmlPath, xmlResponse: true, onSuccess:function(data) { var pageMap = data.documentElement; var index = 0, totalNodes = pageMap.childNodes.length; for ( ; index < totalNodes; index++) { var toBreak = false; var childData = pageMap.childNodes[index], nodeName = childData.nodeName; if (nodeName === 'ref') { var refIdNodes = childData.getElementsByTagName('id'); if (refIdNodes.length) { var refIdNode = refIdNodes[0], refNodeId = MainFrame.DataParser.getCDATA(refIdNode); if (refNodeId === refId) { var refs = {}, xmlChildData = MainFrame.DataParser.parseXml(childData); MainFrame.DataParser.parseRefs(refs, xmlChildData); for (var key in refs) { var ref = refs[key]; toBreak = true; break; } } } } if (toBreak==true) { break; } } if(ref && ref.url){ trackedObjects.push({type:"page_view", eventString:'/product/' + ref.type + '/url=' + ref.url, eventValues:{url:ref.url}}); }; if (trackedObjects.length>0) { for (var i in MainFrame.Tracker.trackers) { var trackerObj = MainFrame.Tracker.trackers[i]; var eventIsTracked = (trackerObj.codes.indexOf(eventCode) !== -1) if (eventIsTracked) { for (var j in trackedObjects) { MainFrame.Tracker.callTracker({ source: 'html5', type: trackerObj.type, trackedEvent: trackedObjects[j].eventString, trackedEventObject: trackedObjects[j], trackerObj: trackerObj }); } } } } }, onError: function () { } }); } else { var ref = typeof(actionInitiator.refs) == 'object' ? actionInitiator.refs[0] : actionInitiator.ref; if(typeof(actionInitiator.ref)!="undefined"){ if(typeof(actionInitiator.ref.url)!="undefined"){ ref = actionInitiator.ref; } } if (typeof(ref) == "string") { var zone = actionInitiator.superObject; var mapsManager = zone.superObject; this.pageRefs = mapsManager.refs; ref = this.pageRefs[ref]; } if(ref.type=='zoom'){ var map = actionInitiator.superObject; var mapRefs = map.refs; var ktaPage = map.superObject; if(mapRefs.length>0){ var refId = mapRefs[0]; ref = ktaPage.refs[refId]; } }; } if(ref && ref.url){ trackedObjects.push({type:"page_view", eventString:'/product/' + ref.type + '/url=' + ref.url, eventValues:{url:ref.url}}); }; break; case '620': var ref = typeof(actionInitiator.refs) == 'Object' ? actionInitiator.refs[0] : actionInitiator.ref trackedObjects.push({type:"page_view", eventString:'/product/' + ref.type + '/page=' + currentPageNumber, eventValues:{page:currentPageNumber}}); break; case '810': trackedObjects.push({type:"page_view", eventString:'/search/keyword=' + params[0], eventValues:{keyword:params[0]}}); break; case '910': trackedObjects.push({type:"page_view", eventString:'/scrollshop/open'}); break; case '920': trackedObjects.push({type:"page_view", eventString:'/scrollshop/action/goto/page='+params[0], eventValues:{page:params[0]}}); break; default: break; } if (trackedObjects.length>0) { for (var i in MainFrame.Tracker.trackers) { var trackerObj = MainFrame.Tracker.trackers[i]; var eventIsTracked = (trackerObj.codes.indexOf(eventCode) !== -1); //var eventIsTracked = true; if (eventIsTracked) { for (var j in trackedObjects) { var values = trackedObjects[j].eventValues ? trackedObjects[j].eventValues : {}; values.lang = MainFrame.Manager.Scoping.getById('mainframe').defaultLanguage; MainFrame.Tracker.callTracker({ source: 'html5', type: trackerObj.type, trackedEvent: trackedObjects[j].eventString, trackedEventObject: trackedObjects[j], trackerObj: trackerObj, eventCode:eventCode, appId:MainFrame.Manager.Scoping.getById('mainframe').appId, values: values }); } } } } }, //sending events and pageviews trackEvent: function(trackOptions) { var eventCode = trackOptions.eventCode; var actionTrigger = trackOptions.actionTrigger; var actionInitiator = trackOptions.actionInitiator; var actionTarget = trackOptions.actionTarget; var eventValues = trackOptions.extraValues; var forceTracking = false; if (!this.mainModule) { this.mainModule = MainFrame.Manager.Scoping.getById(this.mainModuleId); } var currentPage = this.mainModule.currentPage, currentPageData = this.mainModule.pageReferences[currentPage], currentPageNumber = currentPageData.number; currentPageNumbers = []; if (this.mainModule.pagesOnScreen == 2) { currentPageNumbers.push(this.mainModule.leftPageNumber); currentPageNumbers.push(this.mainModule.rightPageNumber); } else { if (this.mainModule.rightPageNumber != "") { currentPageNumbers.push(this.mainModule.rightPageNumber); } else { currentPageNumbers.push(this.mainModule.leftPageNumber); } } var i, j, totalPages = currentPageNumbers.length; var trackedEvent; var trackedObjects = []; switch (eventCode) { /*case '110-120': //open direct page if (eventValues[0] === 'mail') { trackedObjects.push({type:"page_view", eventString:'/open/mail/page=' + currentPageNumber}); } else { for (i=0;i0) { var startPage = parseInt(j.split("-")[0]); var finPage = parseInt(j.split("-")[1]); if (startPage >= currentPageNumbers[i] || currentPageNumbers[i]<=finPage) { page_category = this.page_categories[j]; break; } } } } /* this.openingEvents.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "event":"PageView:Page "+currentPageNumbers[i], "event_category":page_category, 'name': "page.display", "data": { "page_number": "Page "+currentPageNumbers[i], "page_category": page_category } } }); */ /* this.openingEvents.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "page_catalog_number":currentPageNumbers[i], "page_name": location.pathname, 'page_status': "200", 'env_template': "catalogue" } }); */ } this.openingEvents.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "event": "page_view", "page_catalog_number":currentPageNumbers.join("-"), "page_name": location.pathname, 'page_status': "200", 'env_template': "catalogue", 'product': null } }); this.hasTrackedOpening = true; } else { for (i=0;i0) { var startPage = parseInt(j.split("-")[0]); var finPage = parseInt(j.split("-")[1]); if (startPage >= currentPageNumbers[i] || currentPageNumbers[i]<=finPage) { page_category = this.page_categories[j]; break; } } } } /* trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "event":"PageView:Page "+currentPageNumbers[i], "event_category":page_category, 'name': "page.display", "data": { "page_number": "Page "+currentPageNumbers[i], "page_category": page_category } } }); */ /* trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "page_catalog_number":currentPageNumbers[i], "page_name": location.pathname, 'page_status': "200", 'env_template': "catalogue" } }); */ } trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "event": "page_view", "page_catalog_number":currentPageNumbers.join("-"), "page_name": location.pathname, 'page_status': "200", 'env_template': "catalogue", 'product': null } }); } break; ////////////////////////// //////////////////////////string codes case 'summary_open': //summary open //trackedObjects.push({type:"event", eventCategory:"", eventAction:"SummaryEvents", eventLabel:"open"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"summary_open"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'MainMenu:Summary', eventValues:{button:"Summary"}}); /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":"sommaire", "event_category":"menu", 'name': "navigation_click", "data": { "click_localization": "menu", "click_label": "sommaire" } } }); */ break; case 'summary_close': //summary close //trackedObjects.push({type:"event", eventCategory:"", eventAction:"SummaryEvents", eventLabel:"close"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"summary_close"}); break; case 'summary_click': //summary click if (actionInitiator && typeof actionInitiator.data.attributes.trackValue !== "undefined") { var trackValue = actionInitiator.data.attributes.trackValue; if (trackValue.indexOf("{")==0) { trackValue = MainFrame.Util.getForSource(trackValue); } trackedObjects.push({type:"event", eventCategory:"", eventAction:"SummaryEvents"+"|"+trackValue, eventLabel:"click", eventValues:{title:trackValue}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'SummaryGoToPage:'+trackValue, eventValues:{title:trackValue}}); /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":'SummaryGoToPage:'+trackValue, "event_category":"sommaire", 'name': "navigation_click", "data": { "click_localization": "sommaire", "click_label": trackValue } } }); */ } else { //if (typeof actionTarget.chapterUrl != "undefined") { //if (typeof actionTarget.chapterPage != "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"SummaryEvents"+"|"+actionTarget.chapterTitle, eventLabel:"click", eventValues:{page:actionTarget.chapterTitle}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'SummaryGoToPage:'+actionTarget.chapterTitle, eventValues:{title:actionTarget.chapterTitle}}); /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":'SummaryGoToPage:'+actionTarget.chapterTitle, "event_category":"sommaire", 'name': "navigation_click", "data": { "click_localization": "sommaire", "click_label": actionTarget.chapterTitle } } }); */ } break; case 'search_open': //search open //trackedObjects.push({type:"event", eventCategory:"", eventAction:"SearchEvents", eventLabel:"open"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"search_open"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'MainMenu:Search', eventValues:{button:"Search"}}); /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":'recherche', "event_category":"menu", 'name': "navigation_click", "data": { "click_localization": "menu", "click_label": "recherche" } } }); */ break; case 'search_close': //search close //trackedObjects.push({type:"event", eventCategory:"", eventAction:"SearchEvents", eventLabel:"close"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"search_close"}); break; case '810': //search keyword case 'search_keyword': //search keyword trackedObjects.push({type:"event", eventCategory:"", eventAction:"SearchEvents", eventLabel:eventValues[0], eventValues:{keyword:eventValues[0]}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'search', eventValues:{"search_term":eventValues[0]}}); MainFrame.EprintShop.currentSearch = {}; MainFrame.EprintShop.currentSearch.keyword = eventValues[0]; MainFrame.EprintShop.currentSearch.resultsArray = trackOptions.action.resultsArray ? trackOptions.action.resultsArray : []; /* if (trackOptions.action && trackOptions.action.resultsArray && trackOptions.action.resultsArray.length > 0) { trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "event":'search:'+eventValues[0], "event_category":"search", 'name': "internal_search_result.display", "data": { "page": "Search", "search_keyword": eventValues[0], "search_with_results": true, "search_nb_results": trackOptions.action.resultsArray.length } } }); } else { trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { 'name': "internal_search_result.display", "data": { "page": "Search", "search_keyword": eventValues[0], "search_with_results": false, "search_nb_results": 0 } } }); } */ break; case 'search_click': //search click trackedObjects.push({type:"event", eventCategory:"", eventAction:"SearchEvents|click", eventLabel:actionTarget.altTextPage, eventValues:{page:actionTarget.altTextPage}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'SearchResultClick:'+actionTarget.altTextPage, eventValues:{page:actionTarget.altTextPage}}); trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { 'event': "search", 'event_name': "search", 'search_type': "internal search", 'search_keywords': MainFrame.EprintShop.currentSearch.keyword, 'search_results_numbers': MainFrame.EprintShop.currentSearch.resultsArray.length, 'page_catalog_number': currentPageNumbers.join("-"), 'page_name': null } }); break; case 'diaporama_open': //diaporama open //trackedObjects.push({type:"event", eventCategory:"", eventAction:"DiaporamaEvents", eventLabel:"open"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"diaporama_open"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'MainMenu:Thumbnails', eventValues:{button:"Thumbnails"}}); /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":'diaporama', "event_category":"menu", 'name': "navigation_click", "data": { "click_localization": "menu", "click_label": "diaporama" } } }); */ break; case 'diaporama_close': //diaporama close //trackedObjects.push({type:"event", eventCategory:"", eventAction:"DiaporamaEvents", eventLabel:"close"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"diaporama_close"}); break; case 'diaporama_click': //diaporama click for (i=0;i 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"zoom", eventValues:{url:refUrl}}); } else { prodId = MainFrame.Util.zeroFill(zone.page, 4)+"_"+zone.zoneAttributes.id; trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"zoom", eventValues:{url:prodId}}); } trackedObjects.push({trackerType: "GA4", type:"event", eventName:'PageZoneZoomClick:'+zone.page, eventValues:{page:zone.page}}); /* if(refObj && refObj.url){ trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents|zoom", eventLabel:zone.page+"|"+refObj.url}); } else { trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents|zoom", eventLabel:zone.page+"|"+zone.zoneAttributes.id}); } */ var mapsManager = zone.superObject; var innerZones = mapsManager.getInnerZones(zone.id); if (innerZones[0] && innerZones[0].refs && innerZones[0].refs.length >0) { var refId = innerZones[0].refs[0]; var ref = mapsManager.refs[refId]; if (ref && ref.type == "ldc") { trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "event": "page_view", //"page_catalog_number":""+zone.page, "page_catalog_number":currentPageNumbers.join("-"), "page_name": location.pathname, 'page_status': "200", 'env_template': "preview pdp" , 'product': null } }); } } break; case 'scrollshop_open': //scrollshop open //trackedObjects.push({type:"event", eventCategory:"", eventAction:"ScrollshopEvents", eventLabel:"open"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"scrollshop_open"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'MainMenu:Scrollshop', eventValues:{button:"Scrollshop"}}); break; case 'scrollshop_close': //scrollshop close //trackedObjects.push({type:"event", eventCategory:"", eventAction:"ScrollshopEvents", eventLabel:"close"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"scrollshop_close"}); break; case 'scrollshop_filter': //scrollshop filter if (eventValues.length>0) { trackedObjects.push({type:"event", eventCategory:"", eventAction:"ScrollshopEvents|filter", eventLabel:eventValues[0], eventValues:{filter:eventValues[0]}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ScrollshopFilter:'+eventValues[0], eventValues:{filter:eventValues[0]}}); } else { trackedObjects.push({type:"event", eventCategory:"", eventAction:"ScrollshopEvents|filter", eventLabel:"All", eventValues:{filter:"All"}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ScrollshopFilter:'+"All", eventValues:{filter:"All"}}); } break; case 'scrollshop_zoom': //scrollshop zoom var scrollshopItem = trackOptions.actionTarget.superObject; var zoneData = scrollshopItem.zoneData; if (zoneData.refId) { var refObj = zoneData.refs[zoneData.refId]; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"zoom", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ScrollshopZoomClick:'+refUrl, eventValues:{url:refUrl}}); } } else { var prodId = MainFrame.Util.zeroFill(zoneData.page, 4)+"_"+zoneData.id; trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"zoom", eventValues:{url:prodId}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ScrollshopZoomClick:'+prodId, eventValues:{id:prodId}}); } break; case '610': case 'product_click': if (actionInitiator.id.indexOf("scrollshop_bottomContent")>=0) { var self = this; var scrollShopItem = actionInitiator.superObject; var zoneData = scrollShopItem.zoneData; if (zoneData) { var refId = zoneData.refId, zoneId = zoneData.id, page = zoneData.page; if (zoneData.refId) { var refObj = zoneData.refs[zoneData.refId]; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"click", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ScrollshopProductClick:'+refUrl, eventValues:{url:refUrl}}); } else { console.log(" ?? no reference ?? "); } } else { var prodId = MainFrame.Util.zeroFill(zoneData.page, 4)+"_"+zoneData.id trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"click", eventValues:{url:prodId}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ScrollshopProductClick:'+prodId, eventValues:{id:prodId}}); } } /* var catalog = MainFrame.Manager.Scoping.getById("catalog"); var mapFileName = MainFrame.Util.zeroFill(page), mapXmlPath = MainFrame.Util.getAppURL() + catalog.settings.maps.dataSrcMaps + '/' + mapFileName + '.xml'; MainFrame.Util.request({ url: mapXmlPath, xmlResponse: true, onSuccess:function(data) { var pageMap = data.documentElement; var index = 0, totalNodes = pageMap.childNodes.length; for ( ; index < totalNodes; index++) { var toBreak = false; var childData = pageMap.childNodes[index], nodeName = childData.nodeName; if (nodeName === 'ref') { var refIdNodes = childData.getElementsByTagName('id'); if (refIdNodes.length) { var refIdNode = refIdNodes[0], refNodeId = MainFrame.DataParser.getCDATA(refIdNode); if (refNodeId === refId) { var refs = {}, xmlChildData = MainFrame.DataParser.parseXml(childData); MainFrame.DataParser.parseRefs(refs, xmlChildData); for (var key in refs) { var ref = refs[key]; toBreak = true; break; } } } } if (toBreak==true) { break; } } if(ref && ref.url){ //trackedObjects.push({type:"event", eventCategory:"", eventAction:"product", eventLabel:"click", eventValue:ref.url}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+ref.url, eventLabel:"click"}); }; self.sendTrackedObjects(eventCode, trackedObjects); }, onError: function () { } });*/ } else { var zone = this.getZoneFromAction(actionInitiator); var refObj; if (typeof zone == "undefined" && typeof this.mainModule.multilinkPopoverZone != "undefined") { zone = this.mainModule.multilinkPopoverZone; } if (typeof actionInitiator.ref == "undefined") { refObj = this.getRefObjForZone(zone); } else { refObj = actionInitiator.ref; } if(refObj && refObj.url){ switch (refObj.type) { case "video": var videoSource = refObj.url; var mainframe = MainFrame.Util.getMainFrame(); var currentMedia = mainframe.mediaReference; var mediaContainer; for (var i=0;i0) { separator = "'"; } srcValue = srcValue.substring(srcValue.indexOf("src=")+5, srcValue.length); srcValue = srcValue.substring(0, srcValue.indexOf(separator)); trackedObjects.push({type:"event", eventCategory:"", eventAction:"VideoEvents"+"|"+MainFrame.Util.zeroFill(zone.page, 4), eventLabel:"view"+"|"+srcValue, eventValues:{url:srcValue}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'PageEmbedVideoClick:'+zone.page, eventValues:{}}); break; case "xurl": case "xurl1": case "xurl2": case "yurl": case "yurl1": case "yurl2": var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"click", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'PageURLClick:'+refUrl, eventValues:{url:refUrl}}); break; case "pdf": trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+MainFrame.Util.zeroFill(zone.page, 4), eventLabel:"click"+"|"+refObj.url, eventValues:{url:refObj.url}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'PagePdfClick:'+zone.page, eventValues:{}}); break; case "url": var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"click", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'PageURLClick:'+refUrl, eventValues:{url:refUrl}}); break; case "ldc": var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"click", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'PageProductClick:'+refUrl, eventValues:{sku:refUrl}}); //console.log("click pe ldc"); /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":'product_click', "event_category":"product click", 'name': "product_click", "data": { "product_id": refUrl } } }); */ break; default: var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"click", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'PageURLClick:'+refUrl, eventValues:{url:refUrl}}); } } } break; case '620': case 'product_goto': //product goto var zone = this.getZoneFromAction(actionInitiator); var refObj = this.getRefObjForZone(zone); //trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refObj.url, eventLabel:"click", eventValues:{url:refObj.url}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'PageGotoClick:'+refObj.url, eventValues:{page:refObj.url}}); break; case 'product_open': //product open if (MainFrame.EprintShop.currentProduct) { var page = MainFrame.EprintShop.currentProduct.page; /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":'product_open', "event_category":"product open", 'name': "product_click", "data": { "click_localization": "Page "+page, "product_id": MainFrame.EprintShop.currentProduct.refUrl, "product_name": MainFrame.EprintShop.currentProduct.name, "product_price": MainFrame.EprintShop.currentProduct.price, "product_discount": MainFrame.EprintShop.currentProduct.old_price, "product_page": "Page "+page, "product_availability": (MainFrame.EprintShop.currentProduct.dispo > 0) ? "en stock" : "rupture" } } }); trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { 'name': "product.page_display", "data": { "product": { "product_id": MainFrame.EprintShop.currentProduct.refUrl, "product_name": MainFrame.EprintShop.currentProduct.name, "product_price": MainFrame.EprintShop.currentProduct.price, "product_discount": MainFrame.EprintShop.currentProduct.old_price, "product_page": "Page "+page, "product_availability": (MainFrame.EprintShop.currentProduct.dispo > 0) ? "en stock" : "rupture" }, } } }); */ //console.log("MainFrame.EprintShop.currentProduct=", MainFrame.EprintShop.currentProduct); trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { 'event': "product_click", 'event_name': "product_click", 'product_id': MainFrame.EprintShop.currentProduct.ITEM.ID, 'product_name': MainFrame.EprintShop.currentProduct.ITEM.TITLE, 'product_cat1': null, 'product_cat2': null, 'product_cat3': null, 'product_cat4': null, 'product_unitprice_ati': MainFrame.EprintShop.currentProduct.ITEM.PRICE, 'product_unitprice_tf': null, 'product_display_type': null } }); trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "event": "page_view", //"page_catalog_number":""+page, "page_catalog_number":currentPageNumbers.join("-"), "page_name": location.pathname, 'page_status': "200", 'env_template': "pdp", 'product': { 'product_id': MainFrame.EprintShop.currentProduct.ITEM.ID, 'product_sku': MainFrame.EprintShop.currentProduct.ITEM.ID, 'product_name': MainFrame.EprintShop.currentProduct.ITEM.TITLE, 'product_brand': null, 'product_display_type': null, 'product_cat1': null, 'product_cat2': null, 'product_cat3': null, 'product_cat4': null, 'product_unitprice_ati': MainFrame.EprintShop.currentProduct.ITEM.PRICE, 'product_unitprice_tf': null, 'product_tax': null } } }); } break; case 'product_facebook': //product share facebook var zone = this.getZoneFromAction(actionInitiator); var refObj = this.getRefObjForZone(zone); var prodId = MainFrame.Util.zeroFill(zone.page, 4)+zone.zoneAttributes.id; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"share|facebook", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Facebook", content_type: "product", item_id: refUrl}}); } else { prodId = MainFrame.Util.zeroFill(zone.page, 4)+"_"+zone.zoneAttributes.id trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"share|facebook", eventValues:{url:prodId}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Facebook", content_type: "product", item_id: prodId}}); } break; case 'product_facebook_eshop': //product share facebook var paramsFromItemAction = trackOptions.action.paramsObject._actionParams; trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+paramsFromItemAction.url, eventLabel:"share|facebook", eventValues:{url:paramsFromItemAction.url}}); break; case 'product_pinterest_eshop': //product share facebook var paramsFromItemAction = trackOptions.action.paramsObject._actionParams; trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+paramsFromItemAction.url, eventLabel:"share|pinterest", eventValues:{url:paramsFromItemAction.url}}); break; case 'product_pinterest': //product share pinterest var zone = this.getZoneFromAction(actionInitiator); var refObj = this.getRefObjForZone(zone); var prodId = MainFrame.Util.zeroFill(zone.page, 4)+zone.zoneAttributes.id; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"share|pinterest", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Pinterest", content_type: "product", item_id: refUrl}}); } else { prodId = MainFrame.Util.zeroFill(zone.page, 4)+"_"+zone.zoneAttributes.id trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"share|pinterest", eventValues:{url:prodId}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Pinterest", content_type: "product", item_id: prodId}}); } break; case 'product_twitter': //product share twitter var zone = this.getZoneFromAction(actionInitiator); var refObj = this.getRefObjForZone(zone); var prodId = MainFrame.Util.zeroFill(zone.page, 4)+zone.zoneAttributes.id; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"share|twitter", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Twitter", content_type: "product", item_id: refUrl}}); } else { prodId = MainFrame.Util.zeroFill(zone.page, 4)+"_"+zone.zoneAttributes.id trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"share|twitter", eventValues:{url:prodId}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Twitter", content_type: "product", item_id: prodId}}); } break; case 'product_linkedin': //product share linkedin var zone = this.getZoneFromAction(actionInitiator); var refObj = this.getRefObjForZone(zone); var prodId = MainFrame.Util.zeroFill(zone.page, 4)+zone.zoneAttributes.id; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"share|linkedin", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Linkedin", content_type: "product", item_id: refUrl}}); } else { prodId = MainFrame.Util.zeroFill(zone.page, 4)+"_"+zone.zoneAttributes.id trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"share|linkedin", eventValues:{url:prodId}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Linkedin", content_type: "product", item_id: prodId}}); } break; case 'product_google': //product share google var zone = this.getZoneFromAction(actionInitiator); var refObj = this.getRefObjForZone(zone); var prodId = MainFrame.Util.zeroFill(zone.page, 4)+zone.zoneAttributes.id; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"share|google", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Google", content_type: "product", item_id: refUrl}}); } else { prodId = MainFrame.Util.zeroFill(zone.page, 4)+"_"+zone.zoneAttributes.id trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"share|google", eventValues:{url:prodId}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Google", content_type: "product", item_id: prodId}}); } break; case 'product_whatsapp': //product share whatsapp var zone = this.getZoneFromAction(actionInitiator); var refObj = this.getRefObjForZone(zone); var prodId = MainFrame.Util.zeroFill(zone.page, 4)+zone.zoneAttributes.id; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl , eventLabel:"share|whatsapp", eventValues:{url:refUrl}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Whatsapp", content_type: "product", item_id: refUrl}}); } else { prodId = MainFrame.Util.zeroFill(zone.page, 4)+"_"+zone.zoneAttributes.id trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"share|whatsapp", eventValues:{url:prodId}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'share', eventValues:{method: "Whatsapp", content_type: "product", item_id: prodId}}); } break; /*case 'product_facebook': //product share facebook if (typeof trackOptions.action.trackUrl !== "undefined") { var urlToShare = trackOptions.action.trackUrl; trackedObjects.push({type:"event", eventCategory:"", eventAction:"product", eventLabel:"facebook", eventValue:urlToShare}); } break; case 'product_pinterest': //product share pinterest if (typeof trackOptions.action.trackUrl !== "undefined") { var urlToShare = trackOptions.action.trackUrl; trackedObjects.push({type:"event", eventCategory:"", eventAction:"product", eventLabel:"pinterest", eventValue:urlToShare}); } break; case 'product_twitter': //product share twitter if (typeof trackOptions.action.trackUrl !== "undefined") { var urlToShare = trackOptions.action.trackUrl; trackedObjects.push({type:"event", eventCategory:"", eventAction:"product", eventLabel:"twitter", eventValue:urlToShare}); } break; case 'product_linkedin': //product share linkedin if (typeof trackOptions.action.trackUrl !== "undefined") { var urlToShare = trackOptions.action.trackUrl; trackedObjects.push({type:"event", eventCategory:"", eventAction:"product", eventLabel:"linkedin", eventValue:urlToShare}); } break; case 'product_google': //product share google if (typeof trackOptions.action.trackUrl !== "undefined") { var urlToShare = trackOptions.action.trackUrl; trackedObjects.push({type:"event", eventCategory:"", eventAction:"product", eventLabel:"google", eventValue:urlToShare}); } break; */ case 'product_myspace': //product share myspace break; case 'product_digg': //product share digg break; case 'product_delicious': //product share delciious break; case 'product_viadeo': //product share viadeo break; case 'product_print': //product print var zone = this.getZoneFromAction(actionInitiator); var refObj = this.getRefObjForZone(zone); var prodId = MainFrame.Util.zeroFill(zone.page, 4)+zone.zoneAttributes.id; if(refObj && refObj.url){ var refUrl = refObj.url; try { var refUrl = new URL(refObj.url); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } } catch(e) {refUrl = refObj.url;} trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+refUrl, eventLabel:"print", eventValues:{url:refUrl}}); } else { prodId = MainFrame.Util.zeroFill(zone.page, 4)+"_"+zone.zoneAttributes.id; trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+prodId, eventLabel:"print", eventValues:{url:prodId}}); } break; case 'wishlist_open': // //trackedObjects.push({type:"event", eventCategory:"", eventAction:"WishlistEvents", eventLabel:"open"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"wishlist_open"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'MainMenu:Wishlist', eventValues:{button: "Wishlist"}}); break; case 'wishlist_close': // //trackedObjects.push({type:"event", eventCategory:"", eventAction:"WishlistEvents", eventLabel:"close"}); trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"wishlist_close"}); break; case 'wishlist_add': //wishlist add if (typeof MainFrame.EprintShop.currentProduct !== "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+MainFrame.EprintShop.currentProduct.refUrl, eventLabel:"addToWishlist", eventValues:{url:MainFrame.EprintShop.currentProduct.refUrl}}); //trackedObjects.push({trackerType: "GA4", type:"event", eventName:'add_to_wishlist', eventValues:{}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'WishlistAdd:'+MainFrame.EprintShop.currentProduct.refUrl, eventValues:{}}); } break; case 'wishlist_remove': // if (typeof eventValues[0] !== "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+eventValues[0], eventLabel:"removeFromWishlist", eventValues:{url:eventValues[0]}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'WishlistRemove:'+eventValues[0], eventValues:{}}); } break; case 'wishlist_empty': // trackedObjects.push({type:"event", eventCategory:"", eventAction:"WishlistEvents", eventLabel:"empty"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'WishlistEmpty', eventValues:{}}); break; case 'wishlist_print': // trackedObjects.push({type:"event", eventCategory:"", eventAction:"WishlistEvents", eventLabel:"print"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'WishlistPrint', eventValues:{}}); break; case 'wishlist_email': // var trackValue = ""; var wishlistManager = MainFrame.Manager.Itemlist; for (var key in wishlistManager.list) { var product = wishlistManager.list[key]; trackValue += product.key+","+product.epsQuantity+";"; } trackValue = trackValue.substring(0, trackValue.length-1); trackedObjects.push({type:"event", eventCategory:"", eventAction:"WishlistEvents"+"|"+trackValue, eventLabel:"mail", eventValues:{url:trackValue}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'WishlistEmail', eventValues:{}}); break; case 'wishlist_email_error': // trackedObjects.push({type:"event", eventCategory:"", eventAction:"WishlistEvents", eventLabel:"mail_error"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'WishlistEmailError', eventValues:{}}); break; case 'basket_add': // if (typeof MainFrame.EprintShop.currentProduct !== "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+MainFrame.EprintShop.currentProduct.refUrl, eventLabel:"addToCart", eventValues:{url:MainFrame.EprintShop.currentProduct.refUrl}}); //trackedObjects.push({trackerType: "GA4", type:"event", eventName:'add_to_cart', eventValues:{}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'CartAdd:'+MainFrame.EprintShop.currentProduct.refUrl, eventValues:{}}); var page = MainFrame.EprintShop.currentProduct.page; /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":'product_add', "event_category":"product add", 'name': "add_to_cart", "data": { "click_localization": "Page "+page, "product_id": MainFrame.EprintShop.currentProduct.refUrl, "product_name": MainFrame.EprintShop.currentProduct.name, "product_price": MainFrame.EprintShop.currentProduct.price, "product_discount": MainFrame.EprintShop.currentProduct.old_price, "product_page": "Page "+page, "product_availability": (MainFrame.EprintShop.currentProduct.dispo > 0) ? "en stock" : "rupture" } } }); */ /* trackedObjects.push({ trackerType: "Piano", type: "page_view", 'eventParams': { "page_catalog_number":""+page, "page_name": "Product "+MainFrame.EprintShop.currentProduct.refUrl, 'page_status': "200", 'env_template': "pdp", 'product': { 'product_id': MainFrame.EprintShop.currentProduct.ITEM.ID, 'product_sku': MainFrame.EprintShop.currentProduct.ITEM.ID, 'product_name': MainFrame.EprintShop.currentProduct.ITEM.TITLE, 'product_brand': null, 'product_display_type': null, 'product_cat1': null, 'product_cat2': null, 'product_cat3': null, 'product_cat4': null, 'product_unitprice_ati': MainFrame.EprintShop.currentProduct.ITEM.PRICE, 'product_unitprice_tf': null, 'product_tax': null } } }); */ var qtyValue = 1; var quantityField = MainFrame.Manager.Scoping.getById("quantityInputField"); if (quantityField) { qtyValue = parseInt(quantityField.getText(), 10); } if (isNaN(qtyValue)) { qtyValue = 1; } trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { 'event': "add_to_cart", 'event_name': "add_to_cart", 'product_id': MainFrame.EprintShop.currentProduct.ITEM.ID, 'product_name': MainFrame.EprintShop.currentProduct.ITEM.TITLE, 'product_cat1': null, 'product_cat2': null, 'product_cat3': null, 'product_cat4': null, 'product_unitprice_ati': MainFrame.EprintShop.currentProduct.ITEM.PRICE, 'product_unitprice_tf': null, 'product_display_type': null, 'product_quantity': qtyValue } }); } break; case 'basket_remove': // if (typeof eventValues[0] !== "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"ProductEvents"+"|"+eventValues[0], eventLabel:"removeFromCart", eventValues:{url:eventValues[0]}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'CartRemove:'+eventValues[0], eventValues:{}}); } break; case 'basket_empty': // trackedObjects.push({type:"event", eventCategory:"", eventAction:"BasketEvents", eventLabel:"empty"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'CartEmpty', eventValues:{}}); break; case 'basket_checkout': // if (typeof eventValues[0] !== "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"BasketEvents"+"|"+eventValues[0], eventLabel:"click", eventValues:{title:eventValues[0]}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'MainMenu:Cart', eventValues:{}}); } else { trackedObjects.push({type:"event", eventCategory:"", eventAction:"BasketEvents", eventLabel:"open"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'MainMenu:Cart', eventValues:{}}); } break; case 'cart_open': // /* trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { "event":'panier', "event_category":"menu", 'name': "navigation_click", "data": { "click_localization": "menu", "click_label": "panier" } } }); */ var addedProducts = 0; var cartValue = 0; var totalArticlesNumberTxt = MainFrame.Manager.Scoping.getById('totalArticles'); if (totalArticlesNumberTxt) { addedProducts = parseInt(totalArticlesNumberTxt.getText()); } if (MainFrame.EprintShop.currentBasket && MainFrame.EprintShop.currentBasket.CART) { addedProducts = MainFrame.EprintShop.currentBasket.CART.NBRARTICLE; cartValue = MainFrame.EprintShop.currentBasket.CART.TOTAL; } var cartStatus = "empty"; if (addedProducts > 0) { cartStatus = "filled"; } trackedObjects.push({ trackerType: "Piano", type: "event", 'eventParams': { 'event': "cart_validation", 'event_name': "cart_validation", 'cart_type': cartStatus,//empty,filled 'order_amount_ati_without_sf': cartValue, 'order_amount_tf_without_sf': cartValue } }); break; case 'button_open': //generic button open if (actionInitiator && typeof actionInitiator.data.attributes.trackValue !== "undefined") { var trackValue = actionInitiator.data.attributes.trackValue; if (trackValue.indexOf("{")==0) { trackValue = MainFrame.Util.getForSource(trackValue); } trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents"+"|"+trackValue, eventLabel:"click", eventValues:{title:trackValue}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ButtonsEvents:'+trackValue, eventValues:{title: trackValue}}); } else if (actionInitiator && typeof actionInitiator.data.attributes.statsLabel !== "undefined") { var statsLabel = actionInitiator.data.attributes.statsLabel; if (trackValue.indexOf("{")==0) { statsLabel = MainFrame.Util.getForSource(statsLabel); } trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents"+"|"+statsLabel, eventLabel:"click", eventValues:{title:statsLabel}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ButtonsEvents:'+statsLabel, eventValues:{title: statsLabel}}); } else if (typeof eventValues[0] !== "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents"+"|"+eventValues[0], eventLabel:"click", eventValues:{title:eventValues[0]}}); var refUrl = eventValues[0]; try { var refUrl = new URL(eventValues[0]); if (refUrl.pathname && refUrl.pathname != "/" && refUrl.pathname.length> 2) { refUrl = refUrl.pathname+refUrl.search; } //limit to 40 var eventPrefix = "ButtonsEvents:"; var eventNameLength = 40 - eventPrefix.length; refUrl = refUrl.substring(-eventNameLength, eventNameLength); } catch(e) {refUrl = eventValues[0];} trackedObjects.push({trackerType: "GA4", type:"event", eventName:'ButtonsEvents:'+refUrl, eventValues:{title: refUrl}}); } break; case 'video_open': //generic video open if (actionInitiator && typeof actionInitiator.data.attributes.trackValue !== "undefined") { var trackValue = actionInitiator.data.attributes.trackValue; if (trackValue.indexOf("{")==0) { trackValue = MainFrame.Util.getForSource(trackValue); } trackedObjects.push({type:"event", eventCategory:"", eventAction:"VideoEvents", eventLabel:"view"+"|"+trackValue, eventValues:{title:trackValue}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'VideoEvents:'+trackValue, eventValues:{title: trackValue}}); } else if (actionInitiator && typeof actionInitiator.data.attributes.statsLabel !== "undefined") { var statsLabel = actionInitiator.data.attributes.statsLabel; if (trackValue.indexOf("{")==0) { statsLabel = MainFrame.Util.getForSource(statsLabel); } trackedObjects.push({type:"event", eventCategory:"", eventAction:"VideoEvents", eventLabel:"view"+"|"+statsLabel, eventValues:{title:statsLabel}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'VideoEvents:'+statsLabel, eventValues:{title: statsLabel}}); } else if (typeof eventValues[0] !== "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"VideoEvents", eventLabel:"view"+"|"+eventValues[0], eventValues:{title:eventValues[0]}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'VideoEvents:'+eventValues[0], eventValues:{title: eventValues[0]}}); } break; case 'gallery_open': //generic gallery open if (actionInitiator && typeof actionInitiator.data.attributes.trackValue !== "undefined") { var trackValue = actionInitiator.data.attributes.trackValue; if (trackValue.indexOf("{")==0) { trackValue = MainFrame.Util.getForSource(trackValue); } trackedObjects.push({type:"event", eventCategory:"", eventAction:"GalleryEvents", eventLabel:"view"+"|"+trackValue, eventValues:{title:trackValue}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'GalleryEvents:'+trackValue, eventValues:{title: trackValue}}); } else if (actionInitiator && typeof actionInitiator.data.attributes.statsLabel !== "undefined") { var statsLabel = actionInitiator.data.attributes.statsLabel; if (trackValue.indexOf("{")==0) { statsLabel = MainFrame.Util.getForSource(statsLabel); } trackedObjects.push({type:"event", eventCategory:"", eventAction:"GalleryEvents", eventLabel:"view"+"|"+statsLabel, eventValues:{title:statsLabel}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'GalleryEvents:'+statsLabel, eventValues:{title: statsLabel}}); } else if (typeof eventValues[0] !== "undefined") { trackedObjects.push({type:"event", eventCategory:"", eventAction:"GalleryEvents", eventLabel:"view"+"|"+eventValues[0], eventValues:{title:eventValues[0]}}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'GalleryEvents:'+eventValues[0], eventValues:{title: eventValues[0]}}); } break; case 'gallery_view': //gallery view image /*var mainframe = MainFrame.Util.getMainFrame(); if (typeof mainframe.mediaOpener != "undefined") {//zone or button console.log(mainframe.mediaOpener); }*/ var mediaContainer = actionInitiator; var mediaDiaporama = mediaContainer.superObject; var currentSource = mediaDiaporama.sources[mediaContainer.currentPage]; var mediaId = mediaDiaporama.data.attributes.mediaId; if (currentSource.caption && currentSource.caption.title) { trackedObjects.push({type:"event", eventCategory:"", eventAction:"GalleryEvents"+"|"+mediaId, eventLabel:"view"+"|"+currentSource.caption.title}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'GalleryEvents:'+currentSource.caption.title, eventValues:{title: currentSource.caption.title}}); } else { trackedObjects.push({type:"event", eventCategory:"", eventAction:"GalleryEvents"+"|"+mediaId, eventLabel:"view"+"|"+currentSource.src}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'GalleryEvents:'+currentSource.src, eventValues:{title: currentSource.src}}); } break; case 'help_open': trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"help_open"}); trackedObjects.push({trackerType: "GA4", type:"event", eventName:'MainMenu:Help', eventValues:{button: "Help"}}); break; case 'help_close': trackedObjects.push({type:"event", eventCategory:"", eventAction:"ButtonsEvents", eventLabel:"help_close"}); break; //////////////////// default: //eventCode = "ButtonEvents:click:Open presentation pdf"; if (eventCode.indexOf(":")>=0) { var eventCodeElements = eventCode.split(":"); trackedObjects.push({type:"event", eventCategory:"", eventAction:eventCodeElements[0], eventLabel:eventCodeElements[1], eventValue:eventCodeElements[2]}); if (eventCodeElements[0] && eventCodeElements[2]) { var title = eventCodeElements[2]; var translationText = MainFrame.Manager.Text.getById(title); if (translationText) { trackedObjects.push({trackerType: "GA4", type:"event", eventName:eventCodeElements[0]+":"+translationText, eventValues:{title: translationText}}); } else { trackedObjects.push({trackerType: "GA4", type:"event", eventName:eventCodeElements[0]+":"+title, eventValues:{title: title}}); } } forceTracking = true; } else if (eventCode.indexOf("/")>=0) { if (eventCode.charAt(0)!="/") { eventCode = "/"+eventCode; } trackedObjects.push({type:"page_view", eventString:eventCode}); forceTracking = true; } else { console.log("se trackeaza un cod necunoscut eventCode="+eventCode); } break; } this.trackOpeningEvents(); this.sendTrackedObjects(eventCode, trackedObjects, forceTracking); }, getZoneFromAction: function(actionInitiator) { var zone = actionInitiator; if (typeof actionInitiator.zone !== "undefined") { return actionInitiator.zone; } while (typeof zone.recX === "undefined") { if (typeof zone.superObject === "undefined") { zone = null; break; } zone = zone.superObject; } if (zone == null && typeof MainFrame.MapsManager.zoomedZone!="undefined" && MainFrame.MapsManager.zoomedZone!=null) { zone = MainFrame.MapsManager.zoomedZone; } return zone; }, getRefObjForZone: function(zone) { var refObj; if (typeof(zone.ref) !== "undefined") { refObj = zone.ref; } else { if (zone.refId && zone.refs) { refObj = zone.refs[zone.refId]; } else { var refId; if (typeof(zone.refs) === "object" && zone.refs.length>0) { refId = zone.refs[0]; } if (typeof(refId) == "string") { var mapsManager = zone.superObject; refObj = mapsManager.refs[refId]; } } } return refObj; }, sendTrackedObjects: function(eventCode, trackedObjects, forceTracking) { if (trackedObjects.length>0) { var excludeSpecificTrackers = []; for (var j=0;j= 0) { continue; } if (typeof trackedObjects[j].trackerType != "undefined") { continue; } var eventIsTracked = (trackerObj.codes.indexOf(eventCode) !== -1) if (forceTracking === true) { eventIsTracked = true; } if (eventIsTracked) { var values = trackedObjects[j].eventValues ? trackedObjects[j].eventValues : {}; values.lang = MainFrame.Manager.Scoping.getById('mainframe').defaultLanguage; MainFrame.Tracker.callTracker({ source: 'html5', type: trackerObj.type, trackedEvent: trackedObjects[j].eventString, trackedEventObject: trackedObjects[j], trackerObj: trackerObj, eventCode: eventCode, appId: MainFrame.Manager.Scoping.getById('mainframe').appId, values: values }); } } } } }, //sending values callTracker: function (options) { if(this.finishedLoading()){ //callTracker for queued events if(this.trackedEvents.length!=0){ for(var i in this.trackedEvents) this.callTrackerQueue() } var gaPrefix = ""; var name = this.catalogue_name; var variableName = (String(options.source).indexOf("flash")>=0) ? String(options.source).split("flash").join(name) : String(options.source).split("html5").join(name); if (options.trackerObj) { if (options.trackerObj.vars.catalogVarName) { variableName = options.trackerObj.vars.catalogVarName ? options.trackerObj.vars.catalogVarName : variableName; } if (options.trackerObj.vars._setAccountId) { gaPrefix = options.trackerObj.vars._setAccountId+"."; } } var trackedEvent = variableName + options.trackedEvent; //var trackedEvent = options.source + options.trackedEvent; switch (options.type) { case 'Omniture': var s = window['s'] s.pageName = trackedEvent s.t() break; case 'XITI': trackedEvent = trackedEvent.split('/').join('::'); xt_med('F',window.xtn2,trackedEvent); break; case 'GA4': if (!options.trackerObj.vars.custom_dimensions || options.trackerObj.vars.custom_dimensions != "true") { //basic tracking var eventType = options.trackedEventObject.type; var eventName = options.trackedEventObject.eventName; var eventValues = options.trackedEventObject.eventValues ? options.trackedEventObject.eventValues : {}; eventValues['send_to'] = options.trackerObj.vars.id; if (eventName && eventType && eventType == "page_view") { gtag('event', eventName, eventValues); /* gtag('event', 'page_view', { page_title: eventName, page_location: eventName }); */ } else if (eventName && eventType && eventType == "event") { gtag('event', eventName, eventValues); } } else { } break; case 'GTM': if (typeof options.trackedEventObject.trackerType == "undefined" || (typeof options.trackedEventObject.trackerType != "undefined" && options.trackedEventObject.trackerType != options.trackerObj.type)) { return; } var gtmObj = { 'event': options.trackedEventObject.event } if (options.trackedEventObject.eventAction) { gtmObj['eventAction'] = options.trackedEventObject.eventAction; } if (options.trackedEventObject.eventLabel) { gtmObj['eventLabel'] = options.trackedEventObject.eventLabel; } if (options.trackedEventObject.eventParams) { for (var i in options.trackedEventObject.eventParams) { gtmObj[i] = options.trackedEventObject.eventParams[i]; } } dataLayer.push(gtmObj); break; case 'Piano': /* if (!pa) { console.log("Tracker Piano missing"); return; } */ if(!window.dataLayer) { console.log("dataLayer missing"); return; } /* var gdpr_consent = JSON.parse(localStorage.getItem('gdpr-cookies-v1')); if ((!gdpr_consent) || gdpr_consent && !gdpr_consent.analytical){ console.log("Piano no-consent, don't send event"); return; } */ if (options.trackedEventObject && options.trackedEventObject.eventParams) { /* for (var i in this.environ_configuration) { options.trackedEventObject.eventParams.data[i] = this.environ_configuration[i]; } var events_pia = events_pia || []; events_pia.push(options.trackedEventObject.eventParams); //console.log("event events_pia=", events_pia); //pa.privacy.setMode('optin'); // si l’utilisateur donne son consentement //pa.privacy.setMode('optout'); / si l’utilisateur ne donne pas son consentement //pa.sendEvents(events_pia);//send PA events */ var dataLayerObj = {}; //dataLayerObj.event = options.trackedEventObject.eventParams.event; //dataLayerObj.event_category = options.trackedEventObject.eventParams.event_category; dataLayerObj = JSON.parse(JSON.stringify(options.trackedEventObject.eventParams)); if (options.trackedEventObject.type == "page_view") { for (var i in this.environ_configuration) { if (!dataLayerObj[i]) { dataLayerObj[i] = this.environ_configuration[i]; } } } window.dataLayer.push(dataLayerObj); console.log("event window.dataLayer=", window.dataLayer); } break; case 'GA': // falltrough default: if (this.gaVersion === 'analytics') { if (options.trackedEventObject && options.trackedEventObject.type && options.trackedEventObject.type == "event") { var gaEvent = {hitType: 'event'}; gaEvent.eventCategory = variableName; if (typeof options.trackedEventObject.eventCategory != "undefined" && options.trackedEventObject.eventCategory != "") {gaEvent.eventCategory=options.trackedEventObject.eventCategory}; if (typeof options.trackedEventObject.eventAction != "undefined") {gaEvent.eventAction=options.trackedEventObject.eventAction}; if (typeof options.trackedEventObject.eventLabel != "undefined") {gaEvent.eventLabel=options.trackedEventObject.eventLabel}; if (typeof options.trackedEventObject.eventValue != "undefined") {gaEvent.eventValue=options.trackedEventObject.eventValue}; ga(gaPrefix+'send', gaEvent); } else { var gaPageViewValue = variableName + options.trackedEvent; ga(gaPrefix+'send', 'pageview', gaPageViewValue); } } else { window._gaq.push(['_trackPageview',trackedEvent]); } break; } if (this.useBD == true) { this.trackBD(options); } } else{ this.trackedEvents.push(options) } }, callTrackerQueue: function () { var trackedEvent = this.trackedEvents.pop() MainFrame.Tracker.callTracker(trackedEvent) }, callTrackerMockup: function (options) { var name = this.catalogue_name; var variableName = (String(options.source).indexOf("flash")>=0) ? String(options.source).split("flash").join(name) : String(options.source).split("html5").join(name); if (options.trackerObj) { if (options.trackerObj.vars.catalogVarName) { variableName = options.trackerObj.vars.catalogVarName ? options.trackerObj.vars.catalogVarName : variableName; } } switch (options.type) { case "GA4": if (!options.trackerObj.vars.custom_dimensions || options.trackerObj.vars.custom_dimensions != "true") { //basic tracking if (options.trackedEventObject) { var eventType = options.trackedEventObject.type; var eventName = options.trackedEventObject.eventName; var eventValues = options.trackedEventObject.eventValues ? options.trackedEventObject.eventValues : {}; eventValues['send_to'] = options.trackerObj.vars.id; if (eventName && eventType && eventType == "page_view") { console.log("TEST PAGEVIEW:"+options.type + " " + options.trackerObj.vars.id + ': ' + eventName+" ", eventValues); } else if (eventName && eventType && eventType == "event") { console.log("TEST EVENT:"+options.type + " " + options.trackerObj.vars.id + ": "+eventName+" ", eventValues); } } } else { } break; case 'GTM': if (typeof options.trackedEventObject.trackerType == "undefined" || (typeof options.trackedEventObject.trackerType != "undefined" && options.trackedEventObject.trackerType != options.trackerObj.type)) { return; } var gtmObj = { 'event': options.trackedEventObject.event } if (options.trackedEventObject.eventAction) { gtmObj['eventAction'] = options.trackedEventObject.eventAction; } if (options.trackedEventObject.eventLabel) { gtmObj['eventLabel'] = options.trackedEventObject.eventLabel; } if (options.trackedEventObject.eventParams) { for (var i in options.trackedEventObject.eventParams) { gtmObj[i] = options.trackedEventObject.eventParams[i]; } } console.log("TEST EVENT:" + options.type, gtmObj); break; case 'Piano': /* var gdpr_consent = JSON.parse(localStorage.getItem('gdpr-cookies-v1')); if ((!gdpr_consent) || gdpr_consent && !gdpr_consent.analytical){ console.log("Piano no-consent, don't send event"); return; } */ if (options.trackedEventObject && options.trackedEventObject.eventParams) { /* for (var i in this.environ_configuration) { options.trackedEventObject.eventParams.data[i] = this.environ_configuration[i]; } var events_pia = events_pia || []; events_pia.push(options.trackedEventObject.eventParams); console.log("Piano events_pia=", events_pia); */ var dataLayerObj = {}; dataLayerObj = JSON.parse(JSON.stringify(options.trackedEventObject.eventParams)); for (var i in this.environ_configuration) { if (!dataLayerObj[i]) { dataLayerObj[i] = this.environ_configuration[i]; } } console.log("add to window.dataLayer=", dataLayerObj); } break; default: var trackedEvent = variableName + options.trackedEvent; if (options.trackedEventObject && options.trackedEventObject.type && options.trackedEventObject.type == "event") { var gaEvent = {hitType: 'event'}; gaEvent.eventCategory = variableName; if (typeof options.trackedEventObject.eventCategory != "undefined" && options.trackedEventObject.eventCategory != "") {gaEvent.eventCategory=options.trackedEventObject.eventCategory}; if (typeof options.trackedEventObject.eventAction != "undefined") {gaEvent.eventAction=options.trackedEventObject.eventAction}; if (typeof options.trackedEventObject.eventLabel != "undefined") {gaEvent.eventLabel=options.trackedEventObject.eventLabel}; if (typeof options.trackedEventObject.eventValue != "undefined") {gaEvent.eventValue=options.trackedEventObject.eventValue}; console.log("TEST EVENT:"+options.type+" " + options.trackerObj.vars._setAccount + ": ", gaEvent); } else { console.log("TEST PAGEVIEW:"+options.type + " " + options.trackerObj.vars._setAccount + ': ' + trackedEvent); } } /* if (this.useBD == true) { this.trackBD(options); }*/ }, trackBD: function(options) { var url = 'https://a.secure-load.com/favicon.ico'; options.values.v = this.v var values = JSON.stringify(options.values) this.request({ url: url, xmlResponse: false, method: 'POST', formData: true, credentials: true, formDataParams: { app: this.base64encode('{\ "appId":"' + options.appId + '",\ "eventCode":"' + options.eventCode + '",\ "values":' + values + ',\ "appType":"' + options.source + '"\ }') }, onSuccess: function (data) { //console.log(data) }, onError: function (e) { //console.log('Eroare'); } }); }, request: function(options) { options = options || {}; var url = options.url, method = options.method || 'GET', onSuccess = options.onSuccess, onError = options.onError, ps = options.ps, formData = options.formData || null, formDataParams = options.formDataParams, credentials = options.credentials || false, xmlResponse = options.xmlResponse || false, jsonResponse = options.jsonResponse || false; if (options.onSucces) { onSuccess = options.onSucces; MainFrame.Ut.showError('Warning: the correct callback name parameter for the request method is "onSuccess"'); } if (typeof ps !== 'undefined') { var paramsParts = []; for (var paramName in ps) { var paramValue = ps[paramName], paramString = paramName + '=' + paramValue; paramsParts.push(paramString); } var paramsString = paramsParts.join('&'); var urlHasParams = (url.indexOf('?') !== -1); if (urlHasParams) { url += '&' + paramsString; } else { url += '?' + paramsString; } } if (typeof formDataParams !== 'undefined') { var formData = new FormData(); for (var paramName in formDataParams) { formData.append(paramName, formDataParams[paramName]); } } var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status == 200) { var response = xhr.responseText; if (xmlResponse) { response = xhr.responseXML; } else if (jsonResponse) { response = JSON.parse(response); } if (onSuccess) { onSuccess(response); } } else { if (onError) { onError(xhr); } } } //else onError(xhr); }; if (credentials) { xhr.withCredentials = true; } if (url) { xhr.open(method, url, true); xhr.send(formData); } }, keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", base64encode: function (input) { var keyStr = this.keyStr; input = escape(input); var output = '', chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; do { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4); chr1 = chr2 = chr3 = ''; enc1 = enc2 = enc3 = enc4 = ''; } while (i < input.length); return output; }, base64decode: function (input) { var keyStr = this.keyStr; var output = '', chr1, chr2, chr3, enc1, enc2, enc3, enc4; // removing all characters that are not A-Z, a-z, 0-9, +, /, or = input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); var i = 0; do { enc1 = keyStr.indexOf(input.charAt(i++)); enc2 = keyStr.indexOf(input.charAt(i++)); enc3 = keyStr.indexOf(input.charAt(i++)); enc4 = keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } chr1 = chr2 = chr3 = ''; enc1 = enc2 = enc3 = enc4 = ''; } while (i < input.length); return unescape(output); }, isTestingServer:function() { var self = this; var testingServer = false; var currentDomain = window.location.hostname; self.disallowedDomains.forEach(function (domain) { var decodedDomain = self.base64decode(domain); if (currentDomain.indexOf(decodedDomain) !== -1) { testingServer = true; } }); var currentUrl = window.location.href; if (currentUrl.indexOf('trackingTest=true') !== -1) { testingServer = true; } //return false; return testingServer; } } // Production steps of ECMA-262, Edition 5, 15.4.4.18 // Reference: http://es5.github.io/#x15.4.4.18 if (!Array.prototype.forEach) { Array.prototype.forEach = function(callback, thisArg) { var T, k; if (this == null) { throw new TypeError(' this is null or not defined'); } // 1. Let O be the result of calling ToObject passing the |this| value as the argument. var O = Object(this); // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length". // 3. Let len be ToUint32(lenValue). var len = O.length >>> 0; // 4. If IsCallable(callback) is false, throw a TypeError exception. // See: http://es5.github.com/#x9.11 if (typeof callback !== "function") { throw new TypeError(callback + ' is not a function'); } // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. if (arguments.length > 1) { T = thisArg; } // 6. Let k be 0 k = 0; // 7. Repeat, while k < len while (k < len) { var kValue; // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk. // This step can be combined with c // c. If kPresent is true, then if (k in O) { // i. Let kValue be the result of calling the Get internal method of O with argument Pk. kValue = O[k]; // ii. Call the Call internal method of callback with T as the this value and // argument list containing kValue, k, and O. callback.call(T, kValue, k, O); } // d. Increase k by 1. k++; } // 8. return undefined }; } MainFrame.Tracker.initializeTracker(); })();