let maxPercentage = 0 let maxPixels = 0 let scrollHeight =0; let currentPage = 0; const addAnalyticsEvent = async (eventName, data) => { console.info("addAnalyticsEvent event ", eventName, data) const _dataLayer = window['dataLayer']; if (_dataLayer) { _dataLayer.push({ ecommerce: null }); _dataLayer.push({ event: eventName, ...data, }) } try { setTimeout(() => { const res = window['posthog'] && window['posthog'].capture(eventName, data); console.info("posthog caputured", res) }, 100); } catch (err) { console.error("error while posthog event", err, err?.stack) } } const trackScrollDepth = () => { const last_scroll_percentage = Math.min(100, ((window.innerHeight + window.pageYOffset) / document.body.offsetHeight) * 100) console.log("leftPage event.....", 'maxPercentage.current', maxPercentage); addAnalyticsEvent('leftPage', { 'max_scroll_percentage': maxPercentage, 'max_scroll_pixels': maxPixels, 'last_scroll_percentage': last_scroll_percentage, 'last_scroll_pixels': window.innerHeight + window.pageYOffset, 'scrolled': maxPixels > 0, 'page': currentPage }); maxPixels = 0 maxPercentage = 0 } function handleScroll() { try{ const lastPercentage = Math.min(100, ((window.innerHeight + window.pageYOffset) / document.body.offsetHeight) * 100) const lastPixels = window.innerHeight + window.pageYOffset if (lastPercentage > maxPercentage) { maxPercentage = lastPercentage } if (lastPixels > maxPixels) { maxPixels = lastPixels if (scrollHeight < document.documentElement.scrollHeight) { scrollHeight = document.documentElement.scrollHeight; currentPage = currentPage + 1; console.log("current page index updated....", currentPage); trackScrollDepth(); } }} catch(e){console.log("Error scroll", e, e.stack)} } window.addEventListener('beforeunload', trackScrollDepth) window.addEventListener('scroll', handleScroll)