feature/ga4 #2

Merged
rui.moraes merged 2 commits from feature/ga4 into main 2026-06-05 09:12:59 -03:00
Owner

Esta PR implementa duas funcionalidades principais para a versão 1.1.3:

  1. Analytics com Google Analytics 4 — Rastreamento completo de uso da plataforma
  2. Detecção Automática de Atualizações — Recarregamento automático quando há novo deploy

O que foi adicionado

Analytics (GA4)

Sistema modular e extensível com:

  • Rastreamento de páginas (automático)
  • Rastreamento de atividades educacionais
  • Consentimento LGPD/GDPR (banner obrigatório)
  • Comportamento offline (sem erros)
  • Google Consent Mode para conformidade regulatória

Como usar:

# Produção (com GA4)
docker compose build --build-arg VITE_GA4_ID=G-SEU_ID app

# Desenvolvimento (sem analytics)
docker compose build --build-arg VITE_ANALYTICS_PROVIDER=noop app

Detecção de Atualizações

Script automático em index.html que:

  • Verifica /version.json a cada página
  • Recarrega automaticamente se houver novo deploy
  • Usa sessionStorage para rastrear versão
  • Cache-busting com ?t=Date.now()

Resultado: Usuários sempre têm a última versão sem ação manual.

📚 Documentação

Nova:

  • docs/docs/plataforma/arquitetura/analytics.md — Visão geral técnica
  • docs/docs/plataforma/arquitetura/versionamento-atualizacoes.md — Sistema de atualizações
  • app/DOCKER_BUILD_EXAMPLES.md — Exemplos práticos de build
  • docs/docs/releases/v1.1.3.md — Release notes

Atualizada:

  • README.md — Seção de build com GA4
  • .env.example — Variáveis de environment

🔒 Segurança

  • LGPD/GDPR compliant
  • Banner de consentimento obrigatório
  • IPs anonimizados
  • Offline-aware (sem rastreamento quando offline)
  • Sem exposição de dados sensíveis

🧪 Como testar

GA4:

  1. Aceite o banner de cookies
  2. Abra DevTools → Network
  3. Procure por googletagmanager.com
  4. Verifique Relatórios → Em tempo real no GA4

Atualizações:

  1. Veja a versão: sessionStorage.getItem('app_version')
  2. Faça novo deploy
  3. Navegue para nova página
  4. Observe reload automático

📊 Métricas que passam a estar disponíveis

  • Quantas vezes cada atividade é acessada
  • Taxa de conclusão por atividade/fase
  • Onde os estudantes têm dificuldade
  • Tempo médio gasto por atividade
  • Taxa de abandono de atividades

Checklist

  • Analytics implementado e testado
  • Detecção de atualizações funcionando
  • Documentação completa
  • LGPD/GDPR compliance
  • Comportamento offline verificado
  • Sem referências quebradas

🚀 Deploy

Primeira vez com GA4:

  1. Obtenha ID em https://analytics.google.com
  2. Configure variável de ambiente: VITE_GA4_ID=G-XXX
  3. Build: docker compose build app
  4. Teste em tempo real no GA4

📖 Documentação Técnica

Esta PR implementa duas funcionalidades principais para a versão 1.1.3: 1. **Analytics com Google Analytics 4** — Rastreamento completo de uso da plataforma 2. **Detecção Automática de Atualizações** — Recarregamento automático quando há novo deploy ## ✨ O que foi adicionado ### Analytics (GA4) Sistema modular e extensível com: - ✅ Rastreamento de páginas (automático) - ✅ Rastreamento de atividades educacionais - ✅ Consentimento LGPD/GDPR (banner obrigatório) - ✅ Comportamento offline (sem erros) - ✅ Google Consent Mode para conformidade regulatória **Como usar:** ```bash # Produção (com GA4) docker compose build --build-arg VITE_GA4_ID=G-SEU_ID app # Desenvolvimento (sem analytics) docker compose build --build-arg VITE_ANALYTICS_PROVIDER=noop app ``` ### Detecção de Atualizações Script automático em `index.html` que: - Verifica `/version.json` a cada página - Recarrega automaticamente se houver novo deploy - Usa sessionStorage para rastrear versão - Cache-busting com `?t=Date.now()` **Resultado:** Usuários sempre têm a última versão sem ação manual. ## 📚 Documentação **Nova:** - `docs/docs/plataforma/arquitetura/analytics.md` — Visão geral técnica - `docs/docs/plataforma/arquitetura/versionamento-atualizacoes.md` — Sistema de atualizações - `app/DOCKER_BUILD_EXAMPLES.md` — Exemplos práticos de build - `docs/docs/releases/v1.1.3.md` — Release notes **Atualizada:** - `README.md` — Seção de build com GA4 - `.env.example` — Variáveis de environment ## 🔒 Segurança - ✅ LGPD/GDPR compliant - ✅ Banner de consentimento obrigatório - ✅ IPs anonimizados - ✅ Offline-aware (sem rastreamento quando offline) - ✅ Sem exposição de dados sensíveis ## 🧪 Como testar **GA4:** 1. Aceite o banner de cookies 2. Abra DevTools → Network 3. Procure por `googletagmanager.com` 4. Verifique `Relatórios → Em tempo real` no GA4 **Atualizações:** 1. Veja a versão: `sessionStorage.getItem('app_version')` 2. Faça novo deploy 3. Navegue para nova página 4. Observe reload automático ## 📊 Métricas que passam a estar disponíveis - Quantas vezes cada atividade é acessada - Taxa de conclusão por atividade/fase - Onde os estudantes têm dificuldade - Tempo médio gasto por atividade - Taxa de abandono de atividades ## ✅ Checklist - [x] Analytics implementado e testado - [x] Detecção de atualizações funcionando - [x] Documentação completa - [x] LGPD/GDPR compliance - [x] Comportamento offline verificado - [x] Sem referências quebradas ## 🚀 Deploy **Primeira vez com GA4:** 1. Obtenha ID em https://analytics.google.com 2. Configure variável de ambiente: `VITE_GA4_ID=G-XXX` 3. Build: `docker compose build app` 4. Teste em tempo real no GA4 ## 📖 Documentação Técnica - **Analytics:** [docs/docs/plataforma/arquitetura/analytics.md](docs/docs/plataforma/arquitetura/analytics.md) - **Versionamento:** [docs/docs/plataforma/arquitetura/versionamento-atualizacoes.md](docs/docs/plataforma/arquitetura/versionamento-atualizacoes.md) - **Build Docker:** [app/DOCKER_BUILD_EXAMPLES.md](app/DOCKER_BUILD_EXAMPLES.md) - **Release Notes:** [docs/docs/releases/v1.1.3.md](docs/docs/releases/v1.1.3.md)
rui.moraes added 2 commits 2026-06-05 09:12:44 -03:00
rui.moraes merged commit 4526ca79b0 into main 2026-06-05 09:12:59 -03:00
rui.moraes deleted branch feature/ga4 2026-06-05 09:13:00 -03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: educacao/decoda#2