Top Rankings

Find out who leads in their country or niche

Content Library

All social medias
Instagram
LinkedIn
Snapchat
Substack
Tiktok
Twitch
X
Youtube
Social Media
Brazil
Countries
Malmö
Manado
Manaus
Manchester
Mangalore
Manizales
Mannheim
Maracaibo
Maringá
Marseille
Mazatlan
Medan
Medellin
Melbourne
Melbourne
Memphis
Mendoza
Mexico City
Miami
Milan
Minnesota
Modena
Monaco
Monterrey
Montpellier
City/State
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
/** * Webflow Visitor ID Script * Add this script to your Webflow site's custom code (before tag) * This will create and manage a persistent visitor ID across sessions */ (function() { 'use strict'; // Configuration const COOKIE_NAME = 'fvkn_visitor_id'; const COOKIE_EXPIRY_DAYS = 365; // 1 year /** * Generate a unique visitor ID * Format: timestamp-random-browser_fingerprint */ function generateVisitorId() { const timestamp = Date.now().toString(36); const randomPart = Math.random().toString(36).substr(2, 9); // Simple browser fingerprint const fingerprint = btoa( navigator.userAgent + screen.width + 'x' + screen.height + navigator.language + (navigator.platform || 'unknown') ).substr(0, 8).replace(/[^a-zA-Z0-9]/g, ''); return `${timestamp}-${randomPart}-${fingerprint}`; } /** * Get cookie value by name */ function getCookie(name) { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); if (parts.length === 2) { return parts.pop().split(';').shift(); } return null; } /** * Set cookie with expiry */ function setCookie(name, value, days) { const expires = new Date(); expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); const expiresStr = expires.toUTCString(); // Set cookie with SameSite and Secure attributes for cross-site tracking document.cookie = `${name}=${value}; expires=${expiresStr}; path=/; SameSite=None; Secure`; // Fallback for non-HTTPS environments (development) if (!document.cookie.includes(name)) { document.cookie = `${name}=${value}; expires=${expiresStr}; path=/`; } } /** * Get or create visitor ID */ function getOrCreateVisitorId() { let visitorId = getCookie(COOKIE_NAME); if (!visitorId) { visitorId = generateVisitorId(); setCookie(COOKIE_NAME, visitorId, COOKIE_EXPIRY_DAYS); // Log visitor creation (optional) console.log('New visitor ID created:', visitorId); // Track first visit event (optional) if (window.dataLayer) { window.dataLayer.push({ 'event': 'new_visitor_created', 'fvkn_visitor_id': visitorId, 'is_new_visitor': true }); } } return visitorId; } /** * Make visitor ID available globally */ function initializeVisitorTracking() { const visitorId = getOrCreateVisitorId(); // Make it available globally window.fvkn_visitor_id = visitorId; // Also add to dataLayer for GTM window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'fvkn_visitor_id': visitorId, 'visitor_id_set': true }); // Store in sessionStorage for quick access try { sessionStorage.setItem('fvkn_visitor_id', visitorId); } catch (e) { console.warn('Could not store visitor ID in sessionStorage:', e); } return visitorId; } /** * Enhanced visitor info function */ function getVisitorInfo() { const visitorId = window.fvkn_visitor_id || getOrCreateVisitorId(); return { visitor_id: visitorId, is_returning_visitor: getCookie(COOKIE_NAME) !== null, session_id: sessionStorage.getItem('session_id') || 'session_' + Date.now(), page_load_time: new Date().toISOString(), referrer: document.referrer || 'direct', utm_source: new URLSearchParams(window.location.search).get('utm_source'), utm_medium: new URLSearchParams(window.location.search).get('utm_medium'), utm_campaign: new URLSearchParams(window.location.search).get('utm_campaign') }; } // Initialize when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initializeVisitorTracking); } else { initializeVisitorTracking(); } // Make functions available globally if needed window.fvknVisitorTracking = { getVisitorId: function() { return window.fvkn_visitor_id || getOrCreateVisitorId(); }, getVisitorInfo: getVisitorInfo, refreshVisitorId: function() { // Force create new visitor ID (useful for testing) const newId = generateVisitorId(); setCookie(COOKIE_NAME, newId, COOKIE_EXPIRY_DAYS); window.fvkn_visitor_id = newId; return newId; } }; })();