16 апр. 2025 г.
Автор:
Uliana Lesiv
Google Tag Manager (GTM) – отличный инструмент для улучшения аналитики и отслеживания на сайте. А data layer – одна из функций, которая помогает вывести отслеживание на новый уровень.
Data layer GTM – это объект JavaScript, который собирает сведения о взаимодействиях пользователей на вашем сайте. С его помощью вы можете собирать практически любые данные – начиная с просмотров товаров и заканчивая операционной системой пользователя. Использование data layer в GTM позволяет настраивать более целевые теги и триггеры отслеживания, обеспечивая более глубокое понимание поведения пользователей и создавая прочную основу для надёжного анализа клиентских данных.
Поэтому мы создали исчерпывающее руководство по data layer, которое охватывает множество аспектов его внедрения и использования в Google Tag Manager. Мы объясним, что такое data layer, варианты его использования, как внедрить data layer на сайте, как создать data layer в Tag Manager, как протестировать настройку и какие распространённые ошибки возникают при настройке.
Приступим!
Сбор нужных данных – это лишь половина дела
Дополните ваш GTM data layer серверным отслеживанием на Stape, чтобы повысить надёжность доставки событий.
Data layer GTM – это объект JavaScript, используемый для передачи данных тегам. Он позволяет передавать события или переменные и настраивать триггеры на основе значений определённых переменных. Data layer используется как в Google Tag Manager, так и в gtag.js.
Data layer служит посредником между вашим сайтом и Google Tag Manager, функционируя как центр для хранения структурированных данных вашего контейнера.
Вам нужно создать data layer, если вы хотите:
С data layer вы не столкнётесь с подобной проблемой, так как контейнер GTM извлекает данные из data layer страницы, который гораздо более стабилен, чем HTML DOM. Запись данных прекращается только в том случае, если кто-то нарушит data layer страницы.
Вы можете указать, какие именно данные вы хотите хранить в этом слое. Существует два метода создания data layer и заполнения его необходимыми параметрами для отслеживания, которые мы рассмотрим в следующем разделе.
GTM считывает и берёт необходимые значения из data layer и отправляет их в инструменты аналитики, такие как Google Analytics, Google Ads, Facebook Pixel и т. д.

В Google Tag Manager dataLayer – это массив, что обозначается символами "[]", и он содержит объект, представленный символами "{}", как показано в скрипте ниже:
dataLayer = [{}];Элементы внутри data layer называются переменными и форматируются как пары 'ключ' : 'значение' (заключённые в "{}").
GTM использует переменную data layer под названием "event", которая также используется обработчиками событий JavaScript для запуска тегов, когда пользователь взаимодействует с элементами на сайте. Так, согласно примеру ниже, 'event' – это 'ключ', а 'register' – это 'значение'.
dataLayer = [{'event' : 'register' }];Для переменных синтаксис такой же, как и для событий. В примере ниже мы берём нужную для отслеживания страну – 'country' ('variable_name') является 'ключом', а 'united states' – 'значением' ('variable_value').
dataLayer = [{'country' : 'united states' }];Существует два метода внедрения data layer: декларация и push data layer. Мы опишем, как использовать оба метода, но вы можете сразу перейти к тому, который подходит вам больше всего.
Вкратце, мы рекомендуем использовать dataLayer.push, поскольку он более популярен и покрывает большинство потребностей. Кроме того, этот метод безопаснее в использовании, так как он не нарушает события в Google Tag Manager, тогда как неправильная настройка деклараций data layer может легко вызвать проблемы.
| Декларация Data Layer | dataLayer.push | |
| Лучше всего подходит для | Значений, необходимых до загрузки страницы | Отправки информации в dataLayer для событий, отличных от события загрузки страницы |
| Время отправки переменной data layer | До выполнения | Во время выполнения |
| Расположение в коде | Над кодом контейнера Google Tag Manager | В любом месте кода |
| Перейти к декларации Data Layer | Перейти к dataLayer.push |
Чтобы использовать этот метод, фрагмент кода data layer следует разместить над фрагментом кода контейнера Google Tag Manager. В этом случае data layer инициализируется до инициализации Tag Manager.
В целом, это не самый популярный или рекомендуемый способ создания data layer, но он сработает, если вы хотите создать точки данных до загрузки контейнера GTM и использовать эти точки данных для управления тегами.
Измените 'variable_name': 'variable_value' на нужные параметры и вставьте код на странице сайта перед фрагментом кода GTM.
dataLayer = [{
'variable_name': 'variable_value'
}];
...
Примечание: используйте оператор "=" для присвоения значений объекта массиву dataLayer.
Метод push динамически добавляет элементы объекта в data layer. В отличие от метода декларации data layer, с помощью push-данных вы можете разместить фрагмент кода data layer в любом месте кода.
Это может немного сбивать с толку, но 'dataLayer' также является переменной JavaScript, доступной любой функции, взаимодействующей с объектом window. Поэтому, чтобы избежать конфликтов с любым другим локальным массивом JavaScript с именем 'dataLayer', лучше всего использовать префикс 'window.dataLayer'.
Таким образом, вам потребуется использовать приведённый ниже код для метода dataLayer.push. Вместо 'variable_name' : 'variable_value' добавьте необходимые параметры.
window.datalayer = window.dataLayer || [];
window.dataLayer.push({
'variable_name' : 'variable_value'
});В приведённом выше блоке кода dataLayer устанавливается равным существующему dataLayer, если он уже существует; в противном случае создаётся новый dataLayer как пустой массив. Оператор || (ИЛИ) гарантирует, что присвоение происходит при выполнении любого из этих условий.
Таким образом, вы избежите создания нескольких деклараций, которые могут перезаписать dataLayer.
Для многих CMS электронной коммерции существуют плагины (включая плагины от Stape), которые могут создать для вас data layer для стандартных событий eCommerce. В некоторых случаях этого может быть недостаточно. Например, если вам нужны дополнительные события или дополнительные данные в событиях data layer. Или если вы используете полностью кастомизированную платформу.
В этом случае вам нужно связаться с вашими разработчиками, чтобы они создали события data layer с нужным вам payload. Обычно это довольно простая задача для разработчиков, которая не займёт много времени, хотя это зависит от архитектуры вашего сайта или платформы.
Несколько полезных рекомендаций:
1. Данные о товаре
2. Данные о транзакции
3. Данные о пользователе
4. Параметры, специфичные для события
| Событие | Когда срабатывает |
| view_item_list | Страница списка товаров или категории |
| view_item | Страница детальной информации о товаре |
| add_to_cart | Товар добавлен в корзину |
| begin_checkout | Начато оформление заказа |
| add_payment_info | Выбран способ оплаты |
| purchase | Заказ подтверждён |
Вы можете по-разному обращаться к элементам вашего массива data layer в Google Tag Manager. Чтобы использовать данные внутри Google Tag Manager, присвойте их переменной или используйте в качестве триггера события. Затем эти переменные или события можно включить в ваши теги, триггеры или другие переменные.
Ниже мы приводим три варианта использования data layer и их настройку в GTM:
В качестве примера мы берём значение покупки оранжевых футболок.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘product_name’ : ‘orange t-shirt’,
'purchase_value' : '5',
‘purchase_currency’ : ‘EUR’
});
2. Выберите "Data Layer Variable" в качестве типа переменной.

3. Добавьте имя переменной data layer и нажмите "Save".
Обратите внимание: поле чувствительно к регистру, поэтому убедитесь, что имя совпадает с именем значения в коде, который вы добавили на страницу. В нашем случае это "purchase_value".

В качестве примера кода мы берём переменную dataLayer, которая запускает событие «register», когда пользователь заполняет данные, необходимые для регистрации, и нажимает «Register».
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event' : 'register'
});1. Перейдите в Google Tag Manager Triggers → нажмите "New."

2. Выберите тип триггера "Custom Event".

3. В поле "Event name" добавьте имя так же, как имя значения в коде, так как это поле чувствительно к регистру. Нажмите "Save".

Приведённый ниже пример переменной data layer запускает события покупки и создаёт информацию о покупке.
dataLayer = [{
'event': 'purchase',
'purchase_info': {
'purchase_amount': 5,
'purchase_curency': 'EUR'
}
}];Вы можете использовать переменные из кода как в качестве переменных, так и в качестве триггеров событий в Google Tag Manager. Ознакомьтесь с процессом настройки из предыдущих шагов для переменных и событий.
Data layer не существует в серверном Google Tag Manager так же, как в клиентском GTM.
Однако у sGTM есть объект под названием Client, который проверяет HTTP-запросы от веб-GTM. Если запрос содержит определённые данные, Client преобразует данные запроса в данные события. Теги также используются для отправки данных из веб-контейнера GTM на сервер GTM.
Чтобы заполнить точки данных в серверном контейнере GTM, вам нужно выбрать метод, который вы будете использовать для отправки данных из веб в серверный GTM; среди популярных:
Этот метод особенно эффективен, если вы настраиваете серверное отслеживание для Google Ads или Floodlight, так как оба полагаются исключительно на теги GA4.
1. В веб-GTM создайте тег с конфигурацией "Google Analytics: GA4 Event".

2. Вы найдёте предопределённые поля для этих данных, и сможете назначать переменные data layer каждому параметру индивидуально.

Ключевое преимущество использования Data Tag/Data Client заключается в том, что он автоматически отправляет data layer и другие общие данные из веб в сервер GTM.
1. Создайте новый тег в веб-контейнере GTM и выберите "Data Tag" в качестве конфигурации тега.
Обратите внимание: вам нужно добавить Data Client в галерею GTM.

2. В конфигурации тега включите два флажка "Send common data" и "Send all from DataLayer."
Система автоматически разберёт данные в веб-GTM и перенаправит всю доступную информацию в серверный GTM.

| Ознакомьтесь с нашей статьёй в блоге о создании data layer для серверного Google Tag Manager, чтобы узнать больше о процессе настройки. |
Примечание: ниже мы описываем, как настроить Google Tag для отправки данных; если у вас уже настроен Google Tag, нет необходимости создавать новый тег. Просто пропустите приведённые ниже шаги и переходите сразу к разделу о создании пользовательского измерения.
В этом случае вам нужно только добавить параметры, как в коде для data layer, в разделе "Shared event settings."
1. В разделе "Tags" GTM нажмите "New" и выберите "Google Tag" в качестве типа тега.

2. Добавьте ваш GA4 Measurement ID, и в разделе "Shared event settings" перечислите параметры, которые вы добавили в свой код.

3. В качестве триггера выберите "Page View – All Pages".

Существует список стандартных параметров. Если данные, которые вы хотите отслеживать с помощью data layer, отсутствуют в списке рекомендуемых событий Google Analytics, вам нужно добавить их вручную в вашем аккаунте GA4 в виде пользовательских измерений. После добавления они появятся в отчётах GA4.
1. В аккаунте Google Analytics нажмите "Admin" → "Custom definitions."

2. Нажмите "Create custom dimension" и заполните необходимый параметр:
Нажмите "Save".

| Получите улучшенный предпросмотр GTM и отформатированные серверные запросы для более простой проверки, будь то для ваших клиентов или вашего собственного крупного контейнера GTM, благодаря Stape GTM Helper. |
Чтобы проверить, улавливает ли Google Tag Manager переменную, вам нужно выполнить несколько простых шагов, аналогичных обычной отладке в GTM.
1. Нажмите "Preview" и добавьте URL сайта, который вы отлаживаете.

2. Переключитесь на вкладку раздела "Variable", и если всё работает, вы увидите нужные данные на этой вкладке.

Если у вас возникли проблемы с режимом отладки в GTM, ознакомьтесь с нашими руководствами:
Чтобы проверить, фиксирует ли Google Analytics данные, перейдите в "Admin" → DebugView.

Если вы видите, что переменные или события не отправляются, скорее всего, вы используете неправильный регистр для имён объектов или пропустили кавычки.
Хороший пример:
dataLayer.push({'variable_name': 'variable_value'});Плохой пример:
datalayer.push({'variable_name': 'variable_value'});Хороший пример:
dataLayer.push({'variable_name': 'variable_value'});Плохой пример:
dataLayer.push({variable_name': 'variable_value'});Если вы не можете запустить теги во всех нужных местах на сайте, проверьте имена переменных на разных страницах.
Самая распространённая ошибка – несогласованный регистр в именах переменных на разных страницах, поэтому вам нужно проверить названия.
Хороший пример:
// Homepage:
dataLayer.push({'variable_name': 'variable_value'});
// Product page:
dataLayer.push({'variable_name': 'variable_value'});Плохой пример:
// Homepage:
dataLayer.push({'variable_name': 'variable_value'});
// Product page:
dataLayer.push({'variable Name': 'variable_value'});GTM datalayer – важнейший компонент GTM. Он позволяет нам фиксировать взаимодействия пользователей с вашим сайтом, а также предоставляет дополнительные данные о взаимодействии или его контексте. Использование data layer необходимо, если вы хотите создать более качественную структуру данных.
Концепцию data layer довольно сложно реализовать, и для построения сложной инфраструктуры отслеживания, скорее всего, потребуются разработчики.
Вот краткое резюме:
Хотите начать работу на стороне сервера?
Попробовать бесплатно16 апр. 2025 г.
Комментарии