GA4 în spatele unui banner de consimțământ, cu Consent Mode v2
Magazinul nu are nicio măsurătoare de trafic: nu se știe câți oameni intră, de unde vin, ce produse se uită și în ce punct abandonează comanda. Nu există nici bannerul de consimțământ, nici pagina de politică a cookieurilor, deci un tag de analiză nu poate fi pornit legal în UE așa cum stau lucrurile acum. Datele care nu se colectează azi nu se pot recupera retroactiv, deci fiecare zi de întârziere e pierdută definitiv.
Ce am găsit
Niciun tag de analiză în cod
grep -rnE "gtag|googletagmanager|google-analytics|dataLayer|G-[A-Z0-9]{6,}|GTM-|fbq|facebook.net" \
--include="*.ts" --include="*.tsx" --include="*.js" --include="*.html" --include="*.json" \
--include="*.yml" --include="*.conf" --include="*.sh" \
frontend/src frontend/public frontend/index.html frontend/nginx.conf frontend/docker \
backend/src .gitlab-ci.yml deploy
nu întoarce nicio linie.
Niciun tag de analiză pe pagina servită
HTML-ul primei pagini de pe producție încarcă exact două scripturi: grep -oE '<script[^>]*src="[^"]*"' home-ro.html întoarce /assets/index-DuAUJSdq.js și /config.js. Pachetul de intrare a fost descărcat (431.284 de octeți) și scanat: grep -coE "gtag|googletagmanager|google-analytics|dataLayer|fbq|connect\.facebook" bundle.js întoarce 0. Nu e cazul în care React ar injecta tagul la execuție — codul care s-ar injecta nu există în pachet. Nici alt sistem de măsurare nu e prezent: grep -ioE "cloudflareinsights|beacon\.min\.js|plausible|umami|matomo|clarity" home-ro.html bundle.js nu întoarce nimic.
Nu există banner de consimțământ și nici pagină de cookieuri
ls frontend/src/components | grep -iE "cookie|consent" întoarce doar BannerButton.tsx, HeroBanner.tsx și PromoBanner.tsx — bannere vizuale de promovare, nu de consimțământ. Harta $spa_known din frontend/nginx.conf cunoaște, la linia 88, doar /legal/(terms|privacy), iar https://hyperice.md/legal/cookies răspunde cu 404.
De făcut
Ordinea contează: un tag de analiză pornit înaintea consimțământului este ilegal în UE, deci partea legală se face prima.
-
Implementează bannerul propriu de consimțământ, care blochează scripturile de urmărire până la accept, împreună cu pagina /legal/cookies(rută adăugată și în$spa_knowndinfrontend/nginx.conf). -
Implementează Google Consent Mode v2 cu analytics_storage: deniedca stare implicită. -
Adaugă tagul GA4, încărcat abia după accept. -
Injectează ID-ul de măsurare ( G-XXXXXXXXXX) la pornirea containerului prin/config.js, înfrontend/docker/render-runtime-config.sh, la fel caAPI_URL— nefixat la build, altfel dezvoltarea și producția raportează în aceeași proprietate. -
Configurează evenimentele: trimiterea formularului de Comandă, click pe numărul de telefon, adăugare în coș. -
Leagă proprietatea GA4 de Search Console.
Criteriu de acceptare
Pe https://hyperice.md/, înainte de accept, în fila Network nu pleacă nicio cerere către googletagmanager.com. După accept pleacă, iar GA4 Realtime arată sesiunea. O comandă de test apare ca eveniment în GA4. Proprietatea GA4 este legată de Search Console.
Depinde de
Proprietatea GA4 se creează din contul Google al lui Vitalie, iar ID-ul de măsurare vine de acolo — nu poate fi obținut din repo. Tot de la el vine și textul politicii de cookieuri.