Блог · PPC

dataLayer в Google Tag Manager: что это и зачем он нужен маркетологу

Зачем сайту слой данных между разметкой и тегами: какие поля нужно запрашивать у разработчиков, как избежать хаоса в триггерах и как связать всё с GA4.

~4 мин чтения PPC

dataLayer в Google Tag Manager: что это и зачем он нужен маркетологу

Зачем нужен dataLayer

Что такое dataLayer

dataLayer — это структурированный «контейнер» данных в браузере, в который фронтенд помещает события и контекст, а GTM считывает их для запуска тегов без необходимости изменения кода под каждую новую маркетинговую задачу.

Без согласованного слоя данных маркетингу приходится долго ждать разработки каждого нового пикселя или события.

Помните, что dataLayer должен быть запущен до загрузки фрагмента GTM — в противном случае раннее событие исчезнет, и вы долго не сможете понять, почему часть конверсий не попадает в GA4.

В больших командах стоит отдельно прописать, «кто имеет право отправлять события»: иначе отдел маркетинга добавляет событие в одном месте, разработчики — в другом, а QA видит третий вариант названия события. Единый словарь событий и pull request на изменения в dataLayer уменьшают хаос и ускоряют расследование расхождений между GA4, Ads и CRM.

  • Согласуйте формат push-событий и минимальный набор полей заранее.
  • Не используйте случайные названия ключей — это сбивает триггеры.
  • Разделите данные пользователя и данные страницы по разным ключам.
  • Убедитесь, что события не содержат персональных данных без необходимости.
  • Документируйте пример payload для каждого важного события.
  • Проверьте порядок инициализации GTM и dataLayer.
  • После SPA-навигации обновляйте контекст страницы в слое.
  • Согласуйте с юридическим отделом перечень полей, требующих согласования.
  • Ведите версионирование контейнера GTM.
  • Не дублируйте одно и то же событие из фронтенда и из GTM без необходимости.
  • Указывайте версию схемы события в поле schema_version или аналогичном — это помогает при переходе на новый фронтенд.
  • Убедитесь, что события purchase и refund не пересекаются по transaction_id.
  • Для SPA фиксируйте отдельный push после перехода на стороне клиента, иначе page_type останется от предыдущего маршрута.

Конверсии в GA4 — события и цели.

Какие поля следует запросить у разработчиков

Пример полей dataLayer

Минимальный набор зависит от бизнес-модели, но почти всегда полезны event, page_type, user_logged_in, value/currency для электронной коммерции и идентификатор продукта для розничной торговли.

Главное — стабильность: если поле меняет название каждый месяц, отдел маркетинга теряет историю отчетов.

Договоритесь об ограничении размера объекта события и избегайте глубоко вложенных структур без документации — плоский объект проще отлаживать в превью и при экспорте в BigQuery.

  • Добавьте transaction_id для обеспечения уникальности покупок.
  • Передавайте купон, если промо-акция влияет на атрибуцию.
  • Для лидов передавайте form_id или step funnel.
  • Для контента — author и category_slug.
  • Для B2B — company_size в качестве опционального параметра.
  • Убедитесь, что null не вызывает срабатывание триггеров.
  • Сравните типы данных: строка и число.
  • Не передавайте личную информацию в открытом виде без необходимости.
  • Проверьте длину значений для ограничений CDN.
  • Сохраните пример JSON для контроля качества.
  • Добавьте поле environment=staging|production, чтобы тестовые события не смешивались с производственными в BigQuery.
  • Ограничьте максимальное количество ключей на событие, чтобы не увеличивать размер полезной нагрузки мобильных сессий.
  • Для логина передавайте только атрибут роли без персональных данных, если это необходимо для сегментации воронки продаж.

UTM — единый шаблон меток.

Связь с GA4

Триггеры GTM и теги GA4

Триггеры GTM обычно считывают события dataLayer или переменные DOM, после чего запускают тег GA4 с сопоставлением параметров.

Ошибка в одном триггере может либо нарушить всю цепочку, либо привести к двойному подсчёту — поэтому так важны превью и DebugView.

Для событий электронной коммерции отдельно опишите сопоставление элементов с моделью GA4: триггер может срабатывать, а параметры покупки могут разбрестись между тестовой и производственной средами без единого словаря.

  • Используйте Consent Initialization для CMP.
  • Разделите контейнеры staging и production.
  • Проверяйте порядок тегов, если есть зависимости.
  • Не копируйте теги без переименования — это сбивает с толку аудиторскую проверку.
  • После изменения форм обновляйте CSS-селекторы, если триггер основан на DOM.
  • Убедитесь, что link click не дублирует file_download.
  • Соблюдайте соглашение об именовании для триггеров и переменных.
  • Проверьте влияние на скорость загрузки страницы из-за большого количества тегов.
  • Согласуйте SLA на публикацию новой версии контейнера.
  • Сохраняйте резервную копию рабочей области перед массовым удалением.
  • После изменения баннера cookie убедитесь, что Consent Initialization не блокирует критические события для зарегистрированных пользователей.
  • Для WebView в мобильных приложениях выделите отдельный контейнер или рабочую область, чтобы не нарушить работу веб-тегов.
  • Убедитесь, что Custom HTML-теги не вызывают XSS из-за динамических переменных из URL.

Аналитика — SEO-Studio Analytics.

Заключение

dataLayer — это договор между продуктом, разработкой и маркетингом. Он экономит время на внедрении трекинга и снижает риск сбоев в отчетах после каждого релиза. Документируйте поля, тестируйте в DebugView и не создавайте события без бизнес-смысла. SEO-Studio поможет настроить GTM + GA4 так, чтобы данные были стабильными от клика до решения руководства.

Если подытожить практику: начните с краткого списка событий, добавьте примеры payload в репозиторий и включите проверку dataLayer в чек-лист релиза, а не рассматривайте это как «лишний шаг». Тогда отдел маркетинга будет получать предсказуемые отчеты, а разработчики — меньше ночных звонков из-за «исчезнувших» конверсий.