Механизмы защиты браузеров от отслеживания становятся все более надежными, сторонние куки блокируются некоторыми браузерами, Chrome планирует постепенно отказаться от сторонних куки к 2022 году, Apple ввела свои ограничения на отслеживание для пользователей iOS. Все эти изменения повлияли на веб-аналитику.
Раньше мы считали отслеживание веб-сайтов фронтендом, но отслеживание веб-сайтов становится все более сложным со всеми новыми ограничениями. Некоторые говорят, что отслеживание на стороне сервера станет новым стандартом.
Одним из самых простых и дешевых способов внедрения ss tagging является использование Google Tag Manager на стороне сервера. После того как вы настроите хостинг sGTM, следующим вопросом будет, как доставить данные в серверный GTM. Нужно ли создавать слой данных (data layer), подобный веб-контейнеру, или есть другой способ?
В этой статье я хочу рассказать о создании слоя данных для Google Tag Manager на стороне сервера.
В веб Google Tag Manager данные собираются со стороны клиента. Вы используете элементы DOM или соскабливаете данные с сайта с помощью селекторов CSS. Но в некоторых случаях эти методы могут быть нестабильными.
Золотое правило отслеживания с помощью веб-GTM - создание надежного слоя данных. Создание правильной структуры слоя данных и внедрение ее на сайте занимает некоторое время не только у маркетологов, но и у разработчиков. Но это время того стоит. С помощью слоя данных вы получаете больше данных, и эти данные надежны.
В GTM на стороне сервера добавлен новый объект, который называется Client. Основная задача Client- преобразовывать данные запроса в данные события внутри GTM на стороне сервера.
Как Client понимает, какой запрос утверждать и обрабатывать? Он проверяет путь запроса. Например, Universal analytics отправляет запросы, содержащие /collect. Client просматривает путь входящих HTTP-запросов, и если путь запроса имеет свой "ключ", Client преобразует данные запроса в данные события в sGTM.
Другая важная цель sGTM Clients - обработка исходящих HTTP-запросов. Как только tag срабатывает в sGTM, Клиент отправляет исходящий HTTP-запрос, чтобы суммировать все запросы, отправленные каждым tag. Если с тегом произошла ошибка, вы увидите причину ошибки, если щелкните на исходящем HTTP-запросе и прокрутите вниз до текста ответа.
Позвольте мне показать пример. Для этого я буду использовать Data Tag/Data Client. В веб-контейнере GTM я настроил Data Tag, который отправляет запросы в серверный контейнер.
Путь запроса Data Tag содержит /data.
В sGTM у меня есть Data Client, который прослушивает все запросы, содержащие /data во входящем HTTP-запросе.
В GTM на сервере есть два тега (GA4 и Klaviyo active on-site), которые срабатывают при каждом запросе Data Client, а имя события - page_vew. Давайте посмотрим, что происходит в GTM на сервере, когда он получает входящий запрос с /data и именем события page_view. Срабатывают оба тега, и Data Client отправляет исходящий HTTP-запрос.
Если вы нажмете на Входящие HTTP-запросы, вы увидите, какие данные были отправлены в серверный контейнер. Если нажать на Исходящий HTTP-запрос, вы увидите, какую информацию Data Client отправил о выполнении сработавших тегов.
Если вы нажмете на данные события, вы увидите, какую информацию из входящих HTTP-запросов Data Client отобразил в данные события.
Data Layer не существует в Google Tag Manager на сервере в том виде, в котором мы привыкли его иметь в веб-Google Tag Manager. Обычно в sGTM вы создаете метки на основе данных о событиях и запрашиваемых данных.
Скорее всего, в ближайшие пару лет мы не сможем перейти только на отслеживание на стороне сервера. Тем временем будет использоваться гибридный подход - сочетание веб- и серверного отслеживания. Некоторые теги по-прежнему будут работать на стороне клиента (либо потому, что платформы пока не поддерживают ss-трекинг, либо просто потому, что их нельзя перенести на ss, это относится к таким инструментам, как HotJar), а другие теги будут устанавливаться на стороне сервера. Будет один тег/клиент, отвечающий за отправку конкретных данных или всего слоя данных из веба в серверный GTM-контейнер.
На схеме ниже показано, как работает процесс доставки данных в sGTM. Web GTM имеет слой данных, UA и пиксель FB, использующий веб-трекинг. Затем у нас есть тег GA4 на стороне сервера, который отвечает за доставку данных из web в серверный GTM. На основе данных, которые тег GA4 предоставляет sGTM, мы можем настроить ss Adwords и FB CAPI теги в GTM на сервере.
На мой взгляд, два наиболее часто используемых метода отправки данных из веб на сервер GTM это:
1. Отправьте слой данных на серверный GTM с помощью Google Analytics 4.
Вы можете отправить свойства пользователя и параметры события из веб на сервер GTM с помощью GA4. Внутри веб-тега GA4 вы увидите предопределенные поля для этих данных, и вы можете добавить переменные слоя данных (data layer variables) к каждому параметру в отдельности.
Google Analytics 4 и UA имеют разные стандарты слоя данных электронной коммерции (слой данных UA, слой данных GA4). Поэтому если у вас на сайте есть слой данных электронной коммерции, созданный для UA, убедитесь, что вы изменили его для GA4. Хорошо то, что вы можете использовать переменные в галерее шаблонов GTM, которые конвертируют события и переменные UA в стандарты GA4.
Этот вариант лучше всего подходит, если вы планируете настроить отслеживание на стороне сервера для Google Ads или Floodlight, поскольку эти два способа работают только на основе тегов GA4.
2. Используйте Data Tag/Data Client для отправки слоя данных с веб-сайта на сервер GTM.
Наиболее существенным преимуществом использования Data Tag/Data Client является то, что DT автоматически отправляет слой данных и другие общие данные из веб в серверный GTM. Если вы установите два флажка, Отправить общие данные и Отправить все из DataLayer, он будет анализировать данные в веб GTM и отправлять всю информацию, которую он может найти, на сервер GTM. Нет необходимости настраивать каждый параметр вручную.
Именно так вы увидите данные электронной коммерции в sGTM. Вы можете использовать переменную данных события (event data variable), чтобы извлечь их и использовать для серверных тегов, и у меня есть более подробный пост, в котором описывается Data Tag/Data Client.
В серверном контейнере GTM нет ничего похожего на слой данных, который мы использовали в веб-контейнере. Но существует несколько способов передачи события и параметров пользователя или события всего слоя данных из веб в сервер Google Tag Manager.
Достаточно ответить на несколько простых вопросов. Нажмите Получить предложение, заполните форму, и мы вышлем вам запрос.