1define([ 2 'jquery', 3 ], function ($) { 4 "use strict"; 5 6 return { 7 trackPromotion: function(options) { 8 if (options.enabled) { 9 $(document).ready(function() { 10 11 var wpPersDl = options.persDataLayer; 12 13 /** Track the promotion clicks */ 14 $('[data-track-promo-id]').click(function() { 15 var promoId = $(this).attr('data-track-promo-id'), 16 promoName = $(this).attr('data-track-promo-name'), 17 promoCreative = $(this).attr('data-track-promo-creative'), 18 promoPositionSlot = $(this).attr('data-track-promo-position'); 19 20 var promoObj = { 21 'promotion_id': promoId, 22 'promotion_name': promoName, 23 'creative_name': promoCreative, 24 'creative_slot': promoPositionSlot 25 }; 26 window.dataLayer.push({ecommerce: null}); 27 window.dataLayer.push({ 28 'event': 'promotionClick', 29 'ecommerce': { 30 'promoClick': { 31 'promotions': [promoObj] 32 } 33 } 34 }); 35 36 wpPersDl.setPromotionClick(promoObj); 37 38 39 }); 40 /** Track the promotion views */ 41 var promotionViews = []; 42 $('[data-track-promo-id]').each(function() { 43 var promoId = $(this).attr('data-track-promo-id'), 44 promoName = $(this).attr('data-track-promo-name'), 45 promoCreative = $(this).attr('data-track-promo-creative'), 46 promoPositionSlot = $(this).attr('data-track-promo-position'); 47 48 promotionViews.push({ 49 'promotion_id': promoId, 50 'promotion_name': promoName, 51 'creative_name': promoCreative, 52 'creative_slot': promoPositionSlot 53 }); 54 }); 55 if (promotionViews.length) { 56 window.dataLayer.push({ecommerce: null}); 57 window.dataLayer.push({ 58 'event': 'promotionView', 59 'ecommerce': { 60 'promoView': { 61 'promotions': promotionViews 62 } 63 } 64 }); 65 } 66 }); 67 } 68 } 69 }; 70 71});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.