Все о GTM Server Side для начинающих

До сих пор делаете вид, что понимаете, о чем идет речь, когда обсуждают серверное добавление тегов с помощью Google Tag Manager?

Эта статья – детальный гайд по GTM Server Side для начинающих. После прочтения вы поймете разницу веб- и серверного контейнеров, узнаете в чем их преимущества и недостатки, сколько стоит GTM Server side и почему он так необходим.

Меня зовут Александр Игнатенко, я занимаюсь маркетинговой аналитикой – консультирую по настройке и принятию решений с помощью данных в онлайн-маркетинге, а также помогаю с разработкой и внедрением кастомных моделей атрибуции и A/B-экспериментами. Кроме того, я веду телеграм-канал о маркетинговой аналитике «Модель атрибуции».

Содержание

Для кого эта статья

Если покопаться, то можно найти массу интересных материалов о server-side tagging в сети. Однако, все они как правило или максимально общи, или рассчитаны на узкий круг зрелых аналитиков и разработчиков. Менее продвинутым пользователям приходится тяжелее – часть терминов и сущностей остается непонятной, а логика работы и бенефиты не настолько очевидны. Это не совсем вяжется с идеологией GTM – «увольнять» прослойку разработчиков из системы управления тегами.

Поэтому и появилась эта статья – FAQ для начинающих о том, как (и для чего) устанавливать server-side-контейнер Google Tag Manager. Его развертывание и запуск – далеко не самая тривиальная задача и она требует от исполнителя наличия вполне конкретных core-компетенций (об этом ниже). Однако разбираться в принципах работы GTM Server Side важно не только аналитикам, но и маркетологам, продакт-менеджерам. В первую очередь – для принятия бизнес-решений, подготовки техзадания и других задач.

То есть – если вы управляете привлечением трафика или разработкой веб-продуктов – вам важно иметь хотя бы общее представление о server-side tagging. Хотя бы на уровне идеологии и логики. Все потому что на сегодняшний день это один из немногих доступных путей подготовиться к внедрению ограничений на использование cookies (об этом дальше). Так что эта статья для вас, если вы:

  • senior-маркетологи;
  • веб-аналитики;
  • менеджеры веб-продуктов;
  • веб-разработчики;
  • все сопричастные.

В качестве базиса мною были взяты материалы блога идеолога веб-аналитики Simo Ahava – не оригинально, но так уж получилось, что его статьи гораздо лучше, живее и полезнее официальной документации.

Материал включает в себя теоретическую раскладку о server-side tagging и подробные ответы на популярные вопросы о серверном GTM-контейнере. То есть этот текст для всех любопытных, но он не для тех, кто ищет подробную инструкцию.

Детали о технической тонкостях настройки и запуска серверного контейнера сознательно опущены, поскольку это тема отдельной серии публикаций. Однако те, у кого чешутся руки, в конце статьи могут найти ссылку на инструкцию от Simo Ahava.

Что нужно знать для работы с GTM Server Side?

Оговорюсь – начинать свой путь в освоении систем управления тегами с этого материала – не самая лучшая идея. И вот почему. Да, интерфейсы Google Tag Manager, Google Analytics и Google Cloud эволюционировали в достаточно комфортные среды, управление которыми интуитивно понятно. Но тем не менее, без базового понимания работы системы управления тегами окунуться в server-side tagging означает поставить себя в условия очень серьезного стресса. Я постарался упростить лексику, снабдил материал доступными комментариями и ссылками на документацию, но и этого может оказаться недостаточно. Поэтому до начала работы убедитесь, что вы или ваш разработчик/аналитик:

  • хорошо понимаете принципы работы веб-контейнера Google Tag Manager, разбираетесь в основных сущностях, способны самостоятельно настроить и отладить работу нескольких тегов – обязательно. У системы управления тегами достаточно простая логика, но без понимания того, как происходит запуск и работа с тегами, придется очень тяжело. Так что если чувствуете белые пятна в своих навыках в этой области – потратьте время на изучение доступной информации – благо что ее в избытке. Я рекомендую официальную справку, уроки Google Analytics Academy и соответствующий раздел блога Simo Ahava;
  • работали с Google Analytics, понимаете как физически функционируют счетчики веб-аналитики, знакомы с основами сбора данных для анализа веб-сайтов – обязательно. Здорово, если вы понимаете, каким образом осуществляется поставка данных, как и с помощью каких идентификаторов происходит их агрегация. Если нет – ничего страшного, идем сюда, сюда или сюда;
  • знакомы с Google Cloud – хотя бы на уровне структуры, а также создания и управления аккаунтом – желательно. Самое простое и эффективное решение – разворачивать server-side на серверах Google Cloud. Для понимания вопроса можно посмотреть обучающие видео на Youtube или почитать документацию;
  • понимаете в чем сложности аналитики онлайн-продуктов, знаете про текущие и готовящиеся ограничения браузеров и обновления Apple в области privacy – опционально. Если вы не понимаете масштаба проблем или незнакомы с ними – на vc писали об этом тут и тут.

Что такое GTM Server Side и как он работает?

Минутка занудной теории – увы, без нее никак. Итак, имплементация Google Tag Manager доступна в двух возможных вариантах:

  • Client-side (так работают сейчас большинство контейнеров);
  • Server-side (анонсирован в 2020 году).

Использование GTM на стороне клиента (client-side) означает, что сам контейнер (как программный продукт) устанавливается в виде нескольких строк JavaScript непосредственно в код сайта. Что происходит после загрузки страницы? Инициализируется (запускается) и контейнер GTM. Он начинает прослушивать происходящее на этой веб-странице на предмет соответствия предварительно настроенным сущностям (триггерам). Как только он «услышит» знакомое ему условие триггера, которое было выбрано в настройках, GTM активирует так называемый тег – то есть отправит запрос с данными об этом событии на сторону – допустим в Google Analytics, Яндекс Метрику или Facebook Ads.

В аккаунте Менеджера тегов есть один или несколько контейнеров. Каждый контейнер состоит из набора макросов, правил и тегов. Существуют типы контейнеров для сайтов, AMP-страниц, приложений Android и iOS.

Например: в веб-контейнере GTM мы настроили тег Google Analytics, который должен отрабатывать при загрузке страницы, и опубликовали контейнер. После этого пользователь загружает страницу нашего веб-сайта, скрипт GTM инициализируется, детектит это событие и отправляет данные о нем непосредственно в Google Analytics. После мы идем в GA и наблюдаем изменения статистики. Так это работает в client-side.

Server-side GTM отличается тем, что данные о взаимодействии с содержимым вашего сайта отправляются не напрямую «третьим лицам» (допустим GA или Метрике), а в облачный контейнер Google Tag Manager. Там эти данные обрабатываются так называемым клиентом (об этом чуть ниже) и уже пересылаются дальше – в сервисы аналитики, рекламные кабинеты и куда бы-то ни было еще.

Иначе говоря – контейнер GTM конфигурируется не в рамках строк JavaScript-кода на вашем сайте, а на облачном сервере. Работает это так: пользователь который загружает страницу, активирует отправку так называемого HTTP-запроса в облачный контейнер GTM, там запрос обрабатывается предустановленным клиентом Google Analytics и уже потом в виде стандартизированного события уходит в ваш счётчик Google Analytics.

HTTP запросы - это текстовые сообщения, отправляемые клиентом, чтобы инициировать реакцию со стороны сервера. Их стартовая строка состоит из трёх элементов: метод HTTP, заголовки и тело запроса.

Важно:

Клиент– ключевая сущность GTM Server Side. У нее нет аналогов в веб-контейнере и она служит для предобработки данных. В облачном контейнере может быть несколько клиентов. По умолчанию установлены клиенты Universal Analytics и GA4.

Server-side GTM не подразумевает обязательной одновременной клиентской реализации диспетчера тегов, но она выглядит крайне уместной. То есть контейнерам лучше сосуществовать вместе дабы избежать лишней головной боли с настройкой тегов.

Управление серверным контейнером GTM происходит практически также, как и веб-контейнером – с помощью тегов, триггеров и переменных, хотя есть и свои отличия.

Серверный контейнер должен быть развернут на отдельном сервере. Чаще всего говорят про реализацию на Google Cloud, как наиболее простую и доступную для большинства неискушенных пользователей. Однако это могут быть и облачные серверы любого другого провайдера.

Для чего нужен GTM Server Side и в чем его преимущества?

У использования серверного контейнера есть несколько преимуществ.

First-party context

Это ключевое. На сегодняшний день устанавливая на свой сайт скрипты сторонних сервисов (счетчики аналитики, пиксели ремаркетинга, соцсетей и другие), вы должны отдавать себе отчет в том, что данные о посетителях вашего проекта будут уходить в эти сервисы. Пользователи не всегда этому рады. Общество этому не радо никогда , Именно поэтому возникает давление на браузеры, которое ведет к тому, что последние постоянно ужесточают возможность отправки пользовательских данных третьим лицам.

Cookies – небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Веб-клиент (обычно веб-браузер) всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя.

Пример такой инициативы – запрет Google на использование 3rd-party cookies в браузере Google Chrome с 2023г. Более подробно последствия этого решения для владельцев сайтов и рекламодателей описаны здесь, но если в двух словах – у тех и у других пропадет возможность получать данные о посетителях с адекватной точностью, так как условные Google Analytics или Яндекс Метрика в контексте вашего продукта – сторонние сервисы, и просто так (без явного согласия юзера) делиться этими данными с кем попало нельзя.

Но если вы отправляете данные с вашего веб-сайта не напрямую в Google Analytics, а в серверный GTM-контейнер, который ассоциирован с вашим же доменом, то вы соблюдаете так называемый first-party context. Это важная разница – если ваш сайт находится на домене mysite.com, а GTM-контейнер скажем на gtm.mysite.com, то информация о посетителях:

а) становится недоступна другим JS-скриптам в браузере;

б) обрабатывается на вашем собственном сервере, а не непонятно где;

в) позволяет вам после предобработки получать статистически верные данные.

Конечно, server-side tagging – это не единственная альтернатива 3rd-party cookies. Но другие или уже в прошлом (как FLOC от Google), или ограничены платформами (SKADNetwork от Apple), или страдают в плане точности от тех же самых ограничений (браузерные localStorage, Fingerprint). Так что, серверный контейнер на текущий момент – лучшее решение для решения 3rd-party-проблемы по соотношению простоты и эффективности.

Ускорение работы сайта

В случае использования скриптов аналитики непосредственно в коде сайта это почти всегда негативно сказывается на скорости загрузки и общей производительности веб-страниц. Сама по себе работа сторонних сервисов не несет вашим пользователям какой-то ценности, но способна замедлять работу сайта. Почему же их (пользователей) опыт должен от этого страдать? Перенося работу аналитических скриптов в облако с помощью серверного GTM, вы поможете страницам вашего веб-продукта загружаться быстрее и возможно поспособствуете позитивным изменениям в поисковом ранжировании.

При этом необходимо трезво оценивать роль удаления и оптимизации JS-кода – это всего лишь шажок в комплексе мере и само по себе не является панацеей, не заставит веб-сайт летать и не поднимет вас в одночасье в топ выдачи.

Безопасность данных

К сожалению, управлять тем, какие данные будут собирать сторонние сервисы, расположенные в виде скриптов в коде вашего сайта, практически невозможно. Зачастую, исходя из бизнес-задач они (сервисы) будут получать гораздо больше данных, чем им необходимо. Кроме того, недобросовестные разработчики могут прибегать к манипуляциям с данными, которые строго говоря являются конфиденциальными, и даже искажать вашу статистику, отправляя скажем фейковые запросы к Google Analytics.

Происходит это по двум причинам:

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

б) их работа пока что регулируется достаточно слабо.

Один из свежих примеров общественного давления со стороны регулятора: решение австрийского управления по защите данных (DSB), признавшего незаконным использование Google Analytics на территории ЕС.

Используя серверный контейнер GTM, вы осуществляете предобработку данных де-факто самостоятельно и сами решаете, что отправлять в сервисы аналитики, а что нет. Кроме того, вы более свободны в использовании конфиденциальных данных – в случае если пользователь вам это доверил – и можете не бояться их утечки.

Вишенка на торте – блокировщики рекламы

Существующие на сегодняшний день решения для блокировки нежелательного контента на сайте (браузерные расширения или ограничения самого браузера) работают просто: пресекают функционирование определенного трекера (как правило состоящего в стоп-листе – здесь компания Avast любезно опубликовала материал о механике работы блокировщиков рекламы) с отправкой запроса сторонним сервисам. Но что если запрос уходит на ваш сервер, который связан с вашим же доменом? Тогда прервать его работу топорным методом расширений, блокирующих работу Google Analytics или каких-то рекламных сервисов, уже не получится. И это не самое очевидное, но все же преимущество использования серверного GTM.

Сколько стоит GTM Server Side?

Стоимость использования GTM-контейнера на стороне сервера целиком и полностью привязана к ценообразованию вашего провайдера. Чаще всего прайс будет производной от загруженности веб-сайта. Посмотрим на стоимость на примере Google Cloud.

Ключевая характеристика, влияющая на использование серверного GTM на Google Cloud – это количество необходимых серверов. Googlе в своей документации рекомендует использовать от 3 до 6 серверов (является настройкой по умолчанию), что позволит обрабатывать 50-200 запросов в секунду. Этого скорее всего с лихвой хватит e-commerce- и издательским проектам средней руки. На сегодняшний стоимость одного сервера с 1 vCPU, 0.5 GB memory, 10 GB disk составляет $40 в месяц.

То есть, исходя из рекомендаций (от 3 серверов), вам необходимо $40 x 3 = $120 в месяц. Для более высоконагруженных проектов стоимость будет расти, но к сожалению калькулятора для быстрого расчета стоимости я так до сих пор и не встретил.

Ну и конечно, если вы только-только создаете проект в Google Cloud, то получите $400 велком-бонуса. Это необходимо учитывать при расчете расходов для установки и запуска серверного контейнера.

Что нужно для установки и настройки серверного GTM-контейнера?

Этот раздел – своеобразный чек-лист до начала работы по установке GTM Server Side. Ниже описан необходимый минимум, достаточный для внедрения аналитики вашего ресурса с помощью Google Analytics, GA4 и Google Tag Manager в своей серверной имплементации. Итак, до начала работы вам необходимы:

  • Установленный веб-контейнер GTM. Строго говоря, это не является обязательным, но для простоты и удобства используйте именно этот вариант. Это позволит комфортно осуществлять отладку работы серверного контейнера. Если вы в самом начале пути, начните с установки веб-контейнера GTM на ваш сайт, следуя этой простой инструкции.
  • Чаще всего для имплементации server-side GTM рассматривается работа тега Google Analytics. Так что нужен рабочий счетчик GA4 или Universal Analytics c реализацией через диспетчер тегов с помощью переменной настроек Google Analytics. Это также очень тривиальные задачи, их реализация подробно описана в справке здесь и здесь.
  • Платежный аккаунт на Google Cloud для развертывания серверного контейнера. Для начала вы можете просто создать его по видео-инструкции, не пополняя баланс.
  • Доступ к панели управления DNS от вашего хостинг провайдера для внесения новых записей. Тут находится пример инструкции от популярного хостинг-провайдера.

Заключение

Это все, что важно знать о внедрении системы управления тегами с помощью сервера. Тонкости реализации, настройки тегов, переменных, изменения DNS-записей, отладки контейнера вы можете подсмотреть в многочисленных инструкциях. Я рекомендую ту, что опубликовал Simo Ahava, однако она не является единственно верной.

Система серверного управления тегами находится в стадии бурного роста, поэтому много в этой статье будет нуждаться в скорых обновлениях. Если вы заметите неточность – напишите об этом в комментарии. Другие мои мысли на тему маркетинговой аналитики можно почитать в моем телеграм-канале «Модель атрибуции».

88
9 комментариев

Познавательно! Спасибо!

2

а как сделать на сетевой инфраструктуре РФ?

А в чем проблема? Если у вас проблемы с установкой GTM - то тяжеловато. В остальном - разворачивается на доступных серверных мощностях

Достаточно смелое утверждение, что GTM Server-Side является лучшим вариантов в cookie-less мире с учетом существования 1st-party счетчиков (например, Matomo) и log-счетчиков (например, AWStats)

да, возможно вы правы. сейчас занят статьёй про Matomo

Если я правильно понимаю SS GTM может отслеживать только те события, которые проходят через бэкэнд и для настройки продуктовой аналитики он не сильно поможет?
Например попап на сайте который реализован через JS через бэк не обрабатывается, соответственно настроить передачу события что попап открылся через него не получится?

Нет, речь как раз про использование серверного контейнера как своеобразный proxy для клиентских хитов. Но и с бека тоже можно