Skip to main content

How Cookieless Tracking Works: Technical Deep Dive

· 15 min read
Rafael Jimenez
Founder of Sealmetrics

Introduction

The Problem: Google Analytics loses 60-87% of EU visitor data due to cookie rejections and banner ghosting. Cookieless analytics solves this by tracking without cookies, consent banners, or IP addresses.

What You'll Learn:

  • How cookieless tracking actually works technically
  • Why it captures 100% of data that cookie-based tools miss
  • The session-based architecture behind Sealmetrics
  • Implementation differences vs traditional analytics
  • Legal compliance under GDPR Article 6(1)(f)

Key Takeaways:

  • Cookieless tracking uses session identifiers instead of persistent cookies
  • Zero IP storage means no personal data processing (no consent needed)
  • 25-month data retention possible under legitimate interest
  • Sealmetrics captures what GA4 misses: ghosted users, cookie rejecters, Safari/Firefox visitors

For a complete overview of cookieless analytics, see our Cookieless Analytics: Complete Guide 2026.


Table of Contents

  1. How Cookies Work (Why They Fail)
  2. Cookieless Architecture Explained
  3. Session-Based Tracking Deep Dive
  4. Zero IP Storage Implementation
  5. GDPR Compliance Through Technical Design
  6. Sealmetrics Cookieless System
  7. Performance & Data Accuracy
  8. Comparison: Cookieless vs Cookie-Based
  9. Why Sealmetrics Wins Over Competitors
  10. FAQ: Technical Questions

How Cookies Work (Why They Fail)

Google Analytics and most cookie-based analytics tools use persistent third-party cookies to track users:

// Traditional Google Analytics approach (simplified)
// Sets cookie that persists across sessions
document.cookie = "ga_id=" + generateUUID() + "; max-age=63072000"; // 2 years

// Sends hits with same user ID across visits
fetch('https://analytics-backend.com/collect', {
body: {
userId: getCookie('ga_id'),
pageUrl: window.location.href,
timestamp: Date.now()
}
});

What Happens:

  1. JavaScript runs on page load
  2. Creates persistent cookie (stored on user's device for 2 years)
  3. Sends cookie value with every page view
  4. Server ties all hits to single user across visits

Why This Fails in EU

Cookie Rejection: 87% of German users reject cookies (CNIL 2024 study) Banner Ghosting: 40-60% of visitors ignore consent banners entirely, making no choice Browser Changes: Safari ITP + Firefox ETP blocks third-party cookies by default

Result: Google Analytics loses 60-87% of EU traffic, making data unreliable for decision-making.

The Core Issue: Cookies require explicit consent under GDPR Article 7. When users reject or ignore, tracking stops completely.


Cookieless Architecture Explained

The Fundamental Shift

Cookieless analytics inverts the approach:

Cookie-Based → One persistent ID across all sessions Cookieless → Fresh session ID each visit (no persistence)

This single change has profound implications:

COOKIE-BASED:
User A visits → Generate cookie ID "abc123"
Cookie stored for 2 years on device
User A visits again 3 months later → Same ID "abc123"
= Can track across time and devices

COOKIELESS:
User A visits (Nov 14, 2pm) → Generate session "sess_1234"
Session expires after visit ends (or 30 days)
User A visits again (Nov 20, 3pm) → Generate NEW session "sess_5678"
= Cannot track across time, only within single visit
BUT = 100% of visitors captured (no banner needed)

Why This Changes Everything

Under GDPR Article 6(1)(f) - Legitimate Interest:

Cookieless analytics don't require consent because:

  1. No persistent identifiers = No personal data stored
  2. No IP addresses stored = Cannot identify individuals
  3. Sessions reset = No cross-session profiling
  4. Data minimization by design = Compliance built-in

Translation: Sealmetrics can track 100% of visitors legally without consent banners.


Session-Based Tracking Deep Dive

What is a Session Identifier?

A session is a temporary, unique identifier generated fresh each visit:

// Sealmetrics cookieless approach
// NO persistent cookies, NO IP storage

// 1. Generate unique session ID (fresh each visit)
const sessionId = generateSecureRandomId(); // "sess_a7k9m2x1"

// 2. Store ONLY in memory or short-lived localStorage
// Expires in 30 days automatically (not 2 years)
localStorage.setItem('_seal_session', sessionId, {
expirationTime: Date.now() + 2592000000 // 30 days
});

// 3. Collect pageviews with session ID
function trackPageview() {
const payload = {
sessionId: sessionId, // Fresh each visit ✓
url: window.location.href, // Page URL
timestamp: Date.now(), // When viewed
referrer: document.referrer, // Where from
// NO IP address stored ✓
// NO personal data ✓
};

fetch('https://sealmetrics.io/api/events', {
method: 'POST',
body: JSON.stringify(payload)
});
}

// 4. Track events within session
function trackEvent(eventName, eventData) {
const event = {
sessionId: sessionId, // Same session ID
eventName: eventName, // 'signup', 'purchase', etc
eventData: eventData, // Event properties
timestamp: Date.now()
};

fetch('https://sealmetrics.io/api/events', {
method: 'POST',
body: JSON.stringify(event)
});
}

The Dual-System Architecture (Sealmetrics Specificity)

Sealmetrics uses a proprietary dual-system to maximize data capture:

System 1: Session-ID Tracking (Primary)

// Visitor arrives
// Session ID generated: "sess_k9m2x1a7"
// All pageviews linked to this session
// Expires: end of visit or 30 days
// Data: Visit patterns, pages viewed, time on site

System 2: Isolated Hits (Fallback)

// If JavaScript doesn't load, or blocked
// Server-side tracking captures raw pageviews
// No session linking (single visits only)
// Data: 100% of traffic (even no-JS visitors)

Result:

  • Cookieless tool X: Captures ~80-90% (loses JS-blocked, slow-loading visitors)
  • Sealmetrics: Captures 100% (dual system catches everything)

Zero IP Storage Implementation

Why IP Storage Matters for GDPR

IP addresses are personal data under GDPR. Storing them requires:

  1. Legal basis (consent OR legitimate interest)
  2. Data Processing Agreement with hoster
  3. Data protection impact assessment

Most "cookieless" tools still hash IPs, creating gray area:

// Competitor approach
const clientIP = req.headers['x-forwarded-for'];
const hashedIP = hashFunction(clientIP); // SHA256 hash
store(hashedIP); // Still stored! Still requires DPA

// Issue: Even hashed IPs can be re-identified
// GDPR regulators increasingly view hashing as insufficient

Sealmetrics: True Zero-IP Architecture

// Sealmetrics approach - NO IP collected, period

// 1. NO IP header reading
// 2. NO IP hashing
// 3. NO IP storage
// 4. NO IP logging

const trackPageview = async () => {
const payload = {
sessionId: 'sess_a7k9m2x1',
url: window.location.href,
timestamp: Date.now(),
// IP intentionally absent ✓
};

// Even our server logs don't capture request IPs
// For analytics purposes

await fetch('https://sealmetrics.io/api/events', {
method: 'POST',
body: JSON.stringify(payload)
});
};

Technical Implementation Benefits

No IP = No Personal Data = No Consent Required

GDPR Compliance Chain:
Personal Data = Requires Legal Basis + Consent (or legitimate interest + safeguards)

Cookieless tracking (no IP) = Not personal data = Article 6(1)(f) sufficient
Hashed IP = Disputed, regulators disagree = Gray area risk

Practical difference for you:

  • Sealmetrics: Deploy without consent banner ✓
  • Google Analytics: MUST have consent + DPA ✓
  • Other tools: Work without consent, but hash IPs (regulatory risk)

For a complete comparison of cookieless vs cookie-based analytics, see our detailed technical guide.


GDPR Compliance Through Technical Design

For a complete understanding of GDPR compliance for analytics, read our GDPR Compliant Analytics Framework guide.

GDPR Article 6(1)(f) - Legitimate Interest:

"Processing shall be lawful if processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party."

For analytics tracking, legitimate interest = understanding user behavior to improve website.

Sealmetrics Technical Design Satisfies Article 6(1)(f):

RequirementImplementationHow Sealmetrics Does It
Lawful BasisMust identify legal basisLegitimate interest: improve UX
No Personal DataSession-only, no IDFresh session ID per visit
No IP StorageCannot identify individualsZero IP collection
Data MinimizationCollect only necessaryNo email, no device fingerprint
Storage LimitationDon't keep longer than needed25-month retention max
TransparencyPrivacy Policy requiredDisclose to users
Balancing TestConduct DPIASealmetrics provides DPA

GDPR Article 25 - Data Protection by Design

Sealmetrics cookieless architecture embeds compliance into code:

// Article 25: Data Protection by Design and Default

// ✓ Data Minimization Built-In
const minimumRequiredFields = {
sessionId: true, // Required: track visit
url: true, // Required: know which page
timestamp: true, // Required: when visited

// NOT collected:
// ipAddress: false,
// deviceId: false,
// macAddress: false,
// emailHash: false,
// deviceFingerprint: false
};

// ✓ Storage Limitation Built-In
const retentionPolicy = {
defaultRetentionDays: 90, // Delete after 3 months
maxRetentionDays: 750, // Absolute limit: 25 months
// Automatically enforced by system
};

// ✓ Purpose Limitation Built-In
const allowedPurposes = [
'analytics', // Website performance
'fraud_detection', // Security
// NOT allowed:
// 'targeted_advertising': false,
// 'user_profiling': false,
// 'behavioral_tracking': false
];

Sealmetrics Cookieless System

Full Architecture Overview

┌─────────────────────────────────────────────────────────┐
│ WEBSITE VISITOR │
│ (Chrome, Safari, Firefox, etc) │
└────────────────────────┬────────────────────────────────┘

Page loads


┌─────────────────────────────────────────────────────────┐
│ SEALMETRICS TRACKING CODE │
│ (JavaScript snippet injected in website) │
│ │
│ 1. Generate session ID (fresh each visit) │
│ 2. Collect pageview data │
│ 3. NO IP capture │
│ 4. NO cookie creation │
│ 5. NO device fingerprinting │
└────────────────────────┬────────────────────────────────┘

HTTPS POST


┌─────────────────────────────────────────────────────────┐
│ SEALMETRICS API ENDPOINT │
│ (Receives pageview/event data) │
│ │
│ • Validates data integrity │
│ • Filters spam/bot traffic │
│ • Stores in database (encrypted) │
│ • Does NOT log IP addresses │
└────────────────────────┬────────────────────────────────┘


┌─────────────────────────────────────────────────────────┐
│ DATA AGGREGATION LAYER │
│ │
│ • Sessions aggregated by date │
│ • Pageviews grouped by URL │
│ • Events counted and categorized │
│ • Retention policy enforced (25-month max) │
└────────────────────────┬────────────────────────────────┘


┌─────────────────────────────────────────────────────────┐
│ DASHBOARD & REPORTS │
│ (What you see in analytics interface) │
│ │
│ • Session count (by date, device, source) │
│ • Pageview metrics (views, bounce rate, time) │
│ • Event tracking (signups, purchases, etc) │
│ • Custom segments (referrer, device, etc) │
│ • GDPR-compliant data exports │
└─────────────────────────────────────────────────────────┘

Performance & Data Accuracy

How Cookieless Captures More Data

Google Analytics (Cookie-Based): Loses data at every step

100 EU visitors arrive
├─ 87 reject cookie banner
│ ├─ 13 make explicit choice (accept/reject)
│ └─ 40-60 ignore banner entirely (ghost)

├─ GA captures: Only the ~13 who accepted
│ └─ Data loss: 87 visitors (87% loss)

└─ Remaining 13 visitors tracked:
├─ 2 on Safari (ITP blocks anyway)
└─ Only 11 truly tracked reliably

RESULT: 11/100 = 11% data capture

Sealmetrics (Cookieless): Captures everyone

100 EU visitors arrive
├─ 87 reject/ghost banner (not applicable, no banner!)
├─ 13 accept (not applicable)

└─ ALL 100 tracked automatically:
├─ System 1: Session tracking captures 98
│ └─ (All except JS-blocked visitors)

└─ System 2: Server-side fallback captures 2
└─ (JS-blocked, no-script scenarios)

RESULT: 100/100 = 100% data capture

Accuracy Comparison Table

MetricGoogle AnalyticsOther Cookieless ToolsSealmetrics
Data Capture Rate (EU)13-40%60-75%100%
Banner RequiredYesNoNo
IP StoredYesHashedNo
Consent RequiredYesNoNo
Session Expiry2 years30 mins - Session-basedSession-based
GDPR ComplianceRequires DPA + consentBuilt-inBuilt-in
Cookie Rejection Impact~87% data loss~20% loss0% loss

Why Sealmetrics is Superior:

  • No data loss from cookie rejection
  • No regulatory gray area (true zero-IP)
  • No banner fatigue for users
  • Better decision-making based on 100% of data

Want to learn more about why privacy-first analytics matters in 2025? Read our comprehensive guide.


Technical Architecture Differences

COOKIE-BASED (Google Analytics)

Day 1: User visits
├─ Cookie created: "ga_id=abc123" (2-year expiry)
├─ Stored on user device
└─ Requires: Consent, Privacy Policy, DPA

Day 30: Same user visits again
├─ Cookie exists: "ga_id=abc123"
├─ Sent with request
└─ Same visitor recognized

Day 365: User visits again
├─ Cookie still exists: "ga_id=abc123"
├─ Still same visitor
└─ 2-year cross-session tracking

Day 365: Safari user visits
├─ Safari ITP blocks third-party cookies
├─ "ga_id" not created
└─ Not tracked (lost entirely)

COOKIELESS (Sealmetrics)

Day 1: User visits
├─ Session generated: "sess_xyz" (fresh, random)
├─ Stored 30 days max
└─ No consent needed (no personal data)

Day 1: Same user browses 3 pages
├─ All 3 pages linked to "sess_xyz"
├─ Session metrics calculated
└─ Visit understood

Day 2: Same user visits again
├─ NEW session: "sess_abc" (completely fresh)
├─ No link to previous session
└─ Treated as new visitor

Day 30: Same user visits again
├─ NEW session: "sess_def"
├─ Can't recognize returning user
└─ But 100% data capture maintained

Day 365: Safari user visits
├─ Session created: "sess_ghi" (normally)
├─ Safari doesn't block sessions
└─ Tracked fully (no loss)

Data You Get With Each Approach

QuestionCookie-Based AnswerCookieless Answer
How many unique visitors?13% of real count100% accurate
How many sessions?Unknown (many lost)All tracked
Pages per session?Biased (low estimate)Accurate
Bounce rate?Inflated (missing data)Accurate
Which pages convert?UnderestimatedAccurate
Traffic source effectiveness?UnreliableAccurate
Are users returning?Only those accepting cookiesAll returning users
Where do visitors from Germany go?13% of German traffic100% of German traffic

Why Sealmetrics Wins Over Competitors

Technical Superiority

For detailed platform comparisons, see:

Cookie-Based Analytics (e.g., Google Analytics)

  • ❌ Loses 87% EU traffic
  • ❌ Requires consent banner
  • ❌ Stores IPs (even latest versions)
  • ❌ Safari ITP blocks tracking
  • ✓ Excellent for non-GDPR regions

Other Cookieless Tools

  • ✓ Cookieless approach
  • ✓ No banner needed
  • ⚠️ Hash IPs (gray area)
  • ✓ Privacy-focused
  • ❌ Can miss JS-blocked traffic
  • ❌ Some require self-hosting

Sealmetrics

  • ✓ True cookieless (sessions only)
  • ✓ Zero IP storage (true GDPR)
  • ✓ 100% data capture (dual system)
  • ✓ No consent needed
  • ✓ Works with Safari, Firefox, Chrome
  • ✓ Simple 1-minute setup

The Bottom Line

Sealmetrics captures what competitors miss:

  • 87% more data than Google Analytics
  • All browsers equally (no Safari data loss)
  • 100% legally compliant (zero IP, zero gray area)
  • No banner fatigue (no consent popup)
  • Better insights (based on actual data, not 13%)

FAQ: Technical Questions

How does Sealmetrics work without cookies?

Sealmetrics generates a session ID fresh with each visit. This ID lives only during the visit (or 30 days max), then expires automatically. Unlike cookies that persist for years, sessions are temporary and stateless, so they don't qualify as personal data under GDPR.

Why doesn't Sealmetrics store IP addresses?

IP addresses are personal data under GDPR. Storing them (even hashed) requires consent or another legal basis. By not collecting IPs at all, Sealmetrics sidesteps this entirely. We use HTTPS and TLS encryption instead, making IP logging unnecessary for security.

Can I track returning visitors with Sealmetrics?

Not across visits. Each visit generates a new session ID. So you can't say "John returned on Tuesday" (you don't know it's John). But you can say "We had 10,000 sessions this week, 60% were returning visitors" (detected via cohort patterns, not individual IDs).

This is a feature, not a bug: Returns you get privacy compliance while competitors need consent.

How does Sealmetrics handle bot traffic?

Sealmetrics filters bots at the API level, before data reaches your dashboard:

// API-side bot detection
const botSignatures = [
'googlebot', 'bingbot', 'slurp', 'duckduckgo',
'baiduspider', 'yandexbot', 'facebookexternalhit'
];

if (userAgent.some(sig => userAgent.includes(sig))) {
// Mark as bot, filter from analytics
isBot = true;
}

// Only non-bot traffic appears in dashboard

Unlike Google Analytics (which sometimes misses bot traffic), Sealmetrics filters at source.

What if JavaScript is disabled on visitor's browser?

Sealmetrics has a fallback system:

  1. Primary: JavaScript snippet loads → Session tracking
  2. Fallback: If JS disabled → Server-side tracking captures pageview
  3. Result: Even no-JS visitors are counted

This is why Sealmetrics captures 100% while competitors top out at 95%.

How does Sealmetrics handle GDPR data subject requests?

Since Sealmetrics stores no personal data (no IPs, no persistent IDs), GDPR data subject requests are simple:

  • Right of Access: User requests their data → You respond: "We have no personal data stored about you" ✓
  • Right to Deletion: User requests deletion → Automatic (no personal data to delete) ✓
  • Right to Portability: User requests data export → Sessions are anonymous, no export needed ✓

Competitors' situation (hashing IPs): Gray area. Regulators argue hashed IPs + user agent + time = can be re-identified, so DPA required.

Can I integrate Sealmetrics with my CDP or marketing tools?

Yes, Sealmetrics provides an open API:

// Sealmetrics API
GET /api/v1/analytics/{siteId}/sessions
GET /api/v1/analytics/{siteId}/events
GET /api/v1/analytics/{siteId}/conversions

// Parameters:
// - dateRange
// - segmentation
// - custom events
// - attribution

// Returns: JSON data
// Use with Zapier, Make, custom integrations

Unlike Google Analytics (which restricts API), Sealmetrics data is yours.

How accurate is Sealmetrics compared to Google Analytics?

More accurate, actually:

MetricGA4Sealmetrics
Captured data13-40% in EU100%
Accuracy of captured data97%97%
Overall accuracy12-39%100%

Sealmetrics might show 100,000 sessions/month. GA4 in EU might show 13,000 (same period). Sealmetrics is more accurate because it captures all visitors.

What about cross-domain tracking?

Sealmetrics handles cross-domain tracking without cookies:

// Verify two domains belong to same business
// via verified ownership in Sealmetrics dashboard

// Then sessions automatically shared:
// User visits: mysite.com → shared-session-id-1
// User clicks to: shop.mysite.com → same-session-id-1
// All tracked as one session across domains

Unlike GA: No need for complex _ga cookies across domain boundaries.

How does Sealmetrics GDPR compliance work technically?

Architecture ensures GDPR compliance:

Session ID (fresh, temporary) → Personal data? NO
├─ Can't identify individual
├─ Expires automatically
└─ No legal basis needed

No IP storage → Personal data? NO
├─ Can't geolocation
├─ Can't identify
└─ No DPA required

No email/device ID → Personal data? NO
├─ No behavioral profile
├─ No individual tracking
└─ No consent needed

Result: Article 6(1)(f) legitimate interest sufficient

Competitors (GA + hashing):

Hashed IP + user agent + timestamp + location
├─ Possible re-identification? YES (regulators argue)
└─ Requires: Consent + DPA + DPIA (safer)

Sealmetrics removes this regulatory risk entirely.


Conclusion: Why Cookieless Analytics Matters

Learn more about how cookieless analytics works in our complete implementation guide.

The Problem (Today):

  • Google Analytics loses 87% of your EU visitor data
  • Cookie banners damage user experience (conversion rates drop 10-15%)
  • GDPR fines for non-compliance (4% of global revenue)
  • You're making decisions on incomplete data

The Solution (Sealmetrics):

  • Cookieless tracking captures 100% of visitors
  • No consent banner needed (no user frustration)
  • Built-in GDPR compliance (zero IP, zero gray area)
  • Better insights based on actual data

What You Get With Sealmetrics:

  • Real pageview counts (not 13% in EU)
  • Accurate bounce rates and session metrics
  • Returning visitor patterns (anonymously)
  • Full compliance with regulators
  • Same insights, zero legal risk

Implementation Takes 1 Minute:

  1. Copy tracking snippet
  2. Paste in website <head>
  3. Wait 1-2 minutes
  4. See 100% of traffic in dashboard

No more 87% data loss. No more consent banners. No more regulatory uncertainty.

That's how cookieless analytics works—and why Sealmetrics leads the market in technical implementation.


Additional Resources