var dm_pct_config = []; //setup start dm_pct_config = {"6477":[{"id":110,"main":true,"event":"scroll50","css_selector":null,"url_match":"^(https:\\\/\\\/)?(www.)?eucabal\\.de\\\/tipps\\-bei\\-einer\\-erk\u00e4ltung([a-zA-z\\d\\-\\_\\+\\#\\&\\?\\=\\%]+)?$"}],"6486":[{"id":111,"main":true,"event":"scroll50","css_selector":null,"url_match":"^(https:\\\/\\\/)?(www.)?eucabal\\.de\\\/Erk\u00e4ltung([a-zA-z\\d\\-\\_\\+\\#\\&\\?\\=\\%]+)?$"}]}; //setup end var dm_scroll50Events = []; var dm_visitEvents = []; var dm_clickEvents = []; window['dm_ccc_pct_init'] = function(){ if(Object.keys(dm_pct_config).length){ if(localStorage.getItem('dm_postClickMedia')){ lsData = JSON.parse(localStorage.getItem('dm_postClickMedia')); if(dm_pct_config[lsData['m']]){ var dm_pct_conf = dm_pct_config[lsData['m']]; for(i = 0; i < dm_pct_conf.length; i++){ if(dmMatchUrl(dm_pct_conf[i].url_match, dm_pct_conf[i].include_sub)){ switch(dm_pct_conf[i].event){ case "scroll50": var event = { "id": dm_pct_conf[i].id, "main": dm_pct_conf[i].main }; dm_scroll50Events.push(event); break; case "visit": var event = { "id": dm_pct_conf[i].id, "main": dm_pct_conf[i].main }; dm_visitEvents.push(event); break; case "click": if(dm_pct_conf[i].css_selector !== null){ var event = { "id": dm_pct_conf[i].id, "css_selector": dm_pct_conf[i].css_selector, "main": dm_pct_conf[i].main }; dm_clickEvents.push(event); } break; } } } } dmPctStartTracking(); } } } function dmMatchUrl(regexInput, include_sub){ var regex = dmUnicodeToChar(regexInput); var _regex = regex.replace("%D%", "([a-zA-z\\d\\-\\_\\+]+)?"); _regex = _regex.replace("%N%", "([\\d]+)?"); var urlRegex = new RegExp(_regex, 'g'); if(urlRegex.test(decodeURI(window.location.href))){ return true; }else{ return false; } return false; } function dmUnicodeToChar(text) { return text.replace(/\\u[\dA-F]{4}/gi, function (match) { return String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16)); }); } function dmConTrackScroll50(eventId, main) { if(typeof window['dm_ccc_pct_track'] == "function") { console.log('CONATIVE tracked 50% scroll: Event-ID ' + eventId); if(main){ window['dm_ccc_pct_track'](); } window['dm_ccc_pct_track']('event_id_'+eventId); } else { window.setTimeout(function(){ dmConTrackScroll50(eventId, main); },200); } } function trackScrollDepth(eventId, main) { var bodyNode = document.body; var htmlNode = document.documentElement; var windowHeight = isNaN(window.innerHeight) ? window.clientHeight : window.innerHeight; var bodyHeight = Math.max( bodyNode.scrollHeight, bodyNode.offsetHeight, htmlNode.clientHeight, htmlNode.scrollHeight, htmlNode.offsetHeight ); var bodyFiftyPercent = bodyHeight / 2 - windowHeight; var state, lastScrollTop = 0; window.addEventListener('scroll', function() { // determine the scrolled distance (px) var scrolled = window.pageYOffset || document.documentElement.scrollTop; // check scroll direction var checkScroll = (scrolled > lastScrollTop) ? true : false; lastScrollTop = scrolled; // check if user has scrolled 600 or more pixels down the page var check = (scrolled >= bodyFiftyPercent) ? true : false; if (checkScroll) { if (check && !state) { dmConTrackScroll50(eventId, main); state = true; } else if (!check && state) { state = false; } } }); }; function dmConTrackPageImpression(eventId, main) { console.log('CONATIVE tracked impression: Event-ID ' + eventId); if(main){ window['dm_ccc_pct_track'](); } window['dm_ccc_pct_track']('event_id_'+eventId); } function dmConPrepareTrackPageImpression(events){ if(typeof window['dm_ccc_pct_track'] == "function") { for(i = 0; i < events.length; i++){ dmConTrackPageImpression(events[i].id, events[i].main) } } else { window.setTimeout(function(){ dmConPrepareTrackPageImpression(events) },200); } } function dmTrackClickEvent(eventId, main){ if(typeof window['dm_ccc_pct_track'] == "function") { console.log('CONATIVE tracked click: Event-ID ' + eventId); if(main){ window['dm_ccc_pct_track'](); } window['dm_ccc_pct_track']('event_id_'+eventId); } else { window.setTimeout(function(){ dmTrackClickEvent(eventId, main); },200); } } function dmAddTrackClickEvent(eventId, cssSelector, main){ if(typeof window['dm_ccc_pct_track'] == "function") { var element = document.querySelectorAll(cssSelector); if(element.length){ element[0].addEventListener('click', function(){ dmTrackClickEvent(eventId, main); }, false); } }else{ window.setTimeout(function(){ dmAddTrackClickEvent(eventId, cssSelector, main); },200); } } function dmPctStartTracking(){ if(window.document.readyState == "complete") { _dmSetupDirectCall(); if(dm_visitEvents.length){ dmConPrepareTrackPageImpression(dm_visitEvents); } for(i = 0; i < dm_scroll50Events.length; i++){ trackScrollDepth(dm_scroll50Events[i].id, dm_scroll50Events[i].main); } for(i = 0; i < dm_clickEvents.length; i++){ dmAddTrackClickEvent(dm_clickEvents[i].id, dm_clickEvents[i].css_selector, dm_clickEvents[i].main); } } else { window.addEventListener("load", function(){ _dmSetupDirectCall(); }); for(i = 0; i < dm_scroll50Events.length; i++){ var dm_scroll50Event = dm_scroll50Events[i]; window.addEventListener("load", function(){ trackScrollDepth(dm_scroll50Event.id, dm_scroll50Event.main); }); } if(dm_visitEvents.length){ window.addEventListener("load", function(){ dmConPrepareTrackPageImpression(dm_visitEvents); }); } for(i = 0; i < dm_clickEvents.length; i++){ var dm_clickEvent = dm_clickEvents[i]; window.addEventListener("load", function(){ dmAddTrackClickEvent(dm_clickEvent.id, dm_clickEvent.css_selector, dm_clickEvent.main); }); } } } function _dmTrackEventDirect(obj, dm_pct_config){ if(typeof obj != "undefined"){ var event = obj; if(event.length != 2){ return; } if(typeof dm_pct_config[event[0]] == "undefined"){ return; } for(i = 0; i < dm_pct_config[event[0]].length; i++){ if(dm_pct_config[event[0]][i].id == event[1]){ switch(dm_pct_config[event[0]][i].event){ case "scroll50": dmConTrackScroll50(dm_pct_config[event[0]][i].id, dm_pct_config[event[0]][i].main); break; case "visit": dmConTrackPageImpression(dm_pct_config[event[0]][i].id, dm_pct_config[event[0]][i].main); break; case "click": dmTrackClickEvent(dm_pct_config[event[0]][i].id, dm_pct_config[event[0]][i].main); break; } } } } return; } function dmTrackEvent(media, eventId){ if(typeof window['dm_ccc_pct_direct'] == "function") { if(dm_pct_config[media][eventId]){ _dmTrackEventDirect(media, eventId); } }else{ window.setTimeout(function(){ if(dm_pct_config[media][eventId]){ _dmTrackEventDirect(media, eventId); } },200); } } function _dmSetupDirectCall(){ if(typeof window['dm_ccc_pct_direct'] == "undefined") window['dm_ccc_pct_direct'] = []; window['dm_ccc_pct_direct'].push = function(item) { if(window['dm_ccc_pct_direct'].indexOf(item) >= 0){ window['dm_ccc_pct_direct'][window['dm_ccc_pct_direct'].indexOf(item)] = item; }else{ Array.prototype.push.call(this, item); } this.onPush(item, dm_pct_config); }; window['dm_ccc_pct_direct'].onPush = function(obj, dm_pct_config) { _dmTrackEventDirect(obj, dm_pct_config); window['dm_ccc_pct_direct'].splice(window['dm_ccc_pct_direct'].indexOf(obj), 1); }; if(window['dm_ccc_pct_direct'].length){ for(var i = 0; i < window['dm_ccc_pct_direct'].length; i++){ _dmTrackEventDirect(window['dm_ccc_pct_direct'][i], dm_pct_config); } for(var i = 0; i < window['dm_ccc_pct_direct'].length; i++){ window['dm_ccc_pct_direct'].splice(window['dm_ccc_pct_direct'].indexOf(window['dm_ccc_pct_direct'][i]), 1); } } } var dm_con_pct_src = '//cdn.conative.de/libs/pct/pct.min.js'; var dm_con_pct_id = 'dm_con_pct_script_'+new Date().getTime(); var dm_con_pct_script = document.createElement('script'); dm_con_pct_script.setAttribute('type','text/javascript'); dm_con_pct_script.setAttribute('id',dm_con_pct_id); document.body.appendChild(dm_con_pct_script); dm_con_pct_script = document.querySelector('#'+dm_con_pct_id); dm_con_pct_script.setAttribute('src',dm_con_pct_src);