<ins class='dcmads' style='display:inline-block;width:728px;height:90px;'
data-dcm-placement='N4492.2402704COGNITIVCORP./B31082225.384735191'
data-dcm-rendering-mode='script'
data-dcm-https-only
data-dcm-api-frameworks='[APIFRAMEWORKS]'
data-dcm-omid-partner='[OMIDPARTNER]'
data-dcm-ltd='false'
data-dcm-resettable-device-id=''
data-dcm-app-id=''>
<script src='https://www.googletagservices.com/dcm/dcmads.js'></script>
<script>
window.document.name = 'ad-iframe'
window.parent.getAdIframe = function getAdIframe(name) {
const iframes = this.document.getElementsByTagName('iframe');
for (let i = 0; i < iframes.length; i++) {
if (iframes[i].name === name) return iframes[i];
}
return null;
}
window.clickEventHandlers = function clickEventHandlers(event_name, event) {
var _event$target, _event$target$nodeNam;
const target_tag = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : (_event$target$nodeNam = _event$target.nodeName) === null || _event$target$nodeNam === void 0 ? void 0 : _event$target$nodeNam.toLowerCase();
switch (target_tag) {
case 'button':
{
return this.createTrackedListItemElement(event_name);
}
default:
{
return this.createTrackedListItemElement(event_name);
}
}
}
window.createTrackedListItemElement = function createTrackedListItemElement(event_name) {
const {
document
} = window.parent;
const container = document.getElementById('event_logs_container');
const li = document.createElement('li');
li.innerText += `${event_name}: ${new Date().toISOString()}`;
container === null || container === void 0 ? void 0 : container.prepend(li);
}
;(function hoverMacros() {
let adInViewTime = 0;
let lastViewStartTime = new Date().getTime();
window.document.addEventListener('mouseenter', () => {
lastViewStartTime = new Date().getTime();
trackEvent(true);
});
window.document.addEventListener('mouseleave', () => {
adInViewTime += new Date().getTime() - lastViewStartTime;
trackEvent(false);
});
// TODO: Should be backend integration
function trackEvent(is_hovered) {
const {
document
} = window.parent;
const container = document.getElementById('event_logs_container');
if (container) {
const li = document.createElement('li');
const time_spent = Math.round(adInViewTime / 1000);
const text = is_hovered ? "user's cursor is on the banner" : `user's cursor left the banner. Total time spent ${time_spent} sec`;
console.log(text);
li.innerText = text;
container.prepend(li);
}
}
// TODO: sendBeacon
})();;(function viewportMacros() {
let adInViewTime = 0;
let lastViewStartTime = new Date().getTime();
const observer = new IntersectionObserver(onIntersection, {
root: null,
threshold: 0.5
});
function onIntersection(entries) {
entries.forEach(entry => {
if (entry.isIntersecting) {
lastViewStartTime = new Date().getTime();
} else {
adInViewTime += new Date().getTime() - lastViewStartTime;
}
trackEvent(entry.isIntersecting);
});
}
console.log({
width: window.parent.getAdIframe(window.name).clientWidth,
height: window.parent.getAdIframe(window.name).clientHeight
});
observer.observe(window.parent.getAdIframe(window.name));
// TODO: Should be backend integration
function trackEvent(is_intersecting) {
const {
document
} = window.parent;
const container = document.getElementById('event_logs_container');
if (container) {
const li = document.createElement('li');
const time_spent = Math.round(adInViewTime / 1000);
const text = is_intersecting ? 'banner is visible on the page' : `banner was hidden. Total time visible ${time_spent} sec`;
console.log(text);
li.innerText = text;
container.prepend(li);
}
}
// TODO: sendBeacon
})();
</script>
</ins>
15
8
222KB
528KB
305.0ms
420.0ms
414.0ms