Что такое datalayer. Давайте разберемся в этом теоретическом вопросе. 

Если вы работаете с системами веб-аналитики, особенно, если вы настраиваете электронную коммерцию, либо отслеживаете какие-то сложные события, которые происходят на вашей веб-странице, вы могли сталкиваться с определением datalayer. 

При работе с системой управления тэгов Google Tag Manager тоже с этим приходится сталкиваться очень часто. 

Что такое datalayer? Исходя из названия этого определения с английского это можно перевести как уровень данных. Что же это за данные и для чего они нужны? 

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

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

Например, это могут быть системы аналитики Google Analytics или Яндекс Метрика. Это может быть диспетчер управления тэгов, например Google Tag Manager. Это могут быть рекламные системы и.т.д.

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

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

Конечно, такое количество запросов будет тормозить вашу страницу, увеличивать вероятность ошибки и.т.д. 

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

При этом совершается намного меньше запросов для обмена информацией. Все находится в одном месте и разные системы могут оттуда брать нужную информацию.

Т.е. у нас получается некая прослойка или переменная, в которой содержаться все данные. Это и есть тот самый datalayer. 

datalayer - это уровень данных. Это просто Javascript массив, который содержит в себе Javascript объекты. По сути, datalayer организуется с помощью языка программирования Javascript. 

Все события, которые происходят на странице, язык Javascript записывает в эту самую переменную dataLayer. Т.е. datalayer - это просто Javascript переменная. 

Нужно понимать, что название для этой переменной не обязательно будет dataLayer. Принято называть эту переменную datalayer, но нужно понимать, что эта переменная может называться так, как вы этого захотите. 

Главное понимать, что это такая переменная, которая будет содержать информацию о данных, которые находятся на вашей веб-странице. 

Это переменная содержит в себе объекты того, что произошло на странице. По мере того, как пользователь совершает какие-то события на веб-странице, эта переменная разрастается какими-то данными. 

После этого, данные могут из переменной datalayer передаваться в другие системы. 

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

Без объекта datalayer система Google Tag Manager вообще не может работать. Весь обмен данными между сайтом и Google Tag Manager происходит через datalayer.

datalayer является массивом, т.к. важно отслеживать именно порядок следования событий, информация о которых в нем находится.

Надеюсь, что вам стало понятнее, что такое datalayer, что такое уровень данных. Если что-то не понятно, пишите в комментариях.