1'use strict'; 2 3/** 4 * UTM Tracker â Ð·Ð°Ñ Ð²Ð°Ñ ÑекламнÑÑ Ð¿Ð°ÑамеÑÑов из URL и ÑÐ¾Ñ Ñанение в cookies. 5 * 6 * Ð¡Ð¾Ñ ÑанÑеÑ: utm_source, utm_medium, utm_campaign, utm_content, utm_term, 7 * yclid, roistat, roistat_referrer, roistat_pos. 8 * ÐолÑÑÐ°ÐµÑ ClientID ЯндекÑ.ÐеÑÑики ÑеÑез ym() API. 9 * 10 * ÐÑки живÑÑ 30 дней, не заÑиÑаÑÑÑÑ Ð¿Ñи пеÑÐµÑ Ð¾Ð´Ðµ Ð¼ÐµÐ¶Ð´Ñ ÑÑÑаниÑами, 11 * обновлÑÑÑÑÑ ÑолÑко еÑли в URL пÑиÑли новÑе паÑамеÑÑÑ. 12 */ 13(function () { 14 var COOKIE_TTL_DAYS = 30; 15 var COUNTER_ID = 57201670; 16 17 var PARAMS = [ 18 'utm_source', 19 'utm_medium', 20 'utm_campaign', 21 'utm_content', 22 'utm_term', 23 'yclid', 24 'roistat', 25 'roistat_referrer', 26 'roistat_pos' 27 ]; 28 29 function setCookie(name, value, days) { 30 var d = new Date(); 31 d.setTime(d.getTime() + days * 86400000); 32 document.cookie = name + '=' + encodeURIComponent(value) + 33 ';expires=' + d.toUTCString() + 34 ';path=/;SameSite=Lax'; 35 } 36 37 function getSearchParams() { 38 var result = {}; 39 var search = window.location.search.replace(/^\?/, ''); 40 if (!search) { 41 return result; 42 } 43 var pairs = search.split('&'); 44 for (var i = 0; i < pairs.length; i++) { 45 var kv = pairs[i].split('='); 46 if (kv.length === 2) { 47 result[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1]); 48 } 49 } 50 return result; 51 } 52 53 // Ð¡Ð¾Ñ ÑанÑем паÑамеÑÑÑ Ð¸Ð· URL в кÑки 54 var urlParams = getSearchParams(); 55 var hasAnyParam = false; 56 57 for (var i = 0; i < PARAMS.length; i++) { 58 var param = PARAMS[i]; 59 if (urlParams[param] !== undefined && urlParams[param] !== '') { 60 hasAnyParam = true; 61 break; 62 } 63 } 64 65 if (hasAnyParam) { 66 for (var j = 0; j < PARAMS.length; j++) { 67 var p = PARAMS[j]; 68 var val = urlParams[p]; 69 if (val !== undefined && val !== '') { 70 setCookie('_snt_' + p, val, COOKIE_TTL_DAYS); 71 } 72 } 73 } 74 75 // ClientID ЯндекÑ.ÐеÑÑики 76 if (typeof ym === 'function') { 77 try { 78 ym(COUNTER_ID, 'getClientID', function (clientID) { 79 if (clientID) { 80 setCookie('_snt_ym_client_id', clientID, COOKIE_TTL_DAYS); 81 } 82 }); 83 } catch (e) {} 84 } 85})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.