(function() {
var SID = localStorage.getItem('dsid') || (function(){
var id = Math.random().toString(36).slice(2) + Date.now().toString(36);
localStorage.setItem('dsid', id); return id;
})();
var params = new URLSearchParams(window.location.search);
var base = {
site: 'digisimma.com',
page: window.location.pathname,
session_id: SID,
referrer: document.referrer,
utm_source: params.get('utm_source'),
utm_medium: params.get('utm_medium'),
utm_campaign: params.get('utm_campaign'),
fbclid: params.get('fbclid'),
timestamp: new Date().toISOString(),
user_agent: navigator.userAgent.substring(0,200),
viewport: { w: window.innerWidth, h: window.innerHeight }
};
function track(event, extra) {
fetch('https://dashboard.digisimma.com/api/analytics/track', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(Object.assign({}, base, { event: event }, extra || {})),
signal: AbortSignal.timeout(30000),
}).catch(function(){});
}
track('pageview');
var scrolled = {};
window.addEventListener('scroll', function() {
var h = document.body.scrollHeight - window.innerHeight;
if (h <= 0) return;
var pct = Math.round((window.scrollY / h) * 100);
if (pct >= 50 && !scrolled[50]) { scrolled[50] = 1; track('scroll_50'); }
if (pct >= 90 && !scrolled[90]) { scrolled[90] = 1; track('scroll_90'); }
}, { passive: true });
var start = Date.now();
window.addEventListener('beforeunload', function() {
track('session_end', { duration: Math.round((Date.now() - start) / 1000) });
});
document.addEventListener('click', function(e) {
var el = e.target.closest('[data-track], .btn-cta, a[href*="tidycal"]');
if (el) track('click_cta', { label: el.textContent.slice(0,50) });
});
})();