var EziAnalyticsData = { viewStart: new Date().getTime(), mouseMove: [], nextPing: null, idleTimer: 0, doNotTrack: navigator.doNotTrack }; var EziAnalyticsScript = { request: function(data) { if (EziAnalyticsData.doNotTrack) return; EziAnalyticsData.nextPing = new Date().getTime() + 20000; data = data || {}; navigator.sendBeacon("https://log.ezianalytics.com/", JSON.stringify({ action: data.action || "ping", scroll: [window.scrollX, window.scrollY], screen: [screen.width, screen.height], time: new Date().getTime(), url: window.location.href, title: document.title, data, extra: EziAnalyticsData })); }, ping: function() { setTimeout(EziAnalyticsScript.ping, 1000); if (EziAnalyticsData.nextPing && new Date().getTime() > EziAnalyticsData.nextPing) EziAnalyticsScript.request(); } }; EziAnalyticsScript.ping(); EziAnalyticsScript.request(); window.addEventListener("mousemove",function(event){ EziAnalyticsData.mouseMove = [event.clientX, event.clientY]; }); window.addEventListener("beforeunload", () => EziAnalyticsScript.request({ action: "unload" })); window.addEventListener("focus", () => EziAnalyticsScript.request({ action: "focus" })); window.addEventListener("blur", () => EziAnalyticsScript.request({ action: "blur" })); window.addEventListener("popstate", () => EziAnalyticsScript.request({ action: "popstate" })); window.addEventListener("click", () => EziAnalyticsScript.request({ action: "click" }));