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
Iraq
Countries
Des Moines
Detroit
Dortmund
Dresden
Dubai
Dublin
Durban
Düsseldorf
Edinburgh
Edmonton
England
Florence
Florianópolis
Florida
Fort Lauderdale
Fort Wayne
Fort Worth
Fortaleza
Frankfurt
Gdańsk
Geneva
Gijón
Glasgow
Goiania
Goiânia
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; } }; })();