Есть ли способ получить значение из объекта, содержащегося в свойстве массива Google DataLayer через GTM - PullRequest
0 голосов
/ 28 февраля 2020

Я создал переменную dataLayer в GTM и по какой-то причине я получаю неопределенное значение для этой переменной, хотя данные были перенесены в dataLayer (я мог видеть значения в консоли Chrome DevTools).

Примечание : Я могу получить значения свойств всех объектов и дочерних объектов, но не значение объекта, который является элементом массива (см. Пример ниже).

var data = { id: 123, name: 'Joe', actions: [ { type: 'some type', desciption: 'Some description' }<br> ] }

После того, как вышеприведенные данные отправлены в dataLayer, я могу получить доступ к идентификатору и имени с помощью ниже в GTM

data.id
data.name

Однако, когда Я пытаюсь получить доступ к свойству type из свойства Actions с указанным ниже Имя переменной уровня данных Я получаю неопределенное значение.

data.actions[0].type

Есть ли что-то, что я делаю неправильно или какой правильный способ доступа к значение типа в GTM с использованием имени переменной уровня данных (версия 2). Заранее спасибо!

1 Ответ

0 голосов
/ 29 февраля 2020

Можете ли вы включить "отладку" в GTM? Если это так, включите его, а затем загрузите страницу и откройте Инструменты разработчика и посмотрите, какая переменная заполнена нужными вам данными и оттуда работает в обратном направлении.

Я не уверен в точной терминологии Javascript для чего Я собираюсь описать, но в массиве data (?) Или объекте (?) id и name являются непосредственными потомками / потомками.

Но тогда, когда вы опуститесь до actions у вас есть дополнительный набор скобок между actions и type или description.

Возможно, это не имеет значения, JS на самом деле не мое, но если вы включите отладку в GTM, затем вы можете открыть Dev Tools и увидеть точный синтаксис переменной / объекта, который содержит данные, которые вы хотите, и скопировать / вставить их в ваш код.

...