Fork me on GitHub

Определение IP адреса посетителя в отчетах Yandex Метрика Sep 22, 2015

Обновленная метрика не отображает информацию об ip адресе посетителей сайта, сделано это с целью обезличивания статистики посещений. Данная новость была официально озвучена в клубе метрики. Обезличивание это здорово, но порой хочется узнать действительно ли в статистике отображаются различные посетители, или же это одно и тот же лицо, которое заходит с разных браузеров или устройств. А может быть у Вас несколько счетчиков метрики, и Вам интересно какие из посетителей ресурса A, посещают также ресурсы B или C.

Также различным рекламщикам, может быть интересна информация об ip адресах, например, с целью вычисления ботов скликеров.

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

Параметры визитов yandex.метрика

Сервис параметры визитов позволяет прикрепить к информации о посещении json словарь с дополнительными параметрами. Для этого необходимо в конструктор счетчика добавить аргумент params с необходимыми значениями.

Например, если информация об ip адресе будет содержаться в переменой userip, то словарь параметры может выглядеть следующим образом:

{
    'ip': userip
}

Конструктор счетчика, в таком случае, будет выглядеть так:

    w.yaCounterXXXXXX = new Ya.Metrika({
        id:XXXXXX,
        clickmap:true,
        trackLinks:true,
        accurateTrackBounce:true,
        webvisor:true,
        params:{'ip': userip}
    });

Где XXXXXX идентификатор счетчика.

Чтобы просмотреть полученные результаты необходимо перейти: метрикаотчетыстандартные отчетысодержаниепараметры визитов

visit params path

visit params detail

Но, сами по себе ip адреса не столь информативны, интерестнее просмотреть связь посещения и ip адреса в вебвизоре. Для этого в вебвизор нужно добавить столбец “Параметры”.

webvisor col params

webvisor ip detail

Определение IP адреса

Выше я упоминал о переменной в которой содержится ip адрес посетителя. Задать эту переменную легко если Вы имеете доступ к бэкэнду.

Например в django, предварительно подключив django.core.context_processors.request:

<script type="text/javascript">
    var userip = "{{ request.META.REMOTE_ADDR }}";
</script>

Или, если Вы используете проксирование:

<script type="text/javascript">
    var userip = "{{ request.META.HTTP_X_REAL_IP }}";
</script>

Или, например, в php:

<script type="text/javascript">
    var userip = "<? echo $_SERVER['REMOTE_ADDR'];?>";
</script>

Но что если сайт статический и какой либо бэкэнд отсутствует? В таком случае можно воспользоваться сервисом l2.io, который позволяет получить ip на клиенте. К примеру Ваш ip адрес:

Чтобы задать ip адрес в переменную, нужно вставить такой скрипт:

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

Полный фрагмент скрипта яндекс метрики будет выглядеть так:

<!-- получаем ip адрес одним из указанных вариантов -->
<script type="text/javascript" src="https://www.l2.io/ip.js?var=userip"></script>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounterXXXXXX = new Ya.Metrika({
                    id:XXXXXX,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true,
                    webvisor:true,
                    params:{'ip': userip}
                });
            } catch(e) { }
        });
    // продолжение счетчика
    // ...
</script>
<!-- /Yandex.Metrika counter -->