#google-tag-manager #google-datalayer
#google-tag-manager #google-datalayer
Вопрос:
Я пытаюсь получить доступ к переменным datalayer при событии добавления в корзину, но оно не отслеживается на сайте администратора менеджера тегов
* Событие запускается, но значения не отправляются
Нажатие на уровень данных:
<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
Ответ №1:
Переменным уровня данных не обязательно ссылаться на определенный шаг (элемент массива) уровня данных. Когда вы создаете ссылку на переменную dataLayer, например, ecommerce
, Google Tag Manager (GTM) попытается оценить ее при любом заданном событии GTM, но вернется к undefined
или любому другому указанному вами значению.
Это означает, что если вы запустите свой код отслеживания Facebook Pixel, когда станут доступны данные о продукте (событие = AddToCart), правильная ссылка на данные электронной коммерции будет иметь значение. Существует несколько вариантов получения названия вашего продукта.
Вы можете создать общую переменную «Электронная коммерция», ссылающуюся 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 Pixel, используя {{Ecommerce - name of product added to cart}}