Настройка контейнера "Server" в Google Tag Manager для Universal Analytics
После того, как вы настроили конфигурацию пользовательского домена, вы можете перейти к первичной настройке контейнера Google Tag Manager типа Server для отслеживания просмотров страницы тега Universal Analytics.
Примечание: процесс создания серверного контейнера диспетчера тегов Google подробно описан в этой статье.
Вы можете отправлять данные в контейнер на стороне сервера следующими способами:
- использовать диспетчер тегов Google на стороне клиента;
- использовать глобальный тег сайта gtag.js;
- написать свой собственный код для отправки данных.
Самый простой способ - использовать обычный контейнер Google Tag Manager на стороне клиента. Его мы и рассмотрим в рамках данной публикации.
Настройка контейнера для Universal Analytics (на стороне клиента)
Чтобы отправлять данные в Google Analytics 3 на стороне сервера, необходимо перейти в обычный контейнер Google Tag Manager (не Server!) и в зависимости от того типа управления тегами, который вы используете, сделать следующее:
- если для тегов Universal Analytics вы используете пользовательскую переменную типа Настройки Google Аналитики, то вам необходимо перейти в раздел Переменные, выбрать вашу переменную и отредактировать ее.
Откройте Дополнительные настройки – Расширенная конфигурация:
В поле URL отправки (Set Transport URL) вам необходимо вставить URL серверного контейнера, который вы ранее добавляли в настройках контейнера sGTM:
URL отправки - это строка URL-адреса, которая начинается с http:// или https:// и не заканчивается на / Скопируйте этот URL из серверного контейнера GTM и вставьте в URL отправки контейнера на стороне клиента.
Сохраните изменения. Теперь создайте обычный тег Universal Analytics (если этого не делали раньше) с типом отслеживания Просмотр страницы, который будет активироваться на всех страницах. Его конфигурация будет выглядеть следующим образом:
- если вы не используете пользовательскую переменную типа Настройки Google Аналитики, а для каждого тега Universal Analytics всегда переопределяете настройки через простановку галочки Включить переопределение настроек в этом теге, тогда вам в каждом отдельно взятом теге нужно сделать то же самое – в расширенной конфигурации добавить URL серверного контейнера в поле URL отправки:
Сохраните настройки тега и опубликуйте его.
Настройка контейнера для Universal Analytics (на стороне сервера)
После того, как вы создали самый простой тег Universal Analytics с отслеживанием просмотров страниц, и указали URL отправки в обычном контейнере GTM, пришло время вернуться в контейнер типа Server и создать для него тег на стороне сервера.
Перейдите в раздел Теги и создайте тег типа Google Аналитика: Universal Analytics.
В настройках тега у вас есть возможность установить флажок Включить переопределение настроек в этом теге. Это делать необязательно, поскольку по умолчанию контейнер на стороне сервера наследует идентификатор счетчика аналитики от контейнера на стороне клиента.
В теге присутствует настройка, которой нет в стандартном контейнере Google Tag Manager на стороне клиента – Удалить IP-адрес посетителя.
Если ее поставить, IP-адрес посетителя будет удален из события, и тогда отчеты на основе этого события не будут включать географические данные.
К конфигурации тега также присутствует опция Расширенные настройки, которая есть и в настройках тега Universal Analytics.
Для созданного тега на стороне сервера необходимо задать триггер активации. В отличие от стандартного контейнера Google Tag Manager, где доступно 16 различных триггеров, в серверном контейнере можно создать только три типа триггеров:
- Просмотр страницы;
- Специальное событие;
- Специальные.
Поскольку в контейнере Google Tag Manager на стороне клиента в качестве примера был настроен тег Universal Analytics с типом отслеживания Просмотр страницы, который активируется на всех страницах веб-сайта, вы можете выбрать тип триггера – All Pages (Просмотр страницы).
В завершение задайте название тегу и сохраните его.
Некоторое время назад в серверном контейнере Google Tag Manager был доступен только один тип триггера – Специальные. Поэтому настройка даже для самого простого отслеживания на стороне сервера была сложнее.
Например, чтобы передавать данные в Universal Analytics, необходимо было конкретизировать какой при этом клиент будет использоваться с помощью пользовательской переменной Название клиента и дополнительным условием – содержит Universal Analytics (по имени клиента):
Предварительный просмотр и отладка запросов сервера
После всех выполненных настроек рекомендуется запустить режим предварительного просмотра и провести отладку системы. Перейдите в контейнер Google Tag Manager на стороне клиента и активируйте режим отладки:
Введите URL-адрес своего сайта и подключитесь. В окне предварительного просмотра вы увидите, как загрузится тег Universal Analytics:
Несмотря на то, что тег активировался на странице и имеет статус Succeeded, данные о просмотренной странице в Google Analytics 3 отправлены не будут, поскольку тег сначала отправляет данные в контейнер на стороне сервера, а не напрямую в Google Analytics. Помните про дополнительную настройку, связанную с URL отправки, которую мы выполняли?
Нажав на сам тег, вы увидите его детали. Если вы используете пользовательскую переменную Настройки Google Аналитики, тогда в этом разделе будет строка transportUrl с добавленным вами URL отправки:
Если вы переопределяли настройки в теге, тогда URL отправки будет отображаться отдельной строкой:
Теперь перейдите в серверный контейнер Google Tag Manager и там активируйте режим предварительного просмотра:
В вашем браузере должна открыться отдельная вкладка с режимом отладки без каких-либо данных:
Откройте свой сайт и перейдите на какую-нибудь страницу (или просто обновите существующую), находясь при этом на вкладке режима отладки на стороне клиента и не закрывая вкладку режим предварительного просмотра на стороне сервера:
Вернитесь к окну предварительного просмотра серверного контейнера. Вы должны увидеть новый хит (обращений) просмотра страницы page_view, полученный из контейнера на стороне клиента, а также наш активированный тег Universal Analytics.
В обычном контейнере на стороне клиента у вас есть возможность поделиться предварительным просмотром с другими людьми, предоставив им ссылку на режим отладки.
В серверном контейнере такого функционала нет. Вы не сможете поделиться предварительным просмотром с другими.
Если вы откроете вкладку Request (Запрос), то сможете проверить тег Universal Analytics. Вы также увидите данные клиента (Client), входящий HTTP-запрос (Incoming HTTP Request) и исходящий HTTP-запрос к серверу Google Analytics (Outgoing HTTP Requests from Server).
Вы можете нажать на каждый из них поочередно и увидеть детальную информацию. В этом примере:
- Client – Universal Analytics;
- Incoming HTTP Request (Входящий HTTP-запрос)
Это запрос, сделанный контейнеру на стороне сервера от контейнера на стороне клиента. Метод запроса — это метод GET, а код ответа 200 означает, что запрос был успешно принят.
- Outgoing HTTP Requests from Server (Исходящий HTTP-запрос)
После обработки входящего запроса в соответствии с вашей конфигурации тега данные отправляются на сервер Google Analytics или в другой сторонний инструмент. Он содержит информацию о об отслеживаемых событиях - просмотр страницы, транзакция, пользовательское событие и т.д.
Чтобы посмотреть данные об активированном теге Universal Analytics, перейдите на вкладку Тags (Теги) и нажмите на него:
В нем будет представлена информация о некоторых настройках тега (удаление IP-адреса посетителя), об исходящем HTTP-запросе и условии активации:
На вкладке Variables (Переменные) будет представлен список включенных переменных с их текущими значениями (все как в обычном контейнере Google Tag Manager):
На вкладке Event Data (Данные о событии) представлена информация, которая собирается и передается в инструмент конечной точки, например, в Google Analytics 3.
Например, вместе с просмотром страницы в Universal Analytics могут передаваться следующие данные о событии:
- client_id – уникальный идентификатор пользователя;
- event_name – название события;
- ip_override – IP-адрес посетителя в формате IPv4 или IPv6;
- language - язык в формате ISO 639-1;
- page_encoding – кодировка текста страницы;
- page_location – полный URL-адрес страницы документа;
- page_title – заголовок страницы;
- screen_resolution - разрешение экрана для устройства пользователя (width x height);
- user_agent – User agent, идентификационная строка клиентского приложения.
В официальной документации Google приведена отдельная таблица по данным о событиях, включая сами параметры, их типы, примеры и описание каждого из них. Их гораздо больше, чем тех, которые приведены выше.
После того, как на шкале событий серверного контейнера вы увидите свой первый запрос, вы можете перейти в сам счетчик Universal Analytics и проверить передачу данных в режиме реального времени:
А если вы откроете консоль разработчика и перейдете на вкладку Network (Google Chrome), то увидите, как HTTP-запрос отправляет данные не как раньше на конечную точку по https://www.google-analytics.com/j/collect, а сначала на ваш серверный контейнер https://serverside.osipenkov.ru/collect:
Именно таким способом (на примере простого события просмотра страницы и тега Universal Analytics) данные с вашего веб-сайта отправляются сначала в серверный контейнер, там обрабатываются, затем преобразовываются в событие, а после отправляются в конечный инструмент (Google Analytics).
Примечание: подробнее о том, что такое отслеживание на стороне клиента (Client-Side Tracking) и отслеживание на стороне сервера (Server-Side Tracking), читайте в этой статье.
Вы можете проверить активность вашего серверного контейнера можно и в интерфейсе Google Cloud Platform. Перейдите по ссылке https://console.cloud.google.com/appengine . Как только в App Engine данные начнут поступать, на вкладке Dashboard вы увидите динамику собственных HTTP-запросов с нужной разбивкой (1 час, 6 часов, 12 часов, 1 день и т.д.):
Под графиком также будет отображена таблица с текущей нагрузкой:
Напротив нужного запроса вы можете нажать на View Traces, чтобы узнать о нем подробную информацию и произвести диагностику.
Например, выбрав запрос /collect, вам откроется отдельная страница, на которой вы сможете детально изучить конкретный запрос, отправленный на ваш облачный сервер.
Выбрав его из списка (если запросов было несколько), чуть ниже станет доступна информация о нем:
Ее легко сопоставить с HTTP-запросом, который был отображен в режиме отладки серверного контейнера Google Tag Manager. Сравните строку /http/url (в Google Cloud) и Incoming HTTP Request (в Google Tag Manager):
Они одинаковые.