#google-tag-manager #google-datalayer
Вопрос:
Я занимаюсь продвижением уровня данных для покупок в электронной коммерции. В соответствии с руководством по GTM номенклатуры товаров находятся в массиве. Проблема заключается в извлечении данных: во всех руководствах, которые я видел, упоминается использование индекса массива-например transactionProduct.1.price
, для получения цены за 2-й товар. Но это не надежное решение: что делать, если пользователь покупает более 100 товаров? По этой причине я не могу жестко закодировать индекс массива. Итак, как мне динамически фиксировать свойства в этом случае? Я думаю, что мне нужно использовать пользовательскую переменную JavaScript, определяемую пользователем, но как это будет выглядеть (пример был бы полезен)?
Ответ №1:
Я думаю, что я понял это:
Если наш толчок слоя данных выглядит так:
window.dataLayer.push({
'event' : 'purchase',
'ecommerce': {
'transaction': {
'actionField': {
// ...
},
'products': // an array of objects...
}
}
});
Затем эта пользовательская переменная JavaScript GTM вернет список (цен для каждого товара):
function(){
var productList = {{NAME_OF_DATA_VARIABLE_ON_GTM_OF_ENTIRE_PUSHED_OBJECT}}.transaction.products;
return productList.map(function (obj) {
return obj.price;
});
}