// Preserve UTM parameters across pages for GA4 (function() { const urlParams = new URLSearchParams(window.location.search); const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content']; // Store UTMs in sessionStorage (persists during browser session) utmParams.forEach(param => { const value = urlParams.get(param); if (value) { sessionStorage.setItem(param, value); } }); // Append stored UTMs to all internal links document.addEventListener('click', function(e) { const link = e.target.closest('a'); if (link && link.hostname === window.location.hostname) { const url = new URL(link.href); utmParams.forEach(param => { const stored = sessionStorage.getItem(param); if (stored && !url.searchParams.has(param)) { url.searchParams.set(param, stored); } }); link.href = url.toString(); } }); })();