View difference between Paste ID: 2ZVD6EcS and 9e8dQ3CL
SHOW: | | - or go back to the newest paste.
1
<script>
2
  // Функция для извлечения параметра из URL
3
  function getUrlParameter(name) {
4
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
5
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
6
    var results = regex.exec(location.search);
7
    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
8
  }
9
10
  // Функция для извлечения значения из utm_content
11
  function extractSourceFromUtmContent(utmContent) {
12
    var match = utmContent.match(/\|source:([^|]+)\|/);
13
    return match ? match[1] : null;
14
  }
15
16
  // Функция, которая будет выполняться после загрузки Яндекс.Метрики
17
  function afterYandexMetricaLoaded() {
18
    var yaID;
19
    // Получение Client ID
20-
    ym(23474044, 'getClientID', function(clientID) {
20+
    ym(88964813, 'getClientID', function(clientID) {
21
      yaID = clientID;
22
      console.log("ClientID", yaID);
23
24
      // Получение значения source из utm_content
25
      var utmContent = getUrlParameter('utm_content');
26
      var source = extractSourceFromUtmContent(utmContent);
27
      console.log("Source", source);
28
29
      // Получение IP-адреса
30
      var xhr = new XMLHttpRequest();
31
      xhr.open('GET', 'https://api.ipify.org?format=json', true);
32
      xhr.onreadystatechange = function() {
33
        if (xhr.readyState == 4 && xhr.status == 200) {
34
          var response = JSON.parse(xhr.responseText);
35
          var ipAddress = response.ip;
36
          console.log("IP Address", ipAddress);
37
38
          // Отправка IP-адреса и source на сервер как параметры
39-
          ym(23474044, "params", {
39+
          ym(88964813, "params", {
40
            clientID: yaID,
41
            ipAddress: ipAddress,
42
            source: source,
43
          });
44
        }
45
      };
46
      xhr.send();
47
    });
48
  }
49
50
  // Подписываемся на событие загрузки Яндекс.Метрики
51
  document.addEventListener('DOMContentLoaded', afterYandexMetricaLoaded);
52
</script>
53