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
Algeria
Countries
Austin
Avignon
Bahía Blanca
Balikpapan
Bandar Lampung
Bangalore
Bangkok
Banjarmasin
Barcelona
Bari
Barquisimeto
Barranquilla
Baton Rouge
Beijing
Belfast
Belgrade
Belo Horizonte
Bergen
Berlin
Bhopal
Bielefeld
Bilbao
Birmingham
Blumenau
Bogor
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; } }; })();