Как узнать Ip посетителей сайта с помощью Яндекс Метрики

Узнать Ip адрес посетителя с помощью Яндекс метрики

Если Вам необходимо добавить параметр Ip адрес в Яндекс Метрике и у вас возникают трудности, Вы можете обратится ко мне.

Стоимость услуги 1 000 ₽. Можно обратится через Kwork, регистрируйтесь по ссылке  Регистрация в Kwork и получайте 50% КЕШБЕКА с 1 заказа. Ссылка на услугу Передача параметров в Яндекс Метрику.

От вас необходимо:

  • Доступ к Яндекс Метрике
  • Доступ к файлу с кодом Яндекс Метрики или к конструктору сайтов
  • Доступ к Google tag manager — если настройки сделаны через GTM

Связаться со мной вы можете любым удобным способом

Довольно часто возникает потребность в определение Ip адреса посетителя сайта. В первую очередь эта информация актуальна для интернет магазинов и сайтов, которые активно привлекают трафик через Яндекс Директ, Гугл Adwords и другие системы контекстной и тизерной рекламы.

У меня же такая потребность возникла после того, как хулиганы пытались скликивать Директ, и надо было не показывать им рекламу.

Примерно в феврале 2014 года Яндекс убрал параметр определения Ip адреса посетителя, так же в будущем Яндекс тестирует шифрование текстов запросов в поисковой системе. В ближайшем будущем, мало того, что вы стандартными средствами не можете отследить Ip адрес вашего посетителя, так и  не сможете определить по какой поисковой фразе он зашел. Не знаю с чем это связано, но в первую очередь думаю с сео оптимизацией и специалистами.

Задача Яндекса, чтобы сайт развивали комплексно и в первую очередь думали об его улучшении и предоставление максимально информации о фирме, товаре и услуге. В данных реалиях в первую очередь коммерческие сайты и интернет бизнес интересуют определенные поисковые запросы и конверсия с них, жертвуя многим, они занимаются работой лишь над самыми эффективными запросами, но Яндексу надо, чтобы были хорошие ответы на максимальное количество запросов от своих пользователей.

Многие аналитики и оптимизаторы недовольны этим действием потому что:

  • Нельзя отслеживать мошенников, которые скликают рекламные бюджеты.
  • Боты, которые периодически посещают сайт и ухудшают поведенческие факторы.
  • Конкуренты, которые копируют контент, скликивают Директ, ухудшают поведенческие факторы вашего сайта.

  3 шага по установке кода, чтобы успешно отслеживать IP адреса посетителей в Яндекс Метрике .

1.  Поправляем текущий код Яндекс Метрики

Необходимо добавить строку:

Необходимо передать параметр в метрику. Добавив params:window.ip.

P.s  Если не будет работать с  $_SERVER[‘REMOTE_ADDR’] попробуйте    $_SERVER[‘X_FORWARDED_FOR’]

Пример кода

2. Воспользуемся параметрами визитов

parametry_vizita

В параметре визитов мы увидим следующую картину

Ip_adress

Сам по себе список IP адресов не дает полную картину для последующего анализа и нам надо узнать Ip адреса посетителей с параметрами откуда они пришли к нам на сайт, какие поведенческие факторы от них идут и отследить по вебвизору, что они делали на сайте.

3. Теперь нам надо передать параметры

param

4. В результате данных действий мы получаем информацию по Ip адресам ваших посетителей

ip_metrika

Если есть проблемы в установке кода жду вопросов в комментариях.

Как узнать Ip посетителей сайта с помощью Яндекс Метрики: 74 комментария

  1. Тоха

    Привет. Я добавил кусок кода в метрику, как ты посоветовал, но в Содержание — Параметры визитов, так ничего и не добавилось. Просто пустые столбцы и все.
    Что не так? Или не работает уже этот метод?

      1. Archy

        А не могли бы вы скопировать свой код, что бы люди могли заменив номер счетчика, поставить его у себя!?

  2. Владимир

    Дмитрий, спасибо за интересный материал. Попробовал применить его на практике. Внес изменения в код метрики. Через сутки посмотрел результат в статистике, но почему то столбец с параметрами пустой… В чем может быть проблема?

  3. Александр

    Добрый день. Можно ли поправить код плагина яндекс метрики? Там вроде не видно как определяют переменные. Если да, то как? Пример кода плагина:
    options = array_merge( array(
    ‘counter-code’ => »,
    ), (array) get_option( ‘yandex-metrika’, array() ) );

    load_plugin_textdomain( ‘yandex-metrika’, false, basename( dirname( __FILE__ ) ) . ‘/languages’ );
    }

    function admin_init() {
    register_setting( ‘yandex-metrika’, ‘yandex-metrika’, array( $this, ‘sanitize’ ) );
    add_settings_section( ‘general’, », », ‘yandex-metrika’ );
    add_settings_field( ‘counter-code’, __( ‘Counter code’, ‘yandex-metrika’ ), array( $this, ‘field_counter_code’ ), ‘yandex-metrika’, ‘general’ );
    }

    function sanitize( $input ) {
    $output = array();

    if ( isset( $input[‘counter-code’] ) )
    $output[‘counter-code’] = ( current_user_can( ‘unfiltered_html’ ) ) ? $input[‘counter-code’] : wp_kses_post( $input[‘counter-code’] );

    return $output;
    }

    function field_counter_code() {
    ?>
    options[‘counter-code’] ); ?>
    <?php _e( 'If you do not have a counter code, you can request one.’, ‘yandex-metrika’ ); ?>

    options[‘counter-code’] ) )
    echo $this->options[‘counter-code’];
    }
    }
    $GLOBALS[‘yandex_metrika_plugin’] = new Yandex_Metrika_Plugin;

  4. Profuter

    Не работает потому, что автор выделил не все куски кода которые подправить надо. Там еще надо выделить жирным передачу этого параметра в метрику яндекса, а именно

    params:window.yaParams,

    а мы его и не вклеиваем поскольку не замечаем, соответственно и данные не передаются в метрику smile

    1. Slip Автор записи

      Да , да и передаем параметр params:window.yaParams — в коде он указан, просто все невнимательные , и не могут толком посмотреть как изменился код и попросить меня в консультанте о помощи

  5. Владимир

    Уже и $_SERVER[‘REMOTE_ADDR’] ставил и $_SERVER[‘X_FORWARDED_FOR’] — результат тот же. В коде «params:window.yaParams,» тоже добавил. Может в самом коде я что-то не там разместил. Заранее благодарен за помощь

    1. Vitalyj

      Владимир, перенесите параметр params:window.yaParams сразу после запятой w.yaCounterXXXX = new Ya.Metrika({id:XXXXX,

      Должно заработать.

      1. Владимир

        Vitalij, после какой запятой? После id, та что? Чтобы вот так было?

        w.yaCounter111 = new Ya.Metrika({
        id:111,
        params:window.yaParams,
        clickmap:true,
        ?

  6. Дамир

    Народ помогите кто может — мой сайт ???? на Wordpres — все что показывает в вебвизере — это слово ip_adress

  7. Максим

    Здравствуйте! Скажите, а будет ли данный способ работать для сайта, созданного в конструкторе LPgenerator?

    1. Максим

      Отредактировал код, но в Вебвизоре отображается содержимое в скобках { } после var yaParams = . Подскажите в чем может быть проблема?

    2. Денис

      Максим, для сайта LPGenerator и подобных код работать не будет, т.к. метод основан на использовании PHP, а именно или
      Это так же не будет работать на любом другом сайте, не поддерживающем PHP на серверной стороне.
      Поэтому предлагаю более изящный способ решения, с помощью внешнего javascript’а, на основе, например http://l2.io

      var userip; // Определяем переменную для сохранения IP пользователя

      // Подтягиваем внешним скриптом в переменную userip адрес

      var yaParams = {userip}; // Задаем нужный параметр, который в Яндекс прилетит как userip + IP адрес
      document.write(«Your IP is :», userip); // Это проверочный код, что все работает, нужно убрать после проверки

      …..
      и в тексте счетчика не забываем вставить params:window.yaParams

      Автора просьба проверить и по возможности уточнить пост этим универсальным способом smile

      1. Денис

        Или в абсолютно сухом остатке, для тех кто понял принцип:


        params:{userip}

        Решение в одну строку laugh

        1. Костя

          Денис, я в коде вообще не смыслю. и не понимаю, вместо чего и где писать эти изменения (в каком месте кода)

          вот так правильно?

          document.write(«Your IP is :», userip);
          (function (d, w, c) {
          (w[c] = w[c] || []).push(function() {
          try {
          var yaCounter27975141 = new Ya.Metrika({
          id:27975141,
          clickmap:true,
          trackLinks:true,
          accurateTrackBounce:true,
          params:{userip},
          webvisor:true
          });
          } catch(e) { }

          1. Денис

            Костя, расписать подробнее, чем я уже это сделал, не получится, уже и так по шагам. При желании можете обратиться к автору блога Дмитрию с просьбой помочь лично, или напишите мне в вк логин delphius и я помогу сам.

        2. Костя

          script type=»text/javascript» src=»https://l2.io/ip.js?var=userip»>

          document.write(«Your IP is :», userip);
          (function (d, w, c) {
          (w[c] = w[c] || []).push(function() {
          try {
          var yaCounter27975141 = new Ya.Metrika({
          id:27975141,
          clickmap:true,
          trackLinks:true,
          accurateTrackBounce:true,
          params:{userip},
          webvisor:true
          });
          } catch(e) { }

          1. Костя

            script type=»text/javascript» src=»https://l2.io/ip.js?var=userip»>
            !— Yandex.Metrika counter —>
            script type=»text/javascript»>
            document.write(«Your IP is :», userip);
            (function (d, w, c) {
            (w[c] = w[c] || []).push(function() {
            try {
            var yaCounter27975141 = new Ya.Metrika({
            id:27975141,
            clickmap:true,
            trackLinks:true,
            accurateTrackBounce:true,
            params:{userip},
            webvisor:true
            });
            } catch(e) { }

            !— /Yandex.Metrika counter —>

      2. Костя

        Максим, можете полному «чайнику» объяснить — како код вставить нужно?
        у меня также сайт на конструкторе Lp motor
        спасибо

        1. Костя

          то есть, ДЕНИС (сори перепутал)

          , можете полному «чайнику» объяснить — како код вставить нужно?
          у меня также сайт на конструкторе Lp motor
          спасибо

          1. Денис

            Костя, здравствуйте!
            В любой системе генератора посадочной страницы есть редактор, в котором существует возможность вставки на страницу собственного скрипта, например для формы обратной связи и т.п.
            Необходимо вставить скрипт вашей Я.Метрики, но с изменениями.
            Т.е. п.1 — определяем переменную userip (ее можно назвать как сами захотите) и задаем ей значение ip посетителя с помощью внешнего сервиса l2.io
            п.2 — это строка для проверки, т.е. на каждой странице, где есть метрика будет появляться ip посетителя. После проверки, что все работает, ее нужно или закомментировать или убрать.
            п.3 — непосредственно передача переменной userip в которой уже есть ip адрес посетителя (см. п.1) в виде параметра в коде Я.Метрики.
            Вроде расписал подробно.
            P.S. Автора блога большая просьба уточнить статью данным способом для тех, у кого не получается с вышеописанным способом с использованием php. Этот способ абсолютно универсальный, подходит для всех систем и хостингов, главное, чтобы была возможность вставки скриптов.
            Спасибо.

      3. Мик

        Это значит, что страница на которой установлен код, должна быть index.php а не index.html ???

  8. Владимир

    По совету Vitalij перенесите параметр params:window.yaParams сразу после запятой w.yaCounterXXXX = new Ya.Metrika({id:XXXXX, В отчетах вместо ip адреса «ip_adress.».
    Какие есть еще варианты чтобы заработало?

    1. Slip Автор записи

      если не исправили, проверьте еще раз код, добавил в статью код через плагин

  9. Евгений

    Все сделал как написано, в параметрах визитов пишет «нет данных»

      1. Slip Автор записи

        если не исправили, проверьте еще раз код, добавил в статью код через плагин

  10. sour

    Изменённый код метрики отсюда. В параметрах визита, вместо ip отображается то же что и у Владимира.

  11. Владимир

    Добавил Ваш новый код, что Вы разместили через плагин, прописал в нем свой номер счетчика.
    Первый вариант кода был с $_SERVER[‘REMOTE_ADDR’] — не помогло.
    Поменял на $_SERVER[‘X_FORWARDED_FOR’] — тоже не помогло… Как были буквы вместо ip-адресов, так и остались, только поменялись на те что заменил.

    Код добавлен через GTM. Может в этом быть проблема?

    1. Slip Автор записи

      проверьте еще раз правильность кода, у меня все работает, возможно дело в настройках апача

  12. Владимир

    А какие должны быть настройки? На что нужно обратить внимание в настройках апача, чтобы работало корректно?

  13. Владимир

    А почему где код вывода ip адреса — точки стоят? Так и должно быть? Разве там не $_SERVER[‘REMOTE_ADDR’] должно быть?

  14. Алексей

    Не понимаю где этот код надо изменять, у меня же нет доступа к коду метрики яндекса, или нужно в своей админке изменять

  15. Петр

    Здравствуйте. Поменял код появилась колонка ip адреса, но я не могу ее раскрыть нет кнопки +- как у вас на скрине (новая метрика)

  16. Петр

    В параметрах визита не открывается как я уже написал выше, в параметрах урл пишет нет данных, в вебвизоре просто пишет ip_adress.

  17. Valeria

    Добавила Ваш код и что то не сработало

    Причем сама по себе переменная — var yaParams = {ip_adress: «»}
    выдает IP при обращении к ней

    document.write(«IP:» + yaParams.ip_adress);

    В этом определении ошибок нет, а вот в остальном коде, есть какое то обращение, которое вместо IP (yaParams.ip_adress) возвращает
    ip_adress.

    С настройкой php на сервере это не связано — он отлично работает.

    С переменной и ее размещением params:window.yaParams тоже прекрасно осведомлена.
    Но все равно код не хочет работать.

    Если переменной yaParams напрямую без классов указать

    var yaParams = «»

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

    Помогите пожалуйста понять что можно сделать

  18. Алексей

    Спасибо за помощь, я вообще не программист и от интернета далек, но благодаря коду и почитав внимательно комментарии разобрался, все работает. На обоих сайтах все заработало. Ребят реально спасибо огромное, очень сильно пригодилось!

  19. петр

    Добрый день!
    Подскажите, пожалйста, где ошибка.
    Пробовал и ip_adress. и ip_adress.
    Вебвизор в поле «Парам. визита» так и выдает ip_adress. или
    ip_adress.

  20. Любовь

    Спасибо за полезную информацию. Я не программист, но разобраться получилось. Сайт на WP.
    Адреса IP отображаются. Но тут появилось одно «НО»: не видно переходов на сайт с мобильного телефона. Таких посетителей на сайте около 25% ежедневно. Сейчас видны только переходы с компьютеров и планшетов. Например, вчера в гул адвордсе у меня было 15 переходов по рекламе: 8 с компьютеров, 2 — с планшета и 3 с мобильного. В Яндекс метрике переходов с мобильного нет. До внесения изменений в код метрики такие переходы отображались. Все бы и ничего, но есть один гад, который конкретно скликивал рекламу и который заходил с мобильного. Подозреваю, что он до сих пор это делает, но вычислить его не получается.
    Может кто-то еще сталкивался с такой проблемой? Есть ли другие варианты кода, которые будут отображать переходы с мобильного (я пробовала и $_SERVER[‘REMOTE_ADDR’] и $_SERVER[‘X_FORWARDED_FOR’] ?

  21. Алексей

    День добрый. Подскажите плизз что может быть сайт на опенкарт вставляю данный код через админ панель — настройки — сервер там окошко для счётчиков. В метрике показывает ip_adress. вместо айпишника. Помогите плиз. Задолбали скликивать рекламу в Директе sad

    1. Алексей

      Спасибо за статью. Разобрался чего не работало.
      Не знаю как в других CMS но в opencart нужно вставлять код непосредственно в файл futer.tpl а не через админ панель.
      Через админку не работает короче..
      Ещё раз спасибо очень полезная инфа..

      1. Артур

        Алексей, напишите пожалуйста код который вы вставили в footer.tpl. У меня ничего не заработало — пишет вместо ip адреса название переменной.

  22. Игорь

    Здравствуйте, у меня вопрос:
    все заработало, как я только переименовал html файл php, можно ли как то отдельно с html файла сослаться на php файл в котором будет вот это:
    
    В плане, я хочу сделать так, чтобы в html файле был указан путь php страницы для определения ip. Это возможно?

  23. Artur

    Здравствуйте! При работе с кодом возникли 2 проблемы:
    1 Метрика не показывает IP в отчёте «параметры визитов» по причине: «Поддерки алгоритмов безопасности сервисов Яндекса…»
    2 Можно выбрать группировки «IP адрес» в других отчётах. Таким образом 1 проблему можно обойти. Но возникает следующая сложность: в IP-адресе последние три цифры заменены на».ххх» и вывести в отчёт Вебвизора можно только колонку. — Сами IP-адреса не подгружаются.
    Подскажите, как Вы решаете эту проблему?

  24. kain

    Добрый день! прошу помощи. Уже задолбался и все перепробовал, всеравно ничего не выводится, даже надписи ip_adress. Сайт ….. гляньте пожалуйста если не сложно! Сайт на WP, хостер jino.ru
    Еще одно, код вставлен через плагин яндекс метрики, может в этом причина?

  25. Сергей

    var yaParams = {ip_adress: «»};

    Это эхо отдает мой IP а в метрике нифига

    второй еще непроверял.

  26. Павел

    У меня обычный вопрос: как в метрике поменять код? Я ничего не могу отредактировать, на что нужно нажать что бы пошло редактирование. Нажимаю на текст он весь выделяется.

  27. Егор

    Все сделал вроде, но не выводится IP.
    Показывается это:

    ip_adress.,
    ip_adress.

    Что делаю не так, господа? Плиз, хелп.

    Вот мой код:

    var yaParams = {ip_adress: «»};
    //объявляем параметр ip_adress и записываем в него IP посетителя

    (function (d, w, c) {
    (w[c] = w[c] || []).push(function() {
    try {
    w.yaCounterXXXXXXXX = new Ya.Metrika({
    id:XXXXXXXX, params:window.yaParams,
    clickmap:true,
    trackLinks:true,
    accurateTrackBounce:true,
    webvisor:true,
    trackHash:true
    });
    } catch(e) { }
    });

    var n = d.getElementsByTagName(«script»)[0],
    s = d.createElement(«script»),
    f = function () { n.parentNode.insertBefore(s, n); };
    s.type = «text/javascript»;
    s.async = true;
    s.src = «https://mc.yandex.ru/metrika/watch.js»;

    if (w.opera == «[object Opera]») {
    d.addEventListener(«DOMContentLoaded», f, false);
    } else { f(); }
    })(document, window, «yandex_metrika_callbacks»);

  28. Вера

    Друзья, вот вам рабочий код, меняйте XXXXX на номер своего счетчика и будет Вам счастье

    var yaParams = {ip_adress: «»};

    (function (d, w, c) {
    (w[c] = w[c] || []).push(function() {
    try {
    w.yaCounterXXXXXXXXX = new Ya.Metrika({
    id:XXXXXXXXX, params:window.yaParams,
    clickmap:true,
    trackLinks:true,
    accurateTrackBounce:true,
    webvisor:true
    });
    } catch(e) { }
    });

    var n = d.getElementsByTagName(«script»)[0],
    s = d.createElement(«script»),
    f = function () { n.parentNode.insertBefore(s, n); };
    s.type = «text/javascript»;
    s.async = true;
    s.src = «https://mc.yandex.ru/metrika/watch.js»;

    if (w.opera == «[object Opera]») {
    d.addEventListener(«DOMContentLoaded», f, false);
    } else { f(); }
    })(document, window, «yandex_metrika_callbacks»);

  29. дмитрий

    Почти год прошел. Так что этот код не сегодняшний день не работает? Есть какие либо новые пути? Сайт на ВП. Код который выше не пашет.

    1. Игорь

      РЕШЕНИЕ:

      1. Создать файл без расширений (.htaccess) именно так, как в скобках, с точкой в начале.
      2. Добавить в созданный файл следующий код ( AddType application/x-httpd-php .php .html )

  30. Анн

    Установила такое, айпи показывает, но есть не все. Как можно вычислить посетителей со скрытым айпи?

  31. Ольга

    Привет! Ребят подскажите где ошибка! Не отражается ip в новой метрике. Вообще уже запуталась

    var yaParams = {ip_adress: «»}

    (function (d, w, c) {
    (w[c] = w[c] || []).push(function() {
    try {
    w.yaCounter ваш номер = new Ya.Metrika({id:46743603,
    webvisor:true,
    clickmap:true,
    trackLinks:true,
    accurateTrackBounce:true,params:{userip},});
    } catch(e) { }
    });
    smile

  32. Алексей

    добрый вечер.подскажите пожалуйста в чем может быть проблема. В яндекс метрике в столбце где должен быть ип выводиться $_SERVER[‘REMOTE_ADDR’].

  33. Игорь

    Внесу свою лепту в помощь по определению IP адреса пользователя.
    В статье все указанно верно, но есть одно но!!!
    У вас ничего работать не будет если у вас страница сайта на .html
    да и весь сайт (обычно лендинги) на .html
    А php код не будет работать на странице html, пока владелец сайта сам не решит разрешить выполнение скриптов php на его сайте.

    РЕШЕНИЕ:

    1. Создать файл без расширений (.htaccess) именно так, как в скобках, с точкой в начале.
    2. Добавить в созданный файл следующий код ( AddType application/x-httpd-php .php .html )

  34. Иван

    Здравствуйте, а как отредактировать новый код Яндекс Метрики, что бы отображался ip адрес?

    (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(1111111111, «init», {
    id:111111111,
    clickmap:true,
    trackLinks:true,
    accurateTrackBounce:true,
    webvisor:true
    });

  35. Диана

    Ребят, подскажите, плиз, как в новом счетчике исправить?

    (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(xxxxxxxx, «init», {
    clickmap:true,
    trackLinks:true,
    accurateTrackBounce:true,
    webvisor:true
    });

  36. Nordy_dance

    Спасибо за статью! Все по делу и понятно …
    По определению пользователей сейчас уже много решений. появились такие сервисы, позволяющие узнавать не только IP, но и телефонные номера всех посетителей сайта. используют в маркетинге для обзвонов. говорят, что легально — патенты, разрешения, все дела. как они это делают?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *