Files
static/public/setCookie.js
2025-10-09 08:14:28 -03:00

37 lines
1.2 KiB
JavaScript

function setUtmCookies() {
// Helper: get query param from URL
function getQueryParam(param) {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(param);
}
// Helper: get cookie by name
function getCookie(name) {
const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
return match ? decodeURIComponent(match[2]) : null;
}
// Helper: set cookie if not already set
function setCookieIfEmpty(name, value, days = 90) {
if (!value) return;
if (getCookie(name)) return; // Don't overwrite existing cookie
const date = new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
document.cookie = `${name}=${encodeURIComponent(value)}; expires=${date.toUTCString()}; path=/; SameSite=Lax`;
}
// Get UTM params
const utmSource = getQueryParam('utm_source');
const utmMedium = getQueryParam('utm_medium');
const utmCampaign = getQueryParam('utm_campaign');
// Set cookies only if not already present
setCookieIfEmpty('utm_source', utmSource, 90);
setCookieIfEmpty('utm_medium', utmMedium, 90);
setCookieIfEmpty('utm_campaign', utmCampaign, 90);
}
// Run on page load
setUtmCookies();