window.ExactMetricsDualTracker.helpers.mapProductItem = function (uaItem) { var prefixIndex, prefixKey, mapIndex; var toBePrefixed = ['id', 'name', 'list_name', 'brand', 'category', 'variant']; var item = {}; var fieldMap = { 'price': 'price', 'list_position': 'index', 'quantity': 'quantity', 'position': 'index', }; for (mapIndex in fieldMap) { if (uaItem.hasOwnProperty(mapIndex)) { item[fieldMap[mapIndex]] = uaItem[mapIndex]; } } for (prefixIndex = 0; prefixIndex < toBePrefixed.length; prefixIndex++) { prefixKey = toBePrefixed[prefixIndex]; if (typeof uaItem[prefixKey] !== 'undefined') { item['item_' + prefixKey] = uaItem[prefixKey]; } } return item; }; ExactMetricsDualTracker.trackers['view_item_list'] = function (parameters) { var items = parameters.items; var listName, itemIndex, item, itemListName; var lists = { '_': {items: [], 'send_to': exactmetrics_frontend.v4_id}, }; for (itemIndex = 0; itemIndex < items.length; itemIndex++) { item = ExactMetricsDualTracker.helpers.mapProductItem(items[itemIndex]); if (typeof item['item_list_name'] === 'undefined') { lists['_'].items.push(item); } else { itemListName = item['item_list_name']; if (typeof lists[itemListName] === 'undefined') { lists[itemListName] = { 'items': [], 'item_list_name': itemListName, 'send_to': exactmetrics_frontend.v4_id, }; } lists[itemListName].items.push(item); } } for (listName in lists) { __gtagDataLayer('event', 'view_item_list', lists[listName]); } }; ExactMetricsDualTracker.trackers['select_content'] = function (parameters) { const items = parameters.items.map(ExactMetricsDualTracker.helpers.mapProductItem); __gtagDataLayer('event', 'select_item', {items: items, send_to: parameters.send_to}); }; ExactMetricsDualTracker.trackers['view_item'] = function (parameters) { const items = parameters.items.map(ExactMetricsDualTracker.helpers.mapProductItem); __gtagDataLayer('event', 'view_item', {items: items, send_to: parameters.send_to}); };