[]
=l&&clearInterval(k);”undefined”!==typeof window.__uspapi&&window.__uspapi(“getUSPData”,1,function(a,d){d&&(clearInterval(k),window.isCCPAConsentGiven=”1YNN”===a.uspString)});l-=50},50);window.isCCPAConsentGiven=”1YNN”===b(“usprivacy”); }).call(this); ]]> Best Best Crypto Exchanges – March 2025 US – Investing.com {let c=document.cookie.split(“;”);for(let b=0;b { cid = getCookie(‘_ga'); if(!cid) return null; cid = cid.split(‘.'); return cid.splice(cid.length – 2, 2).join(‘.'); } let firstLevel = secondLevel = “/”; if(location.pathname.split(‘/').filter(a => a).length){ firstLevel = location.pathname.split(‘/').filter(a => a).shift(); secondLevel = location.pathname.replace(firstLevel, ”).replaceAll(‘/', ”); } let params = { ‘event' : ‘GTM page to GA', ‘client_name' : ‘inv-wordpress', ‘environment' : ”, ‘first_level' : firstLevel, ‘second_level' : secondLevel, ‘page_type' : ‘wordpress', ‘edition' : ‘1', ‘smd' : getCookie(‘smd'), ‘page_name' : location.pathname, ‘udid' : getCookie(‘udid'), ‘udid_created' : getCookie(‘firstUdid') ? getCookie(‘firstUdid') : 0, } if(cid = getCid()){ params = Object.assign(params, { ‘cid' : cid, }) } window.dataLayer= window.dataLayer|| []; dataLayer.push(params); } investingIdentityGTM(); ]]> { const broker_pattern = /investing.com/brokers/reviews/([^/?n]*)(?)?/i; const broker_url = e.getAttribute(‘href'); const broker_match = broker_url.match(broker_pattern) if (broker_match) { // e.setAttribute(‘data-partner', broker_match[1]) // e.setAttribute(‘data-action', ‘clickout-internal-link') } else if (e.getAttribute(‘class') === null) { e.setAttribute(‘data-partner', e.textContent) e.setAttribute(‘data-action', ‘clickout-hyperlinked-broker') } }); })(); ]]> { const getActionType = el => { const action = el.dataset[‘action']; switch (action) { case ‘clickout-logo': return ‘broker logo'; case ‘clickout-review-logo': return ‘broker review logo'; case ‘clickout-main': return ‘broker cta'; case ‘clickout-review-main': return ‘broker review cta'; case ‘clickout-recommendation-main': case ‘clickout-recommendation-logo': return ‘broker recommendation'; case ‘clickout-partner-review': return ‘broker review'; case ‘clickout-review-website': return ‘broker review website'; case ‘clickout-internal-link': return ‘hyperlinked broker review'; case ‘clickout-hyperlinked-broker': return ‘hyperlinked broker name'; default: try { const classNames = Array.from(el.classList).join(‘ ‘); const htmlContent = el.innerHTML.replace(/n/g, ”); const elementType = el.tagName.toLowerCase() const elseReturn = classNames + ‘ ‘ + elementType + ‘ ‘ + htmlContent return elseReturn.toString(); } catch (error) { return ‘Could not find data about this event'; } } }; const getPartner = el => { return el.dataset[‘partner'] }; const getPosition = (el) => { if (!window.location.href.match(//reviews/.+/)) { return el.dataset[‘position'] || ‘none'; } try { const smd = getSMD(); let state; state = localStorage.getItem(‘investing.directoryPosition'); state = JSON.parse(state) || {}; if (state.smd !== smd) { return ‘none'; } const partnerId = el.dataset[‘partnerId']; return partnerId ? state.pos[partnerId] || ‘none' : ‘none'; } catch (err) { // do nothing } }; const getSMD = () => { let smd = document.cookie.match(/smd=([^;]*)/); return smd ? smd[1] : null; }; const lowercaseObjectValues = obj => { for (let key in obj) { if (typeof obj[key] === ‘string' && key!== ‘event' && key!== ‘event_name') { obj[key] = obj[key].toLowerCase(); } } return obj; }; const getDataLayerEvent = el => { return { event: ‘genericEvent', event_name: ‘directory_brokerComponent_clicked', action_cd: ‘click', product_feature: null, page_name: ‘Best Crypto Exchanges – March 2025', content_id: ‘858', event_cd_description1: ‘broker name', event_cd_value1: getPartner(el), event_cd_description2: ‘component name', event_cd_value2: getActionType(el), event_cd_description3: ‘component click location', event_cd_value3: ‘directory section', event_cd_description4: ‘broker position', event_cd_value4: getPosition(el), page_type: ‘wordpress' }; } const savePosition = el => { const smd = getSMD(); const action = getActionType(el); const partnerId = el.dataset[‘partnerId']; const position = el.dataset[‘position']; let state; if (!localStorage || !smd || !partnerId) { return; } try { state = localStorage.getItem(‘investing.directoryPosition'); state = JSON.parse(state) || {}; } catch (error) { state = {}; } finally { if (state.smd !== smd) { state = {smd: smd, pos: {}}; } } try { state.pos[partnerId] = Number(position); localStorage.setItem(‘investing.directoryPosition', JSON.stringify(state)); } catch (err) { // do nothing } }; document.querySelectorAll(‘[data-action^=”clickout”]:not([data-review])').forEach(element => { element.addEventListener(‘click', e => { const gtmEvent = lowercaseObjectValues(getDataLayerEvent(element)); window.dataLayer = window.dataLayer || []; window.dataLayer.push(gtmEvent); // to prevent the event from bubbling up in case the element is nested in another clickable element e.stopPropagation() }); }); document.querySelectorAll(‘[data-action^=”clickout”][data-review]').forEach(element => { element.addEventListener(‘click', e => { // stop redirection till the event is pushed to the dataLayer e.preventDefault(); const gtmEvent = lowercaseObjectValues(getDataLayerEvent(element)); window.dataLayer = window.dataLayer || []; window.dataLayer.push(gtmEvent); // to prevent the event from bubbling up in case the element is nested in another clickable element e.stopPropagation() // save the position of the clicked element savePosition(element); // redirect after the event is pushed to the dataLayer setTimeout(() => { window.location.href = element.href; }, 250); }); }); })(); ]]> { [key, value] = pair.split(‘=') if(key === ‘mode' || key === ‘im_app'){ if(!value) value = 1; _params[key] = value; } }) const params = new URLSearchParams(_params).toString(); if(params){ for (var links = document.links, i = 0, a; a = links[i]; i++) { if (a.host === location.host && !a.closest(‘#wpadminbar') && !a.closest (‘.partner-box') && !a.href.endsWith(“#”)) { a.href += a.href.indexOf(‘?') == -1 ? “?”+params : “&”+params; } } } }); } ]]>
Source
