Менеджер тегов 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.

Другие вопросы по тегам