Skip to content

Google Analytics 4, în spatele unui banner de consimțământ

Vitalie requested to merge 9_ga4-consent into main

Magazinul nu avea nicio măsurătoare: nu se știa câți oameni intră, de unde vin și în ce punct se pierde o comandă. Datele care nu se strâng azi nu se mai pot recupera. Dar nu avea nici banner de cookie-uri, nici pagină de politică — exact motivul pentru care un tag nu putea fi pur și simplu lipit în pagină.

Ordinea e chiar funcționalitatea

  1. Consent Mode v2 pornește cu tot ce cere consimțământ pe denied.
  2. Către Google nu pleacă nimic până nu există un accept înregistrat. Până atunci pagina încarcă două scripturi, ambele ale noastre, și nu scrie niciun cookie.
  3. Acceptul și refuzul stau unul lângă altul, la aceeași greutate vizuală, nimic nu e bifat în prealabil, iar subsolul redeschide alegerea pe orice pagină.

Codul de măsurare nu e fixat la build

Ajunge prin /config.js la pornirea containerului, ca API_URL: o singură imagine servește toate mediile, iar numai producția raportează în proprietatea reală. Unde nu e setat niciun cod nu există tag, nu există cookie și nu apare nici bannerul — a cere permisiunea pentru ceva ce nu se întâmplă ar fi necinstit. Asta e starea pe dezvoltare.

Documentele legale

Politica de confidențialitate spunea că site-ul nu folosește cookie-uri de analiză, ceea ce devine fals. S-au corectat secțiunea de cookie-uri, lista datelor colectate și lista destinatarilor. Pagina nouă /legal/cookies are șapte secțiuni în trei limbi, cu fiecare cookie documentat pe nume, scop și durată, plus transferul de date către Google Ireland.

Verificare pe un build de producție, în browser

moment cereri către googletagmanager cookie-uri
înainte de accept 0 niciunul
după accept 1 exact _ga și _ga_CF6Y4KEWBD, cele două documentate
după refuz 0 niciunul

analytics_storage trece pe granted doar la accept; ad_storage, ad_user_data și ad_personalization rămân denied în toate cazurile — magazinul nu rulează niciun tag de publicitate.

Evenimente configurate: add_to_cart, generate_lead la trimiterea formularului de comandă (trimis abia după ce serverul acceptă comanda, nu la click) și phone_click.

16 teste noi în frontend/src/test/consent.test.tsx, dintre care cele care contează juridic: nimic nu se încarcă înainte de accept, nici la refuz, iar refuzul rămâne memorat. Frontend 174 de teste în 21 de fișiere, backend 411 în 25; build-uri și typecheck curate.

Ce rămâne din issue

Legarea proprietății GA4 de Search Console nu se poate face încă — Search Console nu e configurat (etapa 7 din #2). De aceea issue-ul rămâne deschis pentru acel singur punct.

Refs #9 (closed)

Merge request reports