Артём Мáлков

Как отобразить IP-адреса посетителей в «Яндекс.Метрике» на PHP?

30 сен26 комм

Когда я еще только начинал заниматься сайтами, в «Яндекс.Метрике» было отображение IP-адреса посетителей на странице статистики. Спустя время «Метрика» обновилась, а с ней по непонятным причинам исчезли и IP-адреса.

Но мы с вами знаем, что «Яндекс.Метрика» является одним из лидирующих инструментов для веб-аналитики и, зная IP посетителя, если он, например, копирует материалы с вашего сайта, вы сможете, тем самым, заблокировать доступ к вашему ресурсу.

Несмотря на то, что «Яндекс» убрал отображение IP, мы с помощью небольшой модификации счетчика можем исправить это положение.

Все что вам необходимо сделать, это сразу после кода счетчика Метрики, в общем теге <script> добавить код:

<?php

	if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
	
		$user_ip = $_SERVER['HTTP_CF_CONNECTING_IP'];

	} else {

		$user_ip = $_SERVER['REMOTE_ADDR'];
	
	}

?>

ym(XXXXXXXX, "params", {
	ip_adress: "<?php echo $user_ip; ?>"
});

XXXXXXXX здесь вы заменяете на ID вашего счетчика. Узнать его вы можете в Яндекс.Метрике или в скрипте счетчика, в блоке, похожем на:

ym(XXXXXXXX, "init", {
	clickmap: true,
	trackLinks: true,
	accurateTrackBounce: true,
	webvisor: true
});

Теперь, если вы перейдете в «Яндекс.Метрике» в «Вебвизор», то в столбце «Параметры визита» сможете обнаружить IP-адрес посетителя.

Как отобразить IP-адреса посетителей в «Яндекс.Метрике» на PHP?

Обратите внимание, что IP будет отображаться только у новых посетителей.

Если же столбца «Параметры визита» у вас нет – выберите его из списка, нажатием на кнопку «Столбцы»:

Как отобразить IP-адреса посетителей в «Яндекс.Метрике» на PHP?

Также, помимо «Вебвизора», IP-адреса для просмотра доступны в «Параметрах визита» (Отчеты - Стандартные отчеты - Содержание - Параметры визитов).

Не забывайте, что для работы этого способа на сайте должна быть поддержка PHP.

Рекомендуем к просмотру
Как создать и настроить цель типа «JavaScript-событие» в «Яндекс.Метрике»?
Статьи и советы
«Нулевые» посещения, или Как я уменьшил процент отказов в Яндекс.Метрике
Статьи и советы
Как подключить «Яндекс.Метрику» к сайту?
Статьи и советы
26
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    30
      •  Проверенный
    20 окт в 22:28

    Здравствуйте!

    На сегодняшний день, код работает?

      • 1
      1066
        •  Команда Pandoge
      22 окт в 04:17

      Sergey, здравствуйте! Думаю да.

      Отпишитесь о результатах, если будете использовать.

      • 2
      30
        •  Проверенный
      22 окт в 09:45

      Артём Мáлков, Да работает, спасибо!

      22.10.2021

      • 1
      1
        •  Пользователь
      22 окт в 15:20

      Артём Мáлков, здравствуйте, нужна ваша помощь, как я могу вам написать? По личному поводу

      • 1
      1066
        •  Команда Pandoge
      24 окт в 23:43

      Татьяна Юрина, здравствуйте! Через форму обратной связи внизу сайта.

      • 1
      1066
        •  Команда Pandoge
      24 окт в 23:43

      Sergey, вам спасибо за обратную связь.

    • 1
    5
      •  Пользователь
    21 окт в 10:12

    Здравствуйте! Попробовал воспользоваться Вашим кодом для отображения ip в яндекс метрике, счётчик перестал работать вообще! В чём может быть проблема? Сайт у Beget на WordPress, счётчик добавлял через тему Root. Спасибо!

      • 1
      5
        •  Пользователь
      26 окт в 08:43

      Здравствуйте! Информация ещё актуальна?

      • 1
      1066
        •  Команда Pandoge
      27 окт в 01:29

      Kirill, здравствуйте! Покажите итоговый код счетчика.

      • 1
      5
        •  Пользователь
      27 окт в 09:54

      Здравствуйте, Артём! Вот код:

      <!-- Yandex.Metrika counter -->

      <script type="text/javascript" >

      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};

      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})

      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");

      ym(хххххххх, "init", {

      clickmap:true,

      trackLinks:true,

      accurateTrackBounce:true,

      webvisor:true

      });

      <?php

      if(isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {

      $user_ip = $_SERVER["HTTP_CF_CONNECTING_IP"];

      } else {

      $user_ip = $_SERVER["REMOTE_ADDR"];

      }

      ?>

      ym(хххххххх, "params", {

      ip_adress: "<?php echo $user_ip; ?>"

      });

      </script>

      <noscript><div><img src="https://mc.yandex.ru/watch/хххххххх" style="position:absolute; left:-9999px;" alt="" /></div></noscript>

      <!-- /Yandex.Metrika counter -->

      • 1
      5
        •  Пользователь
      4 ноя в 09:21

      Здравствуйте! Есть решение по моему вопросу?

      • 1
      5
        •  Пользователь
      2 дек в 19:16

      Добрый день! Так и нет решения по вопросу?!

      • 1
      1066
        •  Команда Pandoge
      4 дек в 02:58

      Kirill, здравствуйте!

      1. хххххххх (во всех местах) заменили на ID вашего счетчика?

      2. Код вставляете в файл темы или в виджет сайта?

    • 1
    4
      •  Пользователь
    10 авг в 23:29

    Здравствуйте, на сегодняшний день этот способ работает?

      • 1
      1066
        •  Команда Pandoge
      10 авг в 23:57

      Ольга, Да.

      Мы всю информацию на страницах сайта стараемся держать в актуальном виде.

      • 1
      1066
        •  Команда Pandoge
      10 авг в 23:59

      Ольга, причем, если Вы внимательно читали комментарии, то могли заметить, что информация обновлялась 4 дня назад.

      • 2
      4
        •  Пользователь
      11 авг в 00:08

      Артем Мáлков, да, прошу прощения, только заметила комментарий об обновлении.

      Если Вам не сложно, могли бы Вы "на пальцах" для неопытных показать как должен выглядеть весь код метрики вместе с дополнением, о которым написано выше. Не уверена, что вставляю его в нужное место.

      • 1
      1066
        •  Команда Pandoge
      11 авг в 02:38

      Ольга, С удовольствием.

      Пришлите полный код Вашего счетчика метрики.

      • 1
      4
        •  Пользователь
      11 авг в 16:47

      Артем Мáлков,

      <!-- Yandex.Metrika counter -->
      <script type="text/javascript" >
         (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
         m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
         (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
      
         ym(ХХХХХХХХ, "init", {
              clickmap:true,
              trackLinks:true,
              accurateTrackBounce:true,
              webvisor:true
         });
      </script>
      <noscript><div><img src="https://mc.yandex.ru/watch/ХХХХХХХХ" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
      <!-- /Yandex.Metrika counter -->
      • 1
      1066
        •  Команда Pandoge
      12 авг в 03:46

      Ольга, код такой:

      <!-- Yandex.Metrika counter -->
      <script type="text/javascript" >
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
      
      ym(ХХХХХХХХ, "init", {
      clickmap:true,
      trackLinks:true,
      accurateTrackBounce:true,
      webvisor:true
      });
      
      <?php
      
      	if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
      	
      		$user_ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
      
      	} else {
      
      		$user_ip = $_SERVER['REMOTE_ADDR'];
      	
      	}
      
      ?>
      
      ym(XXXXXXXX, "params", {
      	ip_adress: "<?php echo $user_ip; ?>"
      });
      
      </script>
      <noscript><div><img src="https://mc.yandex.ru/watch/ХХХХХХХХ" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
      <!-- /Yandex.Metrika counter -->

      Проверьте после добавления исходный код сайта. В строке:

      ip_adress: "<?php echo $user_ip; ?>"

      Должен появится Ваш IP-адрес. Если этого не произошло - напишите в комментариях, будем думать в чем проблема.

      • 4
      4
        •  Пользователь
      12 авг в 18:43

      Артем Мáлков,

      спасибо огромное за помощь! все работает, появились данные IP посетителей))

    • 1
    1066
      •  Команда Pandoge
    6 авг в 13:42

    Инструкция обновлена под новый счетчик Яндекс.Метрики.

    • 1
    766
      •  Гости
    9 апр в 09:22

    на дату 9.04.18 не работает данный способ.

    Устал уже бороться с кликерами и роботами, чтобы вычсилить IP

    сливают деньги с рекламы, а целевых клиентов единицы.

    Такое ощущение, что яндекс специально убрал показ АйПи

    для каких то целей.

      • 5
      1066
        •  Команда Pandoge
      9 апр в 13:45

      Alex, способ рабочий. Только что проверил на одном из сайтов.

      • 0
      1
        •  Пользователь
      21 мар в 09:57

      Артём Мáлков, добрый день, на данный момент работает?

      Проверили на своем сайте - в метрике не выводятся IP

Подняться наверх
«Pandoge» - помощник вебмастера