window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} function setupGA4() { const gtagScript = document.createElement('script'); gtagScript.async = true; gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=G-7G9HS8437V'; const firstScript = document.getElementsByTagName('script')[0]; firstScript.parentNode.insertBefore(gtagScript, firstScript); gtag('js', new Date()); gtag('config', 'G-7G9HS8437V', { 'page_variation_name': 'A' }); } const eventsSent = []; function gaEventTrigger(config, url) { const elementId = (event && event.currentTarget) ? event.currentTarget.id : null; if (elementId && eventsSent.includes(elementId) && url) { return; } let outboundParams = {}; if (url) { outboundParams = { 'transport_type': 'beacon', 'event_callback': function(){ document.location = url; } }; } else { outboundParams = { 'transport_type': 'beacon' }; } try { const eventConfig = JSON.parse(atob(config)); eventsSent.push(elementId); const parameters = eventConfig.parameters.reduce((acc, p) => ({...acc, [p.name]: p.value}), {}); gtag('event', eventConfig.event_name, { ...parameters, ...outboundParams }); } catch (error) { console.debug('Custom event send failure'); } } setupGA4();