← Back to Academia

10.15 - GTM - архитектура и принципы

GTM - прослойка между сайтом и маркетинговыми инструментами. Один snippet на сайте → управление всеми тегами из интерфейса, без разработчиков.

#intermediate #technical #block-10


Навигация

10.14 - Яндекс Метрика - цели и JavaScript API | → 10.16 - GTM - dataLayer


Зачем GTM

Без GTMС GTM
Каждый тег = обращение к разработчикуМаркетолог управляет тегами сам
Новый пиксель = deployНовый пиксель = 5 минут в GUI
Нет версионированияGit-like версии, rollback
Нет debug modePreview mode с полным дебагом
Хаос в кодеВсе теги в одном месте

Архитектура: Container → Tags → Triggers → Variables

Container
GTM-XXXXX

Tag: GA4 Config

Tag: Meta Pixel

Tag: Google Ads Conversion

Trigger: All Pages

Trigger: Purchase Event

Variable: Page URL

Variable: dataLayer - transaction_id

Variable: dataLayer - value

Tags (Теги) - ЧТО отправляем

Тег = фрагмент кода, который выполняется при срабатывании триггера.

ТипПримерВстроенный шаблон?
GA4 ConfigurationИнициализация GA4
GA4 EventОтправка событий
Meta PixelFacebook Pixel events✅ (Community)
Google Ads ConversionConversion tracking
Google Ads RemarketingRemarketing tag
Custom HTMLЛюбой JavaScript✅ (universal)
Custom ImagePixel-трекер (1x1 gif)

Triggers (Триггеры) - КОГДА выполняем

ТипКогдаПример
Page ViewЗагрузка страницыAll Pages, specific URL
DOM ReadyDOM построенДля тегов, зависящих от DOM
Window LoadedСтраница полностью загруженаNon-critical tags
ClickКлик по элементуCTA button click
Form SubmissionОтправка формыLead form submit
Custom EventdataLayer.push({event: '...'})purchase, add_to_cart
Element VisibilityЭлемент виден на экранеBanner viewed
TimerЧерез N миллисекундEngagement tracking
History ChangeSPA route changeVirtual pageviews
Scroll Depth% прокрутки страницы25%, 50%, 75%, 90%

Variables (Переменные) - КАКИЕ данные используем

КатегорияПримеры
Built-inPage URL, Page Path, Click Element, Click URL, Form ID
Data Layerecommerce.value, user.id, event_data.category
Custom JavaScriptЛюбая JS-функция, возвращающая значение
1st Party CookieЧтение cookie
ConstantСтатические значения (API keys, IDs)
Lookup TableМаппинг значений (URL → category)
RegEx TableRegex-based маппинг

Workspaces и Environments

Workspaces

  • Позволяют нескольким людям работать параллельно
  • Как branches в Git
  • Merge conflicts возможны при одновременном редактировании

Environments

EnvironmentURLНазначение
Live(production)Боевой трафик
LatestPreview linkТестирование перед publish
DevCustom URLStaging/dev сервер

Naming Convention

Без convention GTM-контейнер превращается в хаос за 3 месяца.

Tags

[Platform] - [Type] - [Detail] GA4 - Event - purchase Meta - Pixel - PageView GAds - Conversion - lead_form Custom - HTML - Hotjar

Triggers

[Type] - [Condition] CE - purchase (Custom Event) PV - All Pages (Page View) Click - CTA Hero Button Visibility - Banner Promo

Variables

[Type] - [Name] DL - ecommerce.value (Data Layer) JS - getUserSegment (Custom JS) Cookie - _ga_user_id Const - GA4 Measurement ID

Preview Mode - Debug

GTM Preview Mode (Tag Assistant) показывает:

  1. Все dataLayer push'ы в хронологии
  2. Какие теги сработали (fired) и не сработали (not fired) на каждом событии
  3. Значения всех переменных в момент каждого события
  4. Детали каждого тега (payload, request)

Как использовать:

  1. GTM → Preview → Enter URL
  2. Сайт откроется с debug-панелью
  3. Совершайте действия → наблюдайте теги и переменные

Подробнее: 10.24 - GTM - Debug и отладка


Источники


🔧 Практика

  1. Создайте GTM-контейнер
  2. Установите на тестовый сайт (или используйте GTM Preview с любым сайтом)
  3. Добавьте: GA4 Config tag, GA4 Event tag (scroll, click), Meta Pixel
  4. Настройте naming convention
  5. Протестируйте в Preview Mode - убедитесь, что все теги firing correctly

Связанные заметки