Pillar 3 of 4
Hunt down trackers your tag manager forgot about
A real browser, real network interception, and a full set of fingerprinting API hooks. We catch the trackers everyone catches — and the ones nobody else does.
The fingerprinting that hides in plain sight
Privacy laws are catching up to fingerprinting. Cookie-style consent banners don't help, because fingerprinting doesn't write a cookie — it reads stable browser characteristics to identify you. Most scanners can't see this. We inject a small init script before any of your page's JavaScript runs. It wraps the four APIs most commonly used for fingerprinting and counts every call. If your site loads a third-party script that probes the canvas to derive a hardware-specific image hash, we'll see exactly which script and how many times. This is how The Markup's Blacklight project works, and it's the only reliable way to detect fingerprinting from outside the running script.
Network interception, done right
We listen to every outbound request from page load through 4 seconds of scrolling, so trackers triggered by lazy-loaded content (the ones that fire when the user reaches a chat widget or product card) aren't missed. First-party vs third-party is determined by registrable domain comparison — a request to cdn.example.com from example.com is correctly first-party, whereas px.facebook.com is third-party even if loaded from a same-name subresource. Each request is recorded with its category, owner organization, and known-tracker name where applicable.
Why classify? Because counting matters less than naming
Telling a customer "your site loads 47 third-party requests" is a number without action. Telling them "your site loads Hotjar (session replay), Mixpanel (analytics), and Meta Pixel (advertising) before consent" is a punch list. Every known tracker comes with the owning organization so your privacy team has the right vendor to negotiate with.
Esempi di riscontri
Rilevato canvas fingerprinting
Uno script caricato da cdn.fingerprintjs.com ha chiamato HTMLCanvasElement.prototype.toDataURL() 3 volte durante il caricamento della pagina. Combinato con letture WebGL e audio-context dallo stesso script, questo è coerente con fingerprinting deterministico del browser e dovrebbe essere dichiarato nella Sua privacy policy e bloccato dietro consenso esplicito.
API : canvas.toDataURL Chiamato da : https://cdn.fingerprintjs.com/v3/iife.min.js Numero chiamate: 3 Si verifica insieme a: webgl.getParameter, audioContext, navigator.plugins
Tool di session-replay caricato prima del consenso
Hotjar (hotjar.com/c/hotjar-XXXXX.js) è stato caricato e inizializzato prima che l’utente interagisse con il banner di consenso. Il session replay registra movimenti del mouse, click, scroll e input dei form — l’EDPB ha chiarito che si tratta di un trattamento di categoria speciale sotto GDPR e richiede consenso opt-in, non un legittimo interesse.
Tracker : Hotjar (session replay) Proprietario : Contentsquare Caricato : t=0.4s (prima del montaggio del banner) Categoria : session-replay (alto rischio) Correzione: rimandi le richieste hotjar.com finché l’utente non opta per la categoria "analytics" o "functional" nel Suo CMP.
Probe di WebGL fingerprinting
Un bundle first-party legge WebGLRenderingContext.getParameter() con l’estensione UNMASKED_RENDERER_WEBGL — che espone il modello GPU dell’utente. Non c’è un caso d’uso di rendering per quella stringa nella Sua app; è un segnale di fingerprinting che dovrebbe essere dichiarato o rimosso.
API : WebGLRenderingContext.getParameter Parametro : UNMASKED_RENDERER_WEBGL (37446) Chiamato da : /static/js/main.4f8a2c.js (bundle first-party) Numero chiamate: 1 Espone la stringa del renderer GPU (es. "ANGLE (Apple, Apple M2 Pro, OpenGL 4.1)").
Scansioni il Suo sito in 60 secondi
25 crediti gratis. Nessuna carta di credito. Riscontri reali sulla pagina che La interessa.