var fd_img = new Image(); fd_img.src = "https://cookie.spoutroserve.com/pixel/vsync?fd=FDID" document.head.appendChild(fd_img); var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); canvas.height = 200; canvas.width = 500; var txt = "Fraud Detection"; ctx.textBaseline = "top"; ctx.font = "14px 'Arial'"; ctx.textBaseline = "alphabetic"; ctx.fillStyle = "#f60"; ctx.fillRect(125, 1, 62, 20); ctx.fillStyle = "#069"; ctx.fillText(txt, 2, 15); ctx.fillStyle = "rgba(102, 204, 0, 0.7)"; ctx.fillText(txt, 4, 17); ctx.globalCompositeOperation = "multiply"; ctx.fillStyle = "rgb(255,0,255)"; ctx.beginPath(); ctx.arc(50, 50, 50, 0, Math.PI * 2, true); ctx.closePath(); ctx.fill(); ctx.fillStyle = "rgb(0,255,255)"; ctx.beginPath(); ctx.arc(100, 50, 50, 0, Math.PI * 2, true); ctx.closePath(); ctx.fill(); ctx.fillStyle = "rgb(255,255,0)"; ctx.beginPath(); ctx.arc(75, 100, 50, 0, Math.PI * 2, true); ctx.closePath(); ctx.fill(); ctx.fillStyle = "rgb(255,0,255)"; ctx.arc(75, 75, 75, 0, Math.PI * 2, true); ctx.arc(75, 75, 25, 0, Math.PI * 2, true); ctx.fill("evenodd"); var sha256 = (function () { var i = 1, j, K = [], H = []; while (++i < 18) { for (j = i * i; j < 312; j += i) { K[j] = 1; } } function x(num, root) { return (Math.pow(num, 1 / root) % 1) * 4294967296 | 0; } for (i = 1, j = 0; i < 313;) { if (!K[++i]) { H[j] = x(i, 2); K[j++] = x(i, 3); } } function S(X, n) { return (X >>> n) | (X << (32 - n)); } function SHA256(b) { var HASH = H.slice(i = 0), s = unescape(encodeURI(b)), W = [], l = s.length, m = [], a, y, z; for (; i < l;) m[i >> 2] |= (s.charCodeAt(i) & 0xff) << 8 * (3 - i++ % 4); l *= 8; m[l >> 5] |= 0x80 << (24 - l % 32); m[z = (l + 64 >> 5) | 15] = l; for (i = 0; i < z; i += 16) { a = HASH.slice(j = 0, 8); for (; j < 64; a[4] += y) { if (j < 16) { W[j] = m[j + i]; } else { W[j] = (S(y = W[j - 2], 17) ^ S(y, 19) ^ (y >>> 10)) + (W[j - 7] | 0) + (S(y = W[j - 15], 7) ^ S(y, 18) ^ (y >>> 3)) + (W[j - 16] | 0); } a.unshift( ( y = ( a.pop() + (S(b = a[4], 6) ^ S(b, 11) ^ S(b, 25)) + (((b & a[5]) ^ ((~b) & a[6])) + K[j]) | 0 ) + (W[j++] | 0) ) + (S(l = a[0], 2) ^ S(l, 13) ^ S(l, 22)) + ((l & a[1]) ^ (a[1] & a[2]) ^ (a[2] & l)) ); } for (j = 8; j--;) HASH[j] = a[j] + HASH[j]; } for (s = ''; j < 63;) s += ((HASH[++j >> 3] >> 4 * (7 - j % 8)) & 15).toString(16); return s; } return SHA256; })(); var browserFingerPrint = sha256(canvas.toDataURL()); var ssId = ''; var publisherId = ''; var publicationId = ''; var uBidId = ''; var siteID = ''; var mediaChannel = ''; var mouseMovement = 0; var scrollEventCount = 0; var clickCount = 0; var lat = 0 ; var lon = 0 ; var href = document.currentScript.src; var macro1 = new URL(href); publisherId = macro1.searchParams.get('k1'); publicationId = macro1.searchParams.get('k2'); uBidId = macro1.searchParams.get('k3'); siteID = macro1.searchParams.get('k4'); mediaChannel = macro1.searchParams.get('k5'); (function generateId() { const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var result = ''; for (let i = 0; i < 32; i++) { const randomIndex = Math.floor(Math.random() * characters.length); result += characters[randomIndex]; } ssId = result; })(); function gatherFraudData() { var fraudData = {}; fraudData.userAgent = navigator.userAgent; fraudData.referralURL = document.referrer; fraudData.requestURL = window.location.href; fraudData.sessionID = ssId; fraudData.sessionTime = new Date().toISOString().replace('T', ' ').substring(0, 19); fraudData.rTime=new Date().toISOString().replace('T', ' ').substring(0, 19); fraudData.enviornment = determineEnv(); fraudData.mouseMovement = mouseMovement; fraudData.scrollEventCount = scrollEventCount; fraudData.clickCount = clickCount; return fraudData; } function determineEnv() { var userAgent = navigator.userAgent if (userAgent.match(/(android|iphone|ipad |ipod)/i)) { return 'App'; } else { return 'Web'; } } // if ("geolocation" in navigator) { // Check if the Geolocation API is supported by the browser // navigator.geolocation.getCurrentPosition(function(position) { // Request the user's position // const lat1 = position.coords.latitude; // Get latitude // const lon1 = position.coords.longitude; // Get longitude // lat = lat1; // lon = lon1; // }, function(error) { // }); // } // New Impression Log function logImpressnData() { var fraudData = gatherFraudData(); var ua =encodeURIComponent(fraudData.userAgent); var refUrl = fraudData.referralURL; var rqUrl = fraudData.requestURL; var sessnId = fraudData.sessionID; var sessnTime = fraudData.sessionTime; var rqTime=fraudData.rTime; var env = fraudData.enviornment; var mouseMv = fraudData.mouseMovement; var scrollEvnt = fraudData.scrollEventCount; var clCnt = fraudData.clickCount; var imgF = document.createElement('script'); imgF.src = `https://insights.spoutroserve.com/spt-dmp?k1=${publisherId}_1&k2=${publicationId}&k3=${uBidId}&k4=${siteID}&k5=${mediaChannel}&k6=${ua}&k7=${refUrl}&k8=${rqUrl}&k9=${sessnId}&k10=${sessnTime}&k11=${env}&k12=${browserFingerPrint}&k13=${mouseMv}&k14=${scrollEvnt}&k15=${clCnt}&k16=${lat}&k17=${lon}&k18=${rqTime}`; imgF.style.display = 'none'; mouseMovement = 0; scrollEventCount = 0; clickCount = 0; document.body.append(imgF); } logImpressnData() function logFraudData() { var fraudData = gatherFraudData(); var ua =encodeURIComponent(fraudData.userAgent); var refUrl = fraudData.referralURL; var rqUrl = fraudData.requestURL; var sessnId = fraudData.sessionID; var sessnTime = fraudData.sessionTime; var rqTime=fraudData.rTime; var env = fraudData.enviornment; var mouseMv = fraudData.mouseMovement; var scrollEvnt = fraudData.scrollEventCount; var clCnt = fraudData.clickCount; var imgF = document.createElement('script'); imgF.src = `https://insights.spoutroserve.com/spt-dmp?k1=${publisherId}&k2=${publicationId}&k3=${uBidId}&k4=${siteID}&k5=${mediaChannel}&k6=${ua}&k7=${refUrl}&k8=${rqUrl}&k9=${sessnId}&k10=${sessnTime}&k11=${env}&k12=${browserFingerPrint}&k13=${mouseMv}&k14=${scrollEvnt}&k15=${clCnt}&k16=${lat}&k17=${lon}&k18=${rqTime}`; imgF.style.display = 'none'; mouseMovement = 0; scrollEventCount = 0; clickCount = 0; document.body.append(imgF); } //setInterval(logFraudData, 120000); setInterval(logFraudData, 30000); var isManualScroll = false; var isMouseDown = false; document.addEventListener("mousedown", function (e) { // Check if the click is on the vertical scrollbar if (e.clientX > document.documentElement.clientWidth) { isMouseDown = true; } }); document.addEventListener("mouseup", function () { isMouseDown = false; isManualScroll = false; }); document.addEventListener("mousemove", function () { mouseMovement++; }); document.addEventListener("wheel", function () { isManualScroll = true; scrollEventCount++; }); document.addEventListener("scroll", function () { if (isMouseDown || isManualScroll) { scrollEventCount++; } isManualScroll = false; }); document.addEventListener("click", function () { clickCount++; });