consentimiento de cookies para v0

Consentimiento de cookies para v0,
antes del primer render

v0 te da una app Next.js. La etiqueta va en app/layout.tsx con strategy="beforeInteractive", así que los valores por defecto del consentimiento existen antes de la hidratación y de cualquier gestor de etiquetas que v0 haya añadido.

Todo el cambio: el runtime primero, y cada rastreador convertido en un script que espera a su categoría.

la norma

Lo que v0 no incluye

Un proyecto de v0 con analítica activada la ejecuta en la hidratación. Sin capa de consentimiento, cada visitante de la UE es rastreado antes incluso de que la página sea interactiva.

La norma es la misma en toda la UE y en el Reino Unido: nada más allá de lo estrictamente necesario puede almacenarse en el dispositivo de un visitante ni leerse de él antes de que haya dado su consentimiento. Es el artículo 5(3) de la Directiva ePrivacy, y ese consentimiento debe cumplir la definición del RGPD: libre, específico, informado e inequívoco, con un rechazo tan fácil como la aceptación. El Reino Unido mantiene la misma norma en PECR, con exenciones limitadas para estadísticas de bajo riesgo desde el 5 de febrero de 2026. California y las demás leyes estatales de EE. UU. funcionan al revés: sin opt-in, pero con un enlace de opt-out y soporte para la señal Global Privacy Control.

De ahí se derivan tres cosas para un sitio web. Los scripts de analítica, publicidad y redes sociales tienen que esperar una decisión. La decisión tiene que registrarse de forma que puedas demostrarla después, porque el artículo 7(1) pone la carga de la prueba sobre ti. Y retirar el consentimiento tiene que ser tan fácil como darlo, lo que exige un control que vuelva a abrir el banner en cada página. Un banner que muestra dos botones y carga Google Analytics de todos modos suspende la primera prueba, y ese es justo el fallo que las autoridades están sancionando, desde las decisiones de la CNIL contra Google y SHEIN hasta las inspecciones de las autoridades neerlandesa y belga.

cómo funciona

Cómo funciona el consentimiento en una app de v0

v0 genera Next.js con el App Router, shadcn/ui y Tailwind, y despliega en Vercel. Eso lo hace el builder más fácil de configurar bien, porque Next.js tiene una única respuesta correcta para un runtime de consentimiento: una etiqueta next/script con strategy="beforeInteractive" en app/layout.tsx. Inyectada en el HTML inicial, se ejecuta antes de la hidratación y de cualquier gestor de etiquetas que v0 haya añadido con la estrategia por defecto.

Los scripts que v0 suele añadir, Vercel Analytics, Speed Insights y el GA4 o píxel que hayas pedido, son todos analítica o marketing y todos tienen que esperar. El prompt de esta página coloca el runtime y etiqueta cada uno de ellos. Para los componentes que cargan un rastreador al montarse, ConsentGate de @cookiecrumbs/next hace lo mismo en el árbol.

En Vercel, los despliegues de vista previa usan la clave de preview y producción usa la clave de producción, así que una iteración de v0 nunca toca el consentimiento de visitantes reales. El escaneo se ejecuta contra el dominio de producción y la comprobación de instalación confirma que la etiqueta va primero; ambos están en el plan gratuito.

configuración

Configúralo desde v0

Diez minutos, un prompt, sin npm.

  1. Crea el sitio, obtén la clave

    Regístrate, añade el dominio en el que está publicada tu app y copia la clave de producción desde Instalar. El plan gratuito cubre dos dominios.

  2. Pega este prompt en v0

    Pone la etiqueta primero y convierte cada rastreador en un script sujeto a consentimiento. Lee el diff que genera; nada más debería cambiar.

    Add this to app/layout.tsx, before any other script:
    import Script from 'next/script';
    <Script src="https://app.cookiecrumbs.eu/runtime/cc.js"
      strategy="beforeInteractive"
      data-cc-site="pk_live_…" data-cc-env="production" />
    Then change every analytics, advertising and social script to type="text/plain" with data-cc-category="analytics" or "marketing". Do not change anything else.
  3. Publica y luego escanea

    Publica la app. En el panel, ejecuta el primer escaneo: carga la app en producción en un navegador real y lista lo que aún se dispara antes del consentimiento, si hay algo.

  4. Clasifica una vez, configura los enlaces legales, publica el banner

    Clasifica cada proveedor en una categoría, configura tus enlaces de aviso legal y privacidad, publica. El banner está en producción y el registro de consentimiento está grabando.

  5. Ejecuta la comprobación de instalación

    Carga tu página como un visitante y confirma que el banner se ejecutó antes que cualquier rastreador. Esa marca es la prueba.

ojo

Errores que vemos con v0

Cada uno aparece en el primer escaneo como un rastreador que se disparó antes del consentimiento.

  • afterInteractive para el runtimeLa estrategia por defecto se ejecuta tras la hidratación. Solo beforeInteractive es suficientemente temprano.
  • Vercel Analytics contado como necesarioEs analítica. Bloquéalo como GA4.
  • Un banner de un prompt de UI de v0Precioso, y no bloquea nada. El runtime tiene que bloquear los scripts.
  • Variables de entorno para la clave del sitioBien, siempre que la etiqueta en sí se quede en app/layout.tsx y primero.
  • Saltarse el escaneo porque «es solo una landing page»Las landing pages llevan más píxeles que cualquier otro tipo de página. Ejecútalo.

antes de publicar

La lista de comprobación

Ocho líneas. El panel marca las dos últimas con datos reales.

  • La etiqueta es el primer script del headCualquier cosa por encima puede poner una cookie que el runtime no puede retirar.
  • Cada script de analítica, anuncios y redes sociales espera a su categoríaO bien type="text/plain" con una categoría, o bien el host está en el mapa de bloqueo del escaneo.
  • «Rechazar todo» está en la primera capaMismo tamaño y mismo peso que «Aceptar todo». Sin «X» que cuente como consentimiento ni casillas premarcadas.
  • Los valores por defecto de Consent Mode están en «denied» antes de que cargue GoogleComprueba las siete señales en Tag Assistant con el consentimiento denegado.
  • Los enlaces al aviso legal y a la política de privacidad están configuradosLa publicación se rechaza hasta que estén los dos; el pie del banner enlaza a ellos.
  • Hay un control para retirar el consentimiento en cada páginaEl control permanente o un enlace «Gestionar cookies» en tu pie de página.
  • El primer escaneo completo se ejecutó y cada proveedor está clasificadoEl veredicto en Inicio dice, con fecha, qué se disparó antes del consentimiento.
  • La comprobación de instalación se ha superadoCarga tu página como un visitante y confirma que el banner se ejecutó antes que cualquier rastreador.

lo que obtienes

Lo que incluye el plan gratuito

Dos dominios, 100 subpáginas escaneadas al mes por dominio, todas las normativas, la CLI, los SDK y el servidor MCP.

Un escáner que lee la página renderizada

Cada página, en cada estado de consentimiento, en un navegador real. Cookies, píxeles, iframes y claves de almacenamiento, con la página y el script que los pusieron. Se vuelve a escanear según un calendario.

La declaración de cookies se escribe sola a partir del resultado.

Un banner que bloquea primero

Las etiquetas permanecen inactivas hasta que se concede su categoría. «Rechazar todo» es tan visible como «Aceptar todo». Siete diseños, 25 idiomas, Consent Mode v2 y la norma correcta por región.

21 kB, un solo archivo, sin peticiones propias a terceros.

Una prueba que puedes entregar

Cada decisión se guarda con marca de tiempo, versión del banner y un hash de los textos mostrados, encadenada al registro anterior. Las exportaciones van firmadas. Alojado en Fráncfort.

Artículo 7(1), en el plan gratuito.

comprobación gratuita

Mira qué carga tu app de v0 ahora mismo

El HTML de la página de inicio, contrastado con la base de datos de rastreadores. Sin cuenta, sin guardar nada. El escaneo completo del panel hace lo mismo con cada página, en un navegador real.

preguntas

Respuestas claras

¿v0 añade un banner de cookies RGPD por defecto?
No. v0 genera la UI y la analítica que le pides, y nada que pregunte antes al visitante.
¿Dónde va la etiqueta en un proyecto de v0?
En app/layout.tsx como etiqueta next/script con strategy="beforeInteractive", antes de cualquier otro script. El prompt de esta página lo hace.
¿Es obligatorio un banner de cookies para una app pequeña?
Si la app atiende a visitantes de la UE o el Reino Unido y pone alguna cookie no esencial, analítica incluida, entonces sí. El deber recae en el operador del sitio, no en la herramienta que lo generó. Un proyecto personal sin analítica ni embeds no necesita nada.
¿El banner ralentizará la app?
El runtime pesa 21 kB comprimido, un solo archivo, cargado en asíncrono, sin peticiones propias a terceros. Los diseños de barra y cinta reservan su espacio antes del pintado, así que no hay desplazamiento.
¿Puedo seguir usando el builder después?
Sí. La etiqueta y los scripts bloqueados son HTML normal que v0 conserva entre ediciones. Vuelve a ejecutar el escaneo tras cambios grandes; el panel te avisa cuando aparece un nuevo rastreador.
¿A dónde van los datos de consentimiento?
A Fráncfort, Alemania. Los registros nunca salen de la UE, no se guarda ninguna dirección IP ni user agent junto a un registro, y cada registro se exporta como CSV o JSON firmado, incluso después de cancelar.

siguiente paso

Conforme antes de compartir el enlace

Plan gratuito, dos dominios, sin tarjeta. Escanea primero la app en producción si quieres ver qué carga hoy.