Украина, Днепр
(095) 478-70-11
Иногда нужно отправить продукты которые попали в видимую область, тоесть пользователь задержал внимание на данных продуктах, нужно отправить в тегменеджер эту информацию, для этого можно воспользовать небольшим скритиком
function inWindow(s){ let scrollTop = $(window).scrollTop(); let windowHeight = $(window).height(); let currentEls = $(s); let result = []; currentEls.each(function(){ let el = $(this); let offset = el.offset(); if(scrollTop <= offset.top && (el.height() + offset.top) < (scrollTop + windowHeight)) result.push(this); }); return $(result); } let idTest =[]; $(document).on('scroll', function () { let boxesInWindow = inWindow("div.product-layout"); let impressions = []; if(!boxesInWindow.hasClass("already-send") && boxesInWindow.length!==0){ boxesInWindow.css('border','1px dotted red'); boxesInWindow.each(function(num){ impressions.push({ 'name': $(this).find('.product-name a').text(), 'id': $(this).find('.product-model').text(), 'price': $(this).find('[itemprop=priceNumber]').attr('content'), 'brand': $(this).find('[itemprop=manufacturer]').attr('content'), 'category': '=$categoryAll?>', 'list': 'Товары в категории', 'position': num+1 }); }); let dataToLayer = { 'ecommerce': { 'currencyCode': 'UAH', 'impressions': [] }, 'event': 'gtm-ee-event', 'gtm-ee-event-category': 'Enhanced Ecommerce', 'gtm-ee-event-action': 'Product Impressions', 'gtm-ee-event-non-interaction': 'True', } dataToLayer['ecommerce']['impressions'] = impressions; window.dataLayer = window.dataLayer || []; console.log(dataToLayer); dataLayer.push(dataToLayer); boxesInWindow.addClass("already-send"); } });
Copyright © 2012-2023 All rights reserved.
created by WPS.