1window.googletag = window.googletag || {cmd: []}; 2googletag.cmd.push(function() { 3 var targeting = (window.visitor && window.visitor.targeting) || {}; 4 5 if (targeting.skill_level) { 6 document.cookie = 7 "tc_skill_level=" + 8 encodeURIComponent(targeting.skill_level) + 9 "; path=/; max-age=2592000; SameSite=Lax"; 10 } 11 12 function getCookie(name) { 13 var match = document.cookie.match( 14 new RegExp("(^| )" + name + "=([^;]+)") 15 ); 16 return match ? decodeURIComponent(match[2]) : null; 17 } 18 19 var cookieLevel = getCookie("tc_skill_level"); 20 21 if (cookieLevel) { 22 googletag.pubads().setTargeting("skill_level", cookieLevel); 23 } 24 25 function applySlotTargeting(slot) { 26 Object.keys(targeting).forEach(function(key) { 27 slot.setTargeting(key, targeting[key]); 28 }); 29 30 return slot; 31 } 32 33 var renderMetadataBySlot = {}; 34 35 function normalizeRenderedSize(size) { 36 if (Array.isArray(size) && size.length === 2) { 37 return String(size[0]) + "x" + String(size[1]); 38 } 39 40 return size ? String(size) : ""; 41 } 42 43 function getSlotIdentity(slot) { 44 return { 45 page_key: targeting.page_key || "", 46 slot_id: slot && slot.getSlotElementId ? slot.getSlotElementId() : "", 47 ad_unit: slot && slot.getAdUnitPath ? slot.getAdUnitPath() : "" 48 }; 49 } 50 51 function emitAdEvent(eventName, payload) { 52 window.dataLayer = window.dataLayer || []; 53 window.dataLayer.push(Object.assign({event: eventName}, payload)); 54 } 55 56 googletag.pubads().addEventListener("slotRenderEnded", function(event) { 57 var payload = getSlotIdentity(event.slot); 58 59 payload.rendered_size = normalizeRenderedSize(event.size); 60 payload.is_empty = event.isEmpty ? 1 : 0; 61 62 if (event.lineItemId !== null && typeof event.lineItemId !== "undefined") { 63 payload.line_item_id = String(event.lineItemId); 64 } 65 66 if (event.creativeId !== null && typeof event.creativeId !== "undefined") { 67 payload.creative_id = String(event.creativeId); 68 } 69 70 if (payload.slot_id) { 71 renderMetadataBySlot[payload.slot_id] = payload; 72 } 73 74 emitAdEvent("tc_ad_render", payload); 75 }); 76 77 googletag.pubads().addEventListener("impressionViewable", function(event) { 78 var identity = getSlotIdentity(event.slot); 79 var payload = identity.slot_id && renderMetadataBySlot[identity.slot_id] 80 ? Object.assign({}, renderMetadataBySlot[identity.slot_id]) 81 : identity; 82 83 emitAdEvent("tc_ad_viewable", payload); 84 }); 85 86 applySlotTargeting(googletag 87 .defineSlot('/22869911954/tucuatro_leaderboard_728x90', [728, 90], 'div-gpt-ad-1674354090578-0')) 88 .addService(googletag.pubads()); 89 90 applySlotTargeting(googletag 91 .defineSlot('/22869911954/tucuatro_medium_rectangle_300x250', [300, 250], 'div-gpt-ad-1674337850031-0')) 92 .addService(googletag.pubads()); 93 94 95 96 googletag.pubads().enableSingleRequest(); 97 googletag.pubads().collapseEmptyDivs(); 98 googletag.enableServices(); 99});
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.