Менеджер тегов Google - переменная уровня данных не определена
Я хочу использовать идентификаторы продуктов в качестве метки в триггере Google Tag Manager. У меня есть заполненный уровень данных. Когда в Chrome Console я использую
dataLayer[1].ecommerce.detail.products[0].id
Я получаю в качестве вывода действительный идентификатор продукта.
В Google Tag Manager я создаю пользовательскую переменную javascript и пытаюсь:
function(){
var art_nr = dataLayer[1].ecommerce.detail.products[0].id;
return art_nr;
}
Эта переменная позже в отладчике просто содержит "undefined".
Я проводил исследования в течение нескольких часов, но не могу найти простого объяснения, как это сделать.
2 ответа
Вы не можете (или, по крайней мере, я не верю, что вы можете) ссылаться на dataLayer, используя его собственное имя в переменной. Вам нужно создать DataLayer
введите переменную и вызовите ее со стандартным обозначением переменной GTM.
Ваша переменная dataLayer должна быть определена как
ecommerce.detail.products.0.id
(обратите внимание на использование точечной нотации.)
В вашей пользовательской переменной JS вы должны вызывать ее в формате двойных фигурных скобок:
function(){
var art_nr = {{variableName}};
return art_nr;
}
Я бы добавил к ответу Nyuen, что вам нужно выбрать "версию 2" dataLayer.
Помните, что dataLayer - это JavaScript-массив, разработанный специально для GTM.
Я обнаружил, что этот пост: https://www.simoahava.com/gtm-tips/data-layer-variable-versions-explained/ довольно хорошо объясняет, как dataLayer работает с GTM.
A.