← 返回首页
// TC_FUNNEL window._funnel = window._funnel || { stage: 0, steps: [] }; window._trackFunnel = function(stage, data) { window._funnel.stage = stage; window._funnel.steps.push({stage: stage, time: Date.now(), data: data}); var funnelData = { type: 'funnel', stage: stage, url: location.href, referrer: document.referrer, source: (function(){ var params = new URLSearchParams(window.location.search); return params.get('utm_source') || 'direct'; })(), ts: Date.now() }; try { navigator.sendBeacon('/api/track', JSON.stringify(funnelData)); } catch(e){} console.log('[FUNNEL] Stage', stage, ':', ['visit','scroll_25%','scroll_50%','cta_hover','cta_click','form_start','form_submit'][stage]); }; window._trackFunnel(0); var scroll25 = false; window.addEventListener('scroll', function(){ if(!scroll25 && window.scrollY > document.body.scrollHeight * 0.25) { scroll25 = true; window._trackFunnel(1); } if(!window._funnel.steps.find(function(s){return s.stage===2}) && window.scrollY > document.body.scrollHeight * 0.50) { window._trackFunnel(2); } if(!window._funnel.steps.find(function(s){return s.stage===3}) && window.scrollY > document.body.scrollHeight * 0.75) { window._trackFunnel(3); } }); document.addEventListener('mouseover', function(e){ if(e.target.closest('.btn, .cta-btn, [data-cta]') && !window._funnel.steps.find(function(s){return s.stage===4})) { window._trackFunnel(4, {element: e.target.tagName.toLowerCase()}); } }); document.addEventListener('click', function(e){ if(e.target.closest('.btn, .cta-btn, [data-cta], a[href*="conversions"], a[href*="free-trial"]')) { window._trackFunnel(5, {href: e.target.closest('a,button').getAttribute('href')}); } }); // TC_FUNNEL_END