“NutriScore de privacidad” para webs: una extensión que analiza cookies, señales de tracking y políticas de privacidad para devolver una nota A–E con explicación clara.
- ✅ Muestra una nota A–E (tipo NutriScore) para la web actual.
- 🍪 Analiza cookies (total, persistentes, y señales de ads/analytics si se detectan).
- 🌐 Detecta recursos externos y dominios de terceros (scripts, iframes, preconnect/dns-prefetch, etc.).
- 🧠 (Opcional) Usa IA (Gemini) para extraer señales del texto legal (la IA no decide la nota).
- 📌 Genera un resumen “human-readable” con motivos y señales de riesgo.
Note
La letra final siempre la calcula un scoring determinista (reglas y pesos). La IA, si se activa, solo ayuda a extraer señales/evidencias.
- El popup pide analizar la pestaña actual.
- Se recopilan señales:
- cookies del dominio
- links a política de privacidad/cookies
- recursos externos / trackers
- señales de consentimiento (CMP) y storage (si aplica)
- (Opcional) Se llama a Gemini para extraer señales del texto legal.
- Se calcula un score 0–100 y se convierte a letra A–E.
- Se muestran motivos claros en formato lista.
Tip
Si la web no enlaza a su política o bloquea su descarga, el análisis se apoyará más en señales técnicas (cookies/trackers) y puede ser menos completo.
- Descarga o clona este repositorio.
- Abre
chrome://extensions/ - Activa Modo desarrollador
- Pulsa Cargar descomprimida
- Selecciona la carpeta del proyecto (donde está
manifest.json)
✅ Listo. Abre cualquier web y pulsa el icono de la extensión.
- Entra en Google AI Studio
- Crea una API Key
- Copia la clave
chrome://extensions/→ tu extensión → Detalles → Opciones de extensión- Pega la clave en Gemini API Key
- Activa “Usar IA (Gemini)”
- Guarda
La nota se calcula con señales como:
- 🔴 Venta/monetización de datos (si se detecta en texto)
- 🟠 Compartición con terceros
- 🟠 Publicidad personalizada / tracking
- 🟡 Retención indefinida o no especificada
- 🍪 Muchas cookies / cookies persistentes
- ✅ Derechos del usuario claros (borrado, acceso, portabilidad)
Note
Los pesos del scoring están pensados para ser explicables y fáciles de ajustar, manteniendo consistencia entre sitios.
privscore-extension/
├─ manifest.json
├─ icons/
│ ├─ icon16.png
│ ├─ icon48.png
│ └─ icon128.png
└─ src/
├─ background/
│ ├─ service_worker.js
│ ├─ analyzer_keywords.js
│ ├─ scoring.js
│ ├─ weights.js
│ ├─ bullets.js
│ ├─ cookies_summary.js
│ ├─ cookie_classifier.js
│ ├─ policy_fetcher.js
│ ├─ html_cleaner.js
│ └─ gemini_client.js
├─ content/
│ └─ content_script.js
└─ popup/
├─ popup.html
├─ popup.css
└─ popup.js
- Algunas webs bloquean o dificultan la descarga de su política (CORS/redirecciones).
- La detección de trackers/cookies es heurística (no perfecta).
- El resultado puede ser parcial si no hay política accesible o no hay enlaces claros.
Idea de @hugo-guarido-dominguez
Desarrollado por @marichu-kt


