Google Tag Manager Impressions
function sendFindifyClickEvent(list, data, callback) {
window.dataLayer.push({
eventCallback: callback,
event: "gaEvent",
eventCategory: "Ecommerce",
eventAction: "Product Click",
ecommerce: {
click: {
actionField: {
list: list
},
products: [{
currencyCode: data.config.currency.code,
name: data.title, // Name or ID is required.
id: data.sku[0],
price: data.price[0],
brand: data.brand,
category: data.category[0].category1,
list: list,
position: data.index + 1
}]
}
}
});
}
function addFindifyImpression(list, data){
window.dataLayer.push({
ecommerce: {
currencyCode: data.config.currency.code,
impressions: [{
name: data.title, // Name or ID is required.
id: data.id,
price: data.price[0],
brand: data.brand,
category: data.category[0].category1,
list: list,
position: data.index
}]
}
});
}
window.findifyApiRegistry = [
{
hook: 'search.item',
mapProps: function(res, callbacks) {
return {
onClick: function(e) {
e.preventDefault();
sendFindifyClickEvent('Autocomplete Results', res, function() {
e.isDefaultPrevented = function() {
return false
};
return callbacks.onClick(e);
});
return false;
}
};
}
},
{
hook: 'collection.item',
mapProps: function(res) {
return {
onClick: function(e) {
e.preventDefault();
sendFindifyClickEvent('Collection Results', res, function() {
e.isDefaultPrevented = function() {
return false
};
return callbacks.onClick(e);
});
return false;
}
};
}
},
{
hook: 'recommendations.item',
mapProps: function(res) {
return {
onClick: function(e) {
e.preventDefault();
sendFindifyClickEvent('Recommendation Results', res, function() {
e.isDefaultPrevented = function() {
return false
};
return callbacks.onClick(e);
});
return false;
}
};
}
}
]
Updated almost 7 years ago