IP-адрес с помощью Google Tag Manager

В предыдущей статье мы с вами разобрали один из вариантов определения IP-адреса посетителя сайта на стороне сервера (с помощью PHP) и передачи этой информации в Google Analytics. В этом материале разберем пример сбора IP-адресов в переменную GTM, используя скрипт, который вы можете скопировать и вставить себе в проект.

Последовательность действий:
Используем универсальный метод — JavaScript, который будет работать практически в любой ситуации. Создаем «Пользовательский HTML – тег» и вставляем туда данный код:

Код JavaScript

<script type=»application/javascript»>
function getIP(json) {
dataLayer.push({«event»:»ipEvent»,»ipAddress» : json.ip});
}
</script>
<script type=»application/javascript» src=»https://api.ipify.org?format=jsonp&callback=getIP»></script>

В результате получим:

Передача IP-адреса в GTMПользовательский HTML-тег

Данный фрагмент JS-кода определяет IP-адрес каждого пользователя через ipify.org (является бесплатным API-интерфейсом IP-адресов), а затем помещает его в уровень данных (dataLayer) для чтения в GTM.
Чтобы протестировать и определить свой IP, просто перейдите по ссылке: https://api.ipify.org?format=jsonp&callback=getIP

Передача IP-адреса в GTMВаш IP-адрес на ipify.org

Минус такого способа очевиден – если API ipify.org перестанет работать, то данные собираться не будут. Если вы хотите реализовать передачу IP не через JavaScript, а PHP, вы можете в <head> кода страницы вставить следующий фрагмент:

Код JavaScript

<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’:’ipEvent’,
‘ipAddress’ : ‘<?=$_SERVER[«REMOTE_ADDR»] ?>’
});
</script>

Далее создаем триггер «Просмотр страницы», который будет активироваться только один раз за сеанс на сайте. Чтобы избежать многократного обращения к API-интерфейсу ipify и потенциального сбоя множества обращений, вы можете поочередно установить этот сценарий для запуска только на целевой странице. Для этого мы в качестве условия активации триггера можем выбрать:
Некоторые просмотры страницы –Referrer – не содержит – домен вашего сайта

Передача IP-адреса в GTMУсловие активации триггера

Затем создаем переменную уровня данных ipAddress:

Передача IP-адреса в GTMПеременная уровня данных ipAddress

И триггер типа «Пользовательское событие» ipEvent:

Передача IP-адреса в GTMПользовательское событие ipEvent

Важно: переменная и триггер должны быть такие же, как и в HTML-теге.
После выполнения вышеописанных шагов у вас будет новый триггер GTM (ipEvent) и переменная (ipAddress), к которым вы можете получить доступ в других тегах. Теперь все, что осталось сделать, это проверить корректность передачи информации. Переходим в режим предварительного просмотра и видим:

Передача IP-адреса в GTMСобытие ipEvent в режиме отладки

IP-адрес пользователя определяется корректно. Проверить также можно через какое-нибудь расширение, например, dataLayer Checker для Chrome.

Передача IP-адреса в GTMПроверка событий через DataLayer Checker

Осталось только создать в GA custom dimension и передать в теге ее значение:

Передача IP-адреса в GTMСпециальный параметр в GTM

Не забываем про индекс. Значение параметра из переменной {{ipAddress}}:

Передача IP-адреса в GTMcustom dimension

Результат с GTM такой же, как и передавать IP-адрес пользователя сайта напрямую в Google Analytics с помощью функции PHP и custom_map.

Передача IP-адреса в GTMОтчет в Google Analytics