(function() { 'use strict'; // Конфигурация const COOKIE_NAME = 'utm_marks'; const COOKIE_DAYS = 365; const COOKIE_DOMAIN = '.cbo.ru'; // Получаем UTM-метки и referrer function getParams() { const params = new URLSearchParams(window.location.search); const data = {}; // UTM-метки const utmKeys = [ 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content' ]; let hasUtm = false; utmKeys.forEach(key => { const value = params.get(key); if (value && value.trim() !== '') { data[key] = value.trim(); hasUtm = true; } }); // Referrer if (document.referrer && document.referrer.trim() !== '') { try { const referrerUrl = new URL(document.referrer); const currentDomain = COOKIE_DOMAIN.replace(/^\./, ''); // убираем точку в начале // Проверяем, не содержит ли referrer текущий домен if (!referrerUrl.hostname.includes(currentDomain)) { data.referrer = document.referrer.trim(); } } catch (e) { // Если URL некорректный - просто не сохраняем } } return hasUtm ? data : (data.referrer ? data : null); } // Устанавливаем cookie function setCookie(name, value, days) { const date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); const expires = "expires=" + date.toUTCString(); const domain = 'domain=' + COOKIE_DOMAIN + ';'; document.cookie = name + "=" + encodeURIComponent(JSON.stringify(value)) + ";" + expires + ";path=/;" + domain + "SameSite=Lax"; } // Основная функция function trackUtm() { const params = getParams(); if (params) { setCookie(COOKIE_NAME, params, COOKIE_DAYS); // console.log('Данные сохранены в cookie:', params); } } // Запускаем сразу trackUtm(); })();