Google Tag Manager доступ к значениям объекта уровня данных - PullRequest
0 голосов
/ 09 апреля 2019

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

* Событие инициировано, но значения не отправляются

Push Dayalayer:

<script>
  dataLayer.push({
    'event': 'addToCart', 
    'ecommerce': {
      'currencyCode': 'EUR', 
      'add': {
        'products': [
          {
            'name': 'test',
            'id': 'ZZZ232323',
            'price': 33,
            'brand': '',
            'category': 'test',
            'variant': '','quantity': 1
          }
        ]
      }
    }
  });
</script>

И я пытаюсь получить доступ к datalayer, чтобы получить название продукта, используя:

dataLayer.find(x => x.event == 'addToCart').ecommerce.add.products[dataLayer.find(x => x.event == 'addToCart').ecommerce.add.products.length - 1].price

Изображение сайта менеджера тегов Google

1 Ответ

0 голосов
/ 10 апреля 2019

Переменные уровня данных не должны ссылаться на определенный шаг (элемент массива) dataLayer. Когда вы создаете ссылку на переменную dataLayer, например, ecommerce, Google Tag Manager (GTM) попытается оценить его в любом заданном событии GTM, но вернется к undefined или любому другому указанному вами значению.

Это означает, что если вы активируете свой код отслеживания пикселей Facebook, когда данные о продукте станут доступны (event = addToCart), правильная ссылка на данные электронной торговли будет иметь значение. Есть несколько вариантов, чтобы получить название вашего продукта.

Вы можете создать общую переменную 'Ecommerce', ссылаясь на ecommerce как Имя переменной уровня данных. В своем коде, связанном с пикселями Facebook, вам нужно перейти к нужной переменной, а также позаботиться о возможных пропущенных значениях. Однако эта переменная электронной торговли может использоваться в нескольких тегах.

var productName = {{Ecommerce}}.add.products[0].name; //assuming you'll always have just one product in products array

Или вы можете перейти к определенной переменной, где ваш набор «Электронная торговля - название товара добавлен в корзину», где вы ссылаетесь на ecommerce.add.products[0].name. Таким образом, вы можете просто присвоить эту переменную соответствующей пиксельной переменной Facebook, используя {{Ecommerce - name of product added to cart}}

...