// Function to get UTM parameters from URL function getUTMParameters() { const urlParams = new URLSearchParams(window.location.search); const utmParams = {}; ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'].forEach(param => { if (urlParams.has(param)) { utmParams[param] = urlParams.get(param); } }); return utmParams; } // Function to store UTM parameters function storeUTMParameters() { const utmParams = getUTMParameters(); if (Object.keys(utmParams).length > 0) { sessionStorage.setItem('utmParams', JSON.stringify(utmParams)); } } // Function to append UTM parameters to a URL function appendUTMParameters(url) { const storedParams = sessionStorage.getItem('utmParams'); if (storedParams) { const utmParams = JSON.parse(storedParams); const urlObj = new URL(url); Object.keys(utmParams).forEach(key => { urlObj.searchParams.set(key, utmParams[key]); }); return urlObj.toString(); } return url; } // Function to update all links on the page function updateLinks() { const links = document.querySelectorAll('a'); links.forEach(link => { if (link.href.startsWith(window.location.origin)) { link.href = appendUTMParameters(link.href); } }); } // Run on page load function initUTMPersistence() { storeUTMParameters(); updateLinks(); } // Make the init function globally accessible window.initUTMPersistence = initUTMPersistence;