Cómo añadir un aviso de paywall en una app de v0 sin programador
Un paywall suave en una app de v0: cuando un usuario gratis llega a una función de pago, un modal explica la mejora y enlaza a tu página de precios, segmentado por plan, medido y editable sin release.
- Tiempo
- ● 20 minutos
- Precio
- Prueba gratis de 14 días, sin tarjeta
- Quién lo hace
- Tú y el chat de v0
Ejemplo: un aviso de mejora en una app de v0
Una app de analítica hecha con v0 ofrece exportar a CSV en planes de pago. Los usuarios gratis que hacen clic en data-tour="export-csv" en /dashboard/reports ven “Exportar a CSV está en Team: pruébalo gratis 14 días” con enlace a la página de precios de la app.
Este formato forma parte del plan Pro. Cada cuenta nueva empieza con una prueba gratis de 14 días con todos los formatos y reglas de audiencia, sin tarjeta. Al terminar no se borra nada y lo publicado se sigue mostrando; los tours y tooltips siguen gratis en el plan Free.
Cómo añadir el aviso de paywall en una app de v0, paso a paso
- Paso 01
Copia tu snippet de Clew
Crea una cuenta gratis (o inicia sesión), añade tu sitio y abre Admin → Resumen. Haz clic en la línea de la tarjeta del widget para copiarla: ya lleva la clave real de tu sitio en lugar del marcador.
<!-- Clew: sustituye PEGA_AQUI_TU_CLAVE por la clave del sitio de Admin > Resumen --> <script src="https://tryclew.io/widget/PEGA_AQUI_TU_CLAVE.js" async></script>

Paso 1 · ilustración esquemática - Paso 02
Abre el chat de tu proyecto en v0
Abre el proyecto en v0. v0 genera Next.js con App Router, así que el archivo correcto es
app/layout.tsx.
Paso 2 · ilustración esquemática - Paso 03
Envía el prompt con tu clave
Sustituye
PEGA_AQUI_TU_CLAVEpor tu clave y envía el prompt. Usanext/script, que es como Next.js carga scripts de terceros.Añade el widget de onboarding de Clew a esta app. Inserta esta etiqueta exacta una sola vez para que cargue en todas las páginas, también tras los cambios de ruta del lado del cliente: <script src="https://tryclew.io/widget/PEGA_AQUI_TU_CLAVE.js" async></script> Es un proyecto de v0 con Next.js App Router: en app/layout.tsx importa Script de "next/script" y añade <Script src="(la misma URL)" strategy="afterInteractive" /> dentro de <body>. Cuando el usuario con sesión esté cargado, y cada vez que cambie la suscripción, llama a Clew.identify({ plan: <id del plan actual del usuario como cadena, p. ej. "free"> }). Si el widget aún puede no haber cargado, define primero el stub de cola: window.TutorKit = window.TutorKit || { q: [], identify: function (p) { this.q.push(["identify", p]); } }; y llama a window.TutorKit.identify(...). Añade un atributo data-tour a los botones de las funciones de pago (por ejemplo data-tour="export"). No añadas lógica propia de pagos, bloqueo o paywall y no cambies lo que hacen los botones. Reglas: - Usa la URL del script exactamente como está. No la descargues, no la empaquetes ni instales un paquete npm. - Si el proyecto define una Content-Security-Policy, permite https://tryclew.io en script-src y connect-src. - No cambies nada más y enséñame el diff.
Paso 3 · ilustración esquemática - Paso 04
Revisa layout.tsx y despliega
Espera un elemento
<Script>enapp/layout.tsx. Después, Deploy a Vercel y abre la URL de producción.
Paso 4 · ilustración esquemática - Paso 05
Escribe el aviso de mejora
En Clew abre Flujos → + Nuevo flujo y elige Ventana modal. Un paso: un título con el beneficio (“Exportar a CSV está en Pro”), una frase de valor y, en Texto del enlace / URL del enlace, el botón y la URL de tu página de precios o checkout.

Paso 5 · ilustración esquemática - Paso 06
Elige dónde, cuándo y a quién se muestra
En el mismo editor, completa Dónde mostrarlo (URL de la página), Cuándo mostrarlo, Segmentación de audiencia y Frecuencia. Estos son los ajustes del ejemplo de arriba:
Ajuste Valor Formato Ventana modal Dónde mostrarlo (URL de la página) Sección por prefijo /dashboard/reportsCuándo mostrarlo Al hacer clic en un elemento: [data-tour="export-csv"]Segmentación de audiencia Propiedad planes igual afreeFrecuencia En cada visita 
Paso 6 · ilustración esquemática - Paso 07
Publica y compruébalo en el sitio real
Pon Estado en Publicado y guarda. Abre la página en una ventana privada: Clew recuerda quién ya vio un elemento de “una vez”, así que tu navegador habitual puede saltárselo. Las vistas, finalizaciones y abandonos aparecen en las estadísticas.

Paso 7 · ilustración esquemática
Errores comunes: aviso de paywall en una app de v0
Los server components no pueden llamar a identify
Clew.identify() se ejecuta en el navegador. Debe ir en un client component ("use client") que tenga la sesión, no en un server component ni en el layout.
Espera a los datos antes de señalar gráficos
Los dashboards pintan primero marcadores vacíos. Ancla los pasos a títulos y botones, o usa Tras N segundos de un par de segundos para que el aviso de paywall aparezca con los datos.
El aviso no sustituye la comprobación de acceso
Si la función de pago es accesible para usuarios gratis en tu app, el modal aparece pero la función sigue funcionando detrás. Comprueba que el servidor aplica el plan; el aviso es solo el mensaje.
Actualiza la propiedad tras la mejora
Las propiedades viven en el navegador hasta que la app envía un valor nuevo. Llama a Clew.identify({ plan: "pro" }) tras una mejora correcta, o el nuevo cliente seguirá viendo el aviso.
Preguntas y respuestas
¿Dónde se define la propiedad plan?
En un client component con la sesión, justo cuando se carga.
¿Por qué no una etiqueta script normal en v0?
En App Router, next/script es la forma soportada de añadir scripts de terceros; una etiqueta suelta en un componente puede renderizarse dos veces o ninguna.
¿Clew cobra el pago?
No. El botón enlaza a tu propia página de precios o checkout; Clew nunca gestiona tarjetas, suscripciones ni accesos.
¿El aviso de paywall es gratis?
Necesita el formato modal y una regla de audiencia, ambos en Pro. La prueba de 14 días los incluye, sin tarjeta.
Qué más puedes añadir en una app de v0
- Cómo crear un tour de producto en una app de v0 sin programador
- Cómo añadir un checklist de onboarding en una app de v0 sin programador
- Cómo configurar el onboarding de usuarios en una app de v0 sin programador
Aviso de paywall en otras plataformas
- ShopifyCómo añadir un aviso de paywall en Shopify sin programador
- Google Tag ManagerCómo añadir un aviso de paywall con Google Tag Manager sin programador
- LovableCómo añadir un aviso de paywall en una app de Lovable sin programador
- Bolt.newCómo añadir un aviso de paywall en una app de Bolt.new sin programador
- ReplitCómo añadir un aviso de paywall en una app de Replit sin programador
- CursorCómo añadir un aviso de paywall en una app hecha con Cursor sin programador
- Claude CodeCómo añadir un aviso de paywall con Claude Code sin programador
- ChatGPT CodexCómo añadir un aviso de paywall con ChatGPT Codex sin programador
- Qwen CodeCómo añadir un aviso de paywall con Qwen Code sin programador