2015-11-11 2 views
1

В Диспетчере тегов Google существует предопределенный тип переменной «Переменная слоя данных» с вводом имени переменной. В стандартном одиночном уровне пары ключ/значение это легко.Как создать переменную уровня данных GTM с помощью сложного массива

var dataLayer = [{"mykey":"myvalue"}];

Учитывая, что уровень данных вы бы просто использовать mykey в качестве переменной для ввода в ПТМ. Однако, если вы используете CEDDL спецификации (http://www.w3.org/2013/12/ceddl-201312.pdf) структуру, которую вы в конечном итоге с глубоко вложенного массива:

dataLayer = [ 
    { 
    "product": [ 
     { 
     "category": { 
      "primaryCategory": "Auto Loans" 
     }, 
     "productInfo": { 
      "productID": "1", 
      "productName": "PurchaseLoan", 
      "description": "Auto finance loan" 
     }, 
     "security": [ 
      "Analytics", 
      "Personalization", 
      "Recommendations" 
     ] 
     } 
    ] 
    } 
] 

Таким образом, реальный вопрос: как я получить доступ к значению «PRODUCTNAME» в приведенном выше примере?

В стандартном Javascript вы можете получить доступ к нему так: dataLayer[1].product[0].productInfo.productName или dataLayer.1.product.1.productInfo.productName

... но ни один из этих вариантов работы (с или без dataLayer.1 в качестве первого узла).

Это интерфейс для ввода имени переменной: enter image description here

ответ

1

Когда вы определяете переменную DataLayer в ГТМ, вам не нужно указывать «dataLayer» в имени переменной, то есть. это должно быть просто:

product.0.productInfo.productName 
+0

Я пробовал это раньше, и это не сработало, но мне пришлось настроить триггер, чтобы стрелять в DOM, а не в режиме просмотра страницы. – developdaly

Смежные вопросы