Настройка Data Layer для Tag Manager

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка Data Layer для Tag Manager
Средняя
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Настройка Data Layer для Tag Manager

Data Layer — JavaScript-массив, через который сайт передаёт структурированные данные в Google Tag Manager. GTM читает Data Layer и использует эти данные в тегах и триггерах. Правильная архитектура Data Layer позволяет маркетологам самостоятельно настраивать теги без изменений в коде.

Инициализация

Data Layer должен быть инициализирован до загрузки GTM:

<script>
window.dataLayer = window.dataLayer || [];
// Глобальные данные страницы
window.dataLayer.push({
    pageType:    '{{ $pageType }}',   // 'product', 'category', 'checkout', 'confirmation'
    siteLanguage: '{{ app()->getLocale() }}',
    {% if auth()->check() %}
    userId:      {{ auth()->id() }},
    userType:    '{{ auth()->user()->isB2B() ? "b2b" : "b2c" }}',
    userPlan:    '{{ auth()->user()->plan }}',
    {% endif %}
});
</script>
<!-- Далее GTM snippet -->

Структура событий

Стандарт — каждое событие содержит event (имя), тематические данные и при необходимости ecommerce:

// Хорошая структура
dataLayer.push({
    event: 'product_add_to_cart',
    ecommerce: {
        currency: 'RUB',
        value:    product.price,
        items: [{
            item_id:       product.id,
            item_name:     product.name,
            item_brand:    product.brand,
            item_category: product.category,
            price:         product.price,
            quantity:      qty
        }]
    }
});

Очистка предыдущего ecommerce

Перед каждым событием e-commerce нужно очищать предыдущие данные — иначе GTM может смешать их:

// Обязательно перед каждым e-commerce событием
dataLayer.push({ ecommerce: null });
dataLayer.push({
    event: 'view_item',
    ecommerce: { /* новые данные */ }
});

Настройка переменных в GTM

В GTM создаются переменные типа "Data Layer Variable":

  • dlv - ecommerce.valueecommerce.value
  • dlv - ecommerce.itemsecommerce.items
  • dlv - userIduserId

Эти переменные используются в тегах GA4 для передачи параметров.

Триггеры для событий

В GTM создаётся триггер "Custom Event" с именем события из Data Layer:

  • Trigger type: Custom Event
  • Event name: product_add_to_cart
  • Fire on: All Custom Events

Отладка

// Просмотреть все события Data Layer в консоли
window.dataLayer.forEach((item, index) => {
    if (item.event) console.log(index, item.event, item);
});

GTM Preview Mode показывает Data Layer в правой панели при каждом событии — это основной инструмент отладки.

Серверный Data Layer (SSR)

При SSR (Next.js, Nuxt) данные могут быть встроены в HTML на сервере, что исключает мелькание undefined:

// На сервере
const initialDataLayer = [
    {
        event:    'page_data',
        pageType: 'product',
        product: { id: product.id, name: product.name, price: product.price }
    }
];
<script>
window.dataLayer = <?= json_encode($initialDataLayer) ?>;
</script>

Срок настройки: 2–3 дня для полной архитектуры Data Layer с документацией для маркетологов.