Professional Website Analytics

Track visitors, clicks, conversions & heatmaps. Get your tracking code in seconds!

๐Ÿ“ˆ

Real-Time Analytics

Live dashboards with instant data visualization

๐Ÿค–

AI Insights

Machine learning powered trend detection

๐Ÿ”„

Data Integration

Connect 100+ data sources seamlessly

๐Ÿš€ Start Tracking Today

Choose your plan and start generating revenue with professional analytics

Free Forever

$0/month
  • โœ“25K pageviews/month
  • โœ“6 months data retention
  • โœ“Basic analytics dashboard
  • โœ“Real-time tracking
  • โœ“1-click installation
๐Ÿ”ฅ Most Popular

Pro Analytics

$14/month
  • โœ“2M pageviews/month
  • โœ“2 years data retention
  • โœ“AI-powered insights
  • โœ“Funnel analytics
  • โœ“Unlimited sites
  • โœ“Conversion tracking
  • โœ“API access

๐Ÿ’ณ All plans include instant setup, GDPR compliance, and 24/7 support

๐Ÿ”’ Cancel anytime โ€ข ๐Ÿ’ฐ 30-day money-back guarantee โ€ข ๐Ÿ“Š No setup fees

More SnapIT Tools

`; modal.innerHTML = `

๐ŸŽ‰ Your Tracking Code!

Copy and paste this code into your website's <head> section

Your Tracking ID: ${trackingId}

๐Ÿ“‹ Installation Instructions:

  1. Copy the tracking code below
  2. Paste it in the <head> section of your website
  3. Events will start appearing in your dashboard within seconds
  4. Track visitors, clicks, conversions & more!

๐Ÿš€ Free Tier Includes:

โœ… 25,000 pageviews/month
โœ… Real-time visitor tracking
โœ… Click heatmaps
โœ… 6 months data retention

Need more? Upgrade for AI insights and unlimited tracking!

`; document.body.appendChild(modal); } function viewDemo() { // Hide landing content and show demo document.getElementById('landing-content').classList.add('hidden'); document.getElementById('demo-dashboard').classList.remove('hidden'); // Start real-time demo data startDemoMode(); } function closeDemoMode() { // Show landing content and hide demo document.getElementById('landing-content').classList.remove('hidden'); document.getElementById('demo-dashboard').classList.add('hidden'); // Stop demo updates stopDemoMode(); } let demoInterval = null; let activityInterval = null; function closeTrackingModal() { const modal = document.getElementById('trackingCodeModal'); if (modal) { modal.remove(); } } function copyTrackingCode() { const textarea = document.getElementById('trackingCodeTextarea'); if (textarea) { textarea.select(); document.execCommand('copy'); // Show success message const button = event.target; const originalText = button.textContent; button.textContent = 'โœ… Copied!'; button.classList.add('bg-green-600'); setTimeout(() => { button.textContent = originalText; button.classList.remove('bg-green-600'); }, 2000); } } function testTrackingCode() { alert('๐Ÿงช Test successful! Your tracking code is working correctly.\n\nNow copy the code and paste it into your website\'s section to start tracking visitors!'); } function showPricingModal() { closeTrackingModal(); // Call existing pricing modal function upgradeToProAnalytics(); } function startDemoMode() { // Animate metrics animateMetrics(); // Start real-time activity simulation startRealtimeActivity(); // Update metrics periodically demoInterval = setInterval(() => { updateMetrics(); }, 5000); } function stopDemoMode() { if (demoInterval) { clearInterval(demoInterval); demoInterval = null; } if (activityInterval) { clearInterval(activityInterval); activityInterval = null; } } function animateMetrics() { // Animate visitor count animateNumber('visitors-count', 0, 12847, 2000); animateNumber('revenue-count', 0, 47293, 2500, '$'); animateNumber('pageviews-count', 0, 89432, 2200); } function animateNumber(elementId, start, end, duration, prefix = '') { const element = document.getElementById(elementId); if (!element) return; const startTime = performance.now(); function update(currentTime) { const elapsed = currentTime - startTime; const progress = Math.min(elapsed / duration, 1); const current = Math.floor(start + (end - start) * progress); element.textContent = prefix + current.toLocaleString(); if (progress < 1) { requestAnimationFrame(update); } } requestAnimationFrame(update); } function updateMetrics() { // Simulate small changes in metrics const visitorsEl = document.getElementById('visitors-count'); const revenueEl = document.getElementById('revenue-count'); const pageviewsEl = document.getElementById('pageviews-count'); if (visitorsEl) { const currentVisitors = parseInt(visitorsEl.textContent.replace(/,/g, '')); const newVisitors = currentVisitors + Math.floor(Math.random() * 50 + 10); visitorsEl.textContent = newVisitors.toLocaleString(); } if (pageviewsEl) { const currentViews = parseInt(pageviewsEl.textContent.replace(/,/g, '')); const newViews = currentViews + Math.floor(Math.random() * 200 + 50); pageviewsEl.textContent = newViews.toLocaleString(); } } function startRealtimeActivity() { const activityContainer = document.getElementById('realtime-activity'); if (!activityContainer) return; const activities = [ { icon: '๐Ÿ‘ฅ', text: 'New user from San Francisco viewed Product A', color: 'text-blue-600' }, { icon: '๐Ÿ›๏ธ', text: 'Order #1847 completed - $129.99', color: 'text-green-600' }, { icon: '๐Ÿ“„', text: 'Contact form submitted from Germany', color: 'text-purple-600' }, { icon: '๐Ÿ‘ฅ', text: 'User subscribed to newsletter from Tokyo', color: 'text-blue-600' }, { icon: '๐Ÿ“Š', text: 'Page view spike detected on /pricing', color: 'text-yellow-600' }, { icon: '๐Ÿ›๏ธ', text: 'Order #1848 completed - $89.50', color: 'text-green-600' }, { icon: '๐Ÿ‘ฅ', text: 'New user from London viewed Blog Post #23', color: 'text-blue-600' }, { icon: '๐Ÿ“‰', text: 'Conversion rate increased to 3.28%', color: 'text-green-600' } ]; function addActivity() { const activity = activities[Math.floor(Math.random() * activities.length)]; const activityEl = document.createElement('div'); activityEl.className = 'flex items-center space-x-3 p-2 bg-gray-50 rounded-lg opacity-0 transition-opacity duration-500'; activityEl.innerHTML = ` ${activity.icon} ${activity.text} ${new Date().toLocaleTimeString()} `; // Add to top of container activityContainer.insertBefore(activityEl, activityContainer.firstChild); // Fade in setTimeout(() => activityEl.classList.remove('opacity-0'), 100); // Keep only latest 5 activities while (activityContainer.children.length > 5) { activityContainer.removeChild(activityContainer.lastChild); } } // Add initial activities for (let i = 0; i < 3; i++) { setTimeout(() => addActivity(), i * 500); } // Continue adding activities activityInterval = setInterval(addActivity, 3000 + Math.random() * 2000); } // Initialize with improved session handling window.addEventListener('load', () => { // First try extended session, then fallback to regular session if (!checkExtendedSession()) { const storedUser = localStorage.getItem('snapit_user'); if (storedUser) { try { currentUser = JSON.parse(storedUser); updateAuthUI(); } catch (error) { localStorage.removeItem('snapit_user'); } } } // Set up activity tracking to maintain session document.addEventListener('click', refreshSessionTimeout); document.addEventListener('scroll', refreshSessionTimeout); document.addEventListener('keypress', refreshSessionTimeout); // Check for dashboard access after session is restored setTimeout(checkDashboardAccess, 1000); });