1// global variables 2var ctaclicktrackingeventname = "cta_click"; 3var navigationinteracttrackingeventname = "navigation_interact"; 4var videostarteventname = "video_start"; 5 6$(document).ready(function () { 7 $('.track_nav_interact').click(function (e) { 8 window.dataLayer = window.dataLayer || []; 9 if (e.currentTarget.attributes != null && e.currentTarget.attributes.length > 0) { 10 var trackingVal = e.currentTarget.attributes["data-navigation-tracking"].value; 11 var trackingArr = trackingVal != undefined ? trackingVal.split(',') : null; 12 var linkText = trackingArr != null && trackingArr.length > 0 && trackingArr[0] != null ? trackingArr[0] : ''; 13 var linkUrl = trackingArr != null && trackingArr.length > 0 && trackingArr[1] != null ? 14 ((trackingArr[1].indexOf('/') == 0 || trackingArr[1].indexOf('#') == 0) ? window.location.protocol + '//' + window.location.hostname + trackingArr[1] : trackingArr[1]) : ''; 15 var linkSection = trackingArr != null && trackingArr.length > 0 && trackingArr[2] != null ? trackingArr[2] : 'header - interest drawer'; 16 dataLayer.push({ 17 event: navigationinteracttrackingeventname, 18 link_text: linkText, 19 link_url: linkUrl, 20 link_section: linkSection 21 }); 22 } 23 }); 24 $('.track_cta_click').click(function (e) { 25 window.dataLayer = window.dataLayer || []; 26 if (e.currentTarget.attributes != null && e.currentTarget.attributes.length > 0) { 27 var trackingVal = e.currentTarget.attributes["data-tracking-cta"].value; 28 var trackingArr = trackingVal != undefined ? trackingVal.split(',') : null; 29 var linkText = trackingArr != null && trackingArr.length > 0 && trackingArr[0] != null ? trackingArr[0] : ''; 30 var linkUrl = trackingArr != null && trackingArr.length > 0 && trackingArr[1] != null ? 31 (trackingArr[1].indexOf('/') == 0 ? window.location.protocol + '//' + window.location.hostname + trackingArr[1] : trackingArr[1]) : ''; 32 var linkSection = trackingArr != null && trackingArr.length > 0 && trackingArr[2] != null ? trackingArr[2] : 'header'; 33 dataLayer.push({ 34 event: ctaclicktrackingeventname, 35 link_text: linkText, 36 link_url: linkUrl, 37 link_section: linkSection 38 }); 39 } 40 }); 41 //This method is specific to handle address value as the value contains , already and we are using , 42 //as separator for different values in data - tracking - cta attribute, 43 //so to avoid conflict we are replacing, with $ in address value and handling that in below method to replace $ back to, 44 //before pushing the value to dataLayer 45 $('.track_address_cta_click').click(function (e) { 46 window.dataLayer = window.dataLayer || []; 47 if (e.currentTarget.attributes != null && e.currentTarget.attributes.length > 0) { 48 var trackingVal = e.currentTarget.attributes["data-tracking-cta"].value; 49 var trackingArr = trackingVal != undefined ? trackingVal.split(',') : null; 50 var linkText = trackingArr != null && trackingArr.length > 0 && trackingArr[0] != null ? trackingArr[0] : ''; 51 //replace all $ to , in address value 52 linkText = linkText.replace(/\$/g, ','); 53 var linkUrl = trackingArr != null && trackingArr.length > 0 && trackingArr[1] != null ? 54 (trackingArr[1].indexOf('/') == 0 ? window.location.protocol + '//' + window.location.hostname + trackingArr[1] : trackingArr[1]) : ''; 55 var linkSection = trackingArr != null && trackingArr.length > 0 && trackingArr[2] != null ? trackingArr[2] : 'header'; 56 dataLayer.push({ 57 event: ctaclicktrackingeventname, 58 link_text: linkText, 59 link_url: linkUrl, 60 link_section: linkSection 61 }); 62 } 63 }); 64 65 $('.track_cta_hero_click').click(function (e) { 66 window.dataLayer = window.dataLayer || []; 67 if (e.currentTarget.attributes != null && e.currentTarget.attributes.length > 0) { 68 var trackingVal = e.currentTarget.attributes["dataTrackingCTA"].value; 69 var trackingArr = trackingVal != undefined ? trackingVal.split(',') : null; 70 var linkText = trackingArr != null && trackingArr.length > 0 && trackingArr[0] != null ? trackingArr[0] : ''; 71 var linkUrl = trackingArr != null && trackingArr.length > 0 && trackingArr[1] != null ? 72 (trackingArr[1].indexOf('/') == 0 ? window.location.protocol + '//' + window.location.hostname + trackingArr[1] : trackingArr[1]) : ''; 73 var linkSection = trackingArr != null && trackingArr.length > 0 && trackingArr[2] != null ? trackingArr[2] : 'header'; 74 dataLayer.push({ 75 event: ctaclicktrackingeventname, 76 link_text: linkText, 77 link_url: linkUrl, 78 link_section: linkSection 79 }); 80 } 81 });
82}); 83function trackVideoEvent(...eventData) { 84 window.dataLayer = window.dataLayer || []; 85 window.dataLayer.push({ 86 event: videostarteventname, 87 video_provider: eventData[0], 88 video_url: eventData[1], 89 }); 90}
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.