Sări la conținut
Înapoi acasă

Cum măsurăm traficul

Zero cookie-uri, zero localStorage tracking, zero cross-site sharing. Doar contoare anonime care expiră în 24h.

Conformitate CNIL Sheet 16 + EDPB Guidelines 2/2023

1. Ce nu folosim

  • Nu folosim cookie-uri pentru analytics (nici primary, nici third-party)
  • Nu stocăm UUID persistent în localStorage / sessionStorage / IndexedDB pentru a urmări utilizatori cross-session
  • Nu trimitem date către Google Analytics, Facebook Pixel, Mixpanel sau orice alt furnizor third-party de analytics
  • Nu profilăm utilizatori cross-site (nu există tracking pixel embedabil)
  • Nu păstrăm adresa IP raw niciodată în baza de date sau loguri
  • Nu folosim fingerprinting (canvas, audio context, font enumeration, etc.)

2. Cum derivăm vizitatorul anonim

La fiecare cerere către /api/analytics, server-ul Civia calculează un identifier de vizitator anonim folosind formula:

visitor_id = sha256(daily_salt + host + ip + ua).slice(0, 16)

Salt-ul rotează la 24h și este șters automat din Redis după 26h. Odată ce salt-ul e șters, hash-ul devine matematic ireversibil — nu mai există nicio cale prin care să-ți reidentificăm sesiunea.

Raw IP și User-Agent sunt folosite doar la momentul calculării hash-ului și aruncate imediat. Niciodată persistate.

Acest mecanism a fost validat juridic de Plausible Analytics (model de referință) și este aliniat cu interpretarea CNIL (Sheet 16) pentru excepția de la consimțământ.

3. Ce câmpuri capturăm

Date strict tehnice, aggregate ca contoare în Redis:

Pathname

ruta din URL (ex: /sesizari)

Referrer

domeniul de unde vii (ex: google.com)

Țară

derivată din IP, prin Vercel (RO/EU/etc.)

Oraș

derivat din IP, doar EU (de ex. București)

Browser

Chrome / Firefox / Safari / Edge

OS

Windows / macOS / iOS / Android / Linux

Device

desktop / mobile / tablet

Viewport

bucket xs/sm/md/lg/xl/2xl

Limbă browser

navigator.language (ex: ro-RO)

Color scheme

dark/light preference

Connection

2G/3G/4G/wifi (când e expus)

UTM params

utm_source/medium/campaign/content/term

Niciun câmp listat aici NU permite reidentificarea ta. Aggregat la nivel de pagină sau county, nu individual.

4. Cât timp păstrăm datele

  • Daily salt — 26h (TTL Redis), apoi șters automat → hash-ul devine ireversibil
  • Counter-uri pageview / device — 90 zile rolling, șterse automat la rotația buckets
  • Events stream (recent) — 7 zile, ștergere automată LTRIM + EXPIRE
  • Web Vitals samples — 14 zile (reservoir sampling pentru percentile)
  • Vizitatori recenți (admin /sessions) — 7 zile backstop, prune la 1000
  • Daily Active Users counter — 90 zile (pentru cohort analysis)
  • Monthly Active Users counter — 90 zile
  • Aggregate trends (luni) — păstrate indefinit (zero PII după rollup)

5. Filtre anti-bot și anti-spam

Pentru a păstra metricile reale, server-ul Civia filtrează automat:

  • User-Agent care declară explicit „bot", „crawler", „spider", „scraper"
  • Tooluri headless (Selenium, Playwright, Puppeteer, Phantom, curl, wget)
  • Crawlere mari (Googlebot, Bingbot, AhrefsBot, etc.)
  • Cereri fără header Accept-Language (real browsers îl trimit mereu)
  • UA-uri suspect de scurte (sub 20 caractere)
  • Pattern-uri behavioral suspecte (multi-events sub 200ms, semn de bot)

Sursă: bot traffic în 2025 = 51% din internet total (Imperva Bad Bot Report).

6. Opt-out — nu vreau să fiu numărat

Poți să te excluzi complet din analytics. Două opțiuni:

  1. Flag local (instantaneu, no signup):
    Deschide DevTools (F12) → Console și rulează:
    localStorage.setItem("civia_exclude_tracking", "1")

    Acest flag se setează DOAR de tine, nu de Civia — outside scope ePrivacy.
  2. Cere ștergere completă dacă ești user logat:
    /cont → Datele mele → Șterge contul (cascadează automat și asupra analytics)

7. Cadru legal

  • ePrivacy Directive 2002/58/CE + Legea 506/2004 (RO) art. 4(5) — consimțământ necesar DOAR pentru stocare pe terminal. Civia nu stochează nimic → exempt.
  • GDPR Reg. (UE) 2016/679 — hash-ul devine ireversibil după 24h → datele ies din scopul GDPR (nu mai sunt date cu caracter personal).
  • EDPB Guidelines 2/2023 (final Oct 2024) — confirmă că „cookieless" alone nu e suficient; Civia merge mai departe cu zero device storage.
  • CNIL Sheet 16 — Civia respectă toate cele 8 condiții pentru excepția de la consimțământ (audience measurement, no cross-dataset joining, IP truncation, ≤13 luni tracker lifetime, per-publisher isolation).
  • ANSPDCP — autoritatea română de protecție a datelor. Civia poate justifica structural că nu există stocare pe terminal.

8. Cum răspundem la cereri GDPR

Scrie la gdpr@civia.ro pentru:

  • Dreptul la informare (Art. 13-14) — informații despre prelucrare (asta e pagina pe care o citești)
  • Dreptul de acces (Art. 15)— ce date avem despre tine (răspuns <30 zile; pentru analytics anonimizate, răspunsul e „nimic identificabil")
  • Dreptul la ștergere (Art. 17) — purge analytics + cont. Procesat automat la cont delete, sau manual prin endpoint admin pentru utilizatori specifici.
  • Dreptul la portabilitate (Art. 20) — export sesizările tale ca JSON. /cont → Export date
  • Plângere la ANSPDCP dataprotection.ro dacă crezi că Civia nu respectă GDPR

Versiune: 1.0 · Ultima actualizare: 25 mai 2026