Итак, мы работаем над внедрением расширенного отслеживания электронной торговли для клиента. Мы сделали это с помощью dataLayer. Веб-разработчик реализовал наш код в соответствии с предложением, но были случаи, когда dataLayer.push пропускался из-за нескольких транзакций.
Я приложил нижеприведенный код для того, как он в настоящее время реализован на странице Успешного заказа.
Может быть некоторая проблема с AngularJS, реализованным на веб-сайте, и был бы признателен, если бы кто-нибудь помог мне понять, как мне следует реализовать код GTM для этих пропущенных просмотров страниц и кодов dataLayer.push.
Когда я просматриваю в окне отладки GTM, происходит два случая:
- Событие покупки активируется в dataLayer.push, и мы получаем данные транзакции в Google Analytics.
Просмотр страницы сработает, и событие dataLayer.push не последует. Хотя, когда я проверяю источник на странице, коды dataLayer.push доступны для покупки.
function getCartproducts () {
var dataLayerIndex = new Array();
dataLayerIndex.push({"name": "xxxxxx" , "id" : "xxxxxx" , "price" : "11.00" , "category" : "xxxxx" , "quantity" : 2});
return (JSON.stringify(dataLayerIndex));
}
function getCoupon(){
var couponLayerIndex = new Array();
couponLayerIndex.push('');
return (JSON.stringify(couponLayerIndex[0]));
}
window.dataLayer.push({
'event': 'checkout',
'ecommerce': {
'checkout': {
'actionField': { 'step': 5 },
'products':
JSON.parse(getCartproducts())
}
},
})
window.dataLayer.push({
'event': 'purchase',
'ecommerce': {
'purchase': {
'actionField': {
'id': '269459',
'revenue': 25.65,
'tax': '3.85',
'shipping':'7.50',
'coupon': getCoupon(),
},
'products': JSON.parse(getCartproducts())
}
}
});
Я ожидаю, что код будет вызывать пользовательское событие покупки каждый раз, когда пользователь просматривает последнюю страницу с благодарностью. Но, как описано, мы пропустили довольно много транзакций.