PageSourceSearch

https://www.sntclub.ru/local/templates/main_site/js/utm-tracker.js?17894738232619

js sntclub.ru collected 2026-10-01 10:27:13 UTC 2,619 bytes, 85 lines download raw bytes

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.