Продвижение сайтов & web-аналитика

Отправить заявку    +38 096 558 75 14

Data Layer и переменные уровня данных

Если Вы работаете с Tag Manager, то Вы рано или поздно столкнетесь с термином “Data Layer”, который при правильном использовании может открыть массу возможностей для веб-аналитики.

Data Layer - это уникальная система передачи данных с сайта в Google Tag Manager, включающая в себя конкретный информационный массив.

Как это работает, или схема работы Data Layer:

  1. Скрипт Data Layer, как правило имплементирован в код с подгрузкой переменных с сайта;
  2. Google Tag Manager содержит специальные обработчики, которые сканируют данные блока Data Layer и отправляют в контейнер тегов;
  3. Затем, данные в контейнере тегов распределяются согласно его алгоритмам настройки.

Пример расположения кода Data Layer следующий:


<script>
dataLayer = [];
</script>

Код, как правило содержит переменные, которые сопряжены с Google Tag Manager и тянут информацию с сайта. На языке программистов это - добавить переменные уровня данных, переменные передающие информацию. Для примера рассмотрим простой код электронной торговли Universal Analytics:


<script>
dataLayer = [{
	'transactionId': '1234',
	'transactionAffiliation': 'holostenko.ua',
	'transactionTotal': 11.99,
	'transactionTax': '1.29',
	'transactionShipping': '5',
   'transactionProducts': [{
   	'sku': 'DD44',
    	'name': 'T-Shirt',
    	'category': 'Apparel',
    	'price': 11.99,
    	'quantity': 1
   }]
}];
</script>

Price, name, sku - эти переменные есть в Google Tag Manager, и их значения потом просто подгружаются в контейнер. Если случай индивидуальный, или же это новая функция, которая еще не прошита в TGM, то переменные необходимо изначально создать в менеджере тегов.

  • Код “dataLayer = []” обычно размещается выше кода контейнера. Если он будет ниже, то данные в контейнер просто не запишутся.
  • Объявленные переменные актуальны только на странице, на которой они объявлены. Разовое объявление для всего сайта не актуально.
  • Подгрузка Data Layer происходит асинхронно и не препятствует загрузке других элементов страницы.

Data Layer, event, push

Также, в работе с “Data Layer” весомую роль играет специальная переменная “event”, которая срабатывает как триггер при наступлении события, и отправляет соответствующие данные.

Триггер - заданное условие срабатывания события в Google Tag Manager.

Срабатывание события “event” осуществляется только с методом “push”, и имеет следующий вид:


dataLayer.push({'event': 'event_name'});

где “event_name” - название события.

Если Вы заметили, то квадратные скобки, поменялись на круглые. Это особенность метода “push”, который отправляет данные при определенном действии, независимо от места расположения кода. Яркий пример был нами описан в расположении кодов расширенной электронной торговли.


<script>
dataLayer.push({
  'ecommerce': {
    'detail': {
      'actionField': {'list': 'Apparel Gallery'}, 
      'products': [{
        'name': 'Triblend Android T-Shirt',
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray'
       }]
     }
   },
 'event': 'gtm-ee-event',
 'gtm-ee-event-category': 'Enhanced Ecommerce',
 'gtm-ee-event-action': 'detail',
 'gtm-ee-event-non-interaction': 'True',
});
</script>

Метод “Push” актуален, когда Вы не знаете, будет ли совершено событие или нет. И таким образом, данные отправляются только в том случае, когда будет осуществлено конкретное действие типа: click, addtocart, event, или любое другое, и по коду оно может располагаться где угодно.

В интернете можно встретить выражение “window.dataLayer.push”. Это универсальный способ, позволяющий прописывать переменные в любом месте. Но, мы его не используем, так как строго придерживаемся рекомендаций Google Developer.

Еще несколько важных моментов про Data Layer и переменные уровня данных:

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

Если нет программиста и нет возможности разместить код Data Layer. Как быть?

  • подгрузка через теги событий Google Tag Manager с публикацией переменных;
  • данные переменных подгружаются через селекторы.

Данный способ не совсем надежен, так как современные сайты имеют динамическую структуру, и данные из селектора в определенный момент могут перестать поступать.

Надеемся, что эта статья была для Вас полезной, и будем радовать интересными материалами на нашем блоге еще.