Product Craft Bible
PWA e Instalación de Apps
Inicio SaaS y Admin PWA e Instalación de Apps
SaaS y Admin

PWA e Instalación de Apps

8 reglas web.dev/customize-install · Chrome Developers 2023 · Maximiliano Firt, Frontend Masters 2023web.dev/add-manifest · MDN Web Docs 2024 · web.dev/maskable-iconGoogle I/O 2019 · web.dev/promote-install · Smashing Magazine 2023web.dev/promote-install · Chrome Developers 2023 · Maximiliano Firt, A Book Apart 2019
125

PWA e Instalación de Apps

8 reglas
1110

Difiere beforeinstallprompt, muestra tu propio botón

El navegador emite beforeinstallprompt cuando la PWA es instalable, pero el mini-infobar nativo aparece en el peor momento con tasas de conversión menores al 2%. Captura y pospón el evento, luego desencadénalo desde tu propio botón contextual. Registra siempre si el usuario aceptó o rechazó para alimentar analytics y tomar decisiones de retargeting.

web.dev/customize-install · Chrome Developers 2023 · Maximiliano Firt, Frontend Masters 2023
Preferir
Dashboard
Vista general de métricas
Notificaciones
3 sin leer
Instalación completada
Evitar
Dashboard
Vista general de métricas
Añadir Mi App a la pantalla de inicio
miapp.com
No Añadir
1111

Manifest + HTTPS + SW: tres pilares de instalabilidad

El navegador solo habilita la instalación cuando los tres requisitos se cumplen simultáneamente: manifest con campos obligatorios, HTTPS activo, y un service worker con al menos un fetch handler. La ausencia de cualquiera bloquea el flujo completo. Los íconos con purpose maskable aumentan la tasa de instalación completada en Android un 9% al integrarse en adaptive icons.

web.dev/add-manifest · MDN Web Docs 2024 · web.dev/maskable-icon
Preferir
Web App Manifest válido
name, short_name ≤12ch, start_url, icons 192+512px maskable
HTTPS activo
https://miapp.com, certificado TLS válido
Service Worker registrado
fetch handler activo, scope: /
App instalable, beforeinstallprompt activo
Evitar
Web App Manifest incompleto
short_name: "Mi Super Aplicación Web 2024" (30ch)
HTTPS activo
https://miapp.com, certificado válido
Service Worker sin fetch handler
SW registrado pero sin self.addEventListener('fetch')
No instalable, 2 criterios fallando
1112

Timing del prompt: visita 2+, acción completada

El momento de presentar la invitación a instalar determina si el usuario la percibe como ayuda o interrupción. El primer load es el peor momento: el usuario no sabe aún si la app vale la pena. Disparar el prompt justo después de una acción de valor completada multiplica la tasa de aceptación hasta 3x. Implementa back-off exponencial para rechazos: 7 días, 30 días, y luego no volver a mostrar.

Google I/O 2019 · web.dev/promote-install · Smashing Magazine 2023
Preferir
Visita 1, solo observar
No se muestra nada. Contador: visits=1
Visita 2, acción de valor
Usuario guarda su primer favorito
Prompt de instalación
Añade la app a tu pantalla de inicio
Accede más rápido y sin conexión a tus favoritos
Evitar
Primer pageload, 4 interrupciones en 5 segundos:
Este sitio usa cookies
Aceptar / Personalizar / Rechazar
Recibir notificaciones push
Permitir / Bloquear
Añadir a pantalla de inicio
Instalar / No
Chat de soporte
Hola, ¿en qué te podemos ayudar?
Lotería de modales, el usuario cierra todo sin leer
1113

Custom install UI: card contextual con beneficios concretos

El diálogo nativo de instalación no explica beneficios ni muestra capturas de pantalla. Tu UI de instalación debe vender el valor antes de activar el diálogo del sistema. Agregar capturas de pantalla en el Web App Manifest activa una pantalla enriquecida en Chrome Android que aumenta la aceptación un 20%. El CTA debe comunicar beneficio, no mecanismo: "Añadir a pantalla de inicio" gana a "Instalar PWA".

web.dev/promote-install · Chrome Developers 2023 · Maximiliano Firt, A Book Apart 2019
Preferir
9:41 AM
Mi App
miapp.com
Funciona sin internet
Acceso directo desde inicio
Recibe notificaciones
Evitar
9:41 AM
Instalar PWA
1114

Post-instalación: agradecer y orientar con tour mínimo

El momento posterior a la instalación es el de mayor receptividad: la app está en la pantalla de inicio y el usuario tiene expectativas activas. Detecta el primer launch en modo standalone y muestra un onboarding de máximo 3 pasos enfocado en capacidades exclusivas de la versión instalada. Los usuarios que completan este tour tienen tasas de retención a 30 días 2.4x más altas que quienes no reciben guía.

web.dev/learn/pwa/installation · Google I/O 2021 · Smashing Magazine 2022
Preferir
¡Ya tienes la app instalada!
Accede directamente desde tu pantalla de inicio, sin abrir el navegador.
Funciona sin conexión
Tus favoritos y último contenido visto están disponibles aunque no tengas red.
Activa notificaciones
Recibe alertas de tus pedidos y novedades al instante.
Omitir
Evitar
Dashboard
Bienvenido de vuelta
El usuario no sabe si la instalación funcionó ni qué cambió
1115

Offline page: informativa, funcional y con reconexión automática

La página offline es el componente más descuidado de las PWA y se deja con el mensaje de error genérico del navegador. Una offline page bien diseñada muestra el logo de la app, lista de secciones disponibles en caché y detecta la reconexión automáticamente vía window.addEventListener('online', reload). Las offline pages con contenido cacheado navegable reducen el bounce en sesiones sin conexión un 40%.

Jeremy Keith, Going Offline 2018 · web.dev/offline-fallback-page · web.dev/learn/pwa/offline-data
Preferir
Mi App
Sin conexión, mostrando contenido guardado
Reconectado. Actualizando...
Disponible sin conexión
Dashboard, Inicio
Última actualización: hace 2h
Mis favoritos (12 items)
Disponible localmente
Artículo: Guía de inicio
Guardado para lectura offline
Evitar
ERR_INTERNET_DISCONNECTED
No hay conexión a internet.
1116

App update prompt: sugiere, no interrumpe; fuerza solo si es crítico

Cuando el service worker detecta una nueva versión, forzar el update sin avisar puede resetear el estado del usuario en medio de un formulario. El balance correcto: un banner no intrusivo donde el usuario elige cuándo actualizar, enviando SKIP_WAITING al hacer clic. Reservar el modal bloqueante exclusivamente para actualizaciones de seguridad críticas con explicación del motivo. Las apps que sugieren en vez de forzar reportan 15% menos tickets de soporte por "la app se cayó sola".

web.dev/service-worker-lifecycle · Chrome Developers 2023 · Maximiliano Firt, Frontend Masters 2023
Preferir
Mi App
Nueva versión disponible Luego
Nombre completo
Juan García Martínez
Email de facturación
juan@empresa.com
Tarjeta de crédito
4242 ****
Evitar
Mi App
Nombre completo
Juan García Martínez
Tarjeta de crédito
4242 ****
skipWaiting() sin avisar, formulario borrado
Actualizando app...
La página se está recargando automáticamente.
1117

iOS: detección de UA + instrucciones manuales para Add to Home Screen

Safari en iOS no implementa beforeinstallprompt: la única forma de instalar una PWA es que el usuario siga pasos manuales desde el menú Compartir. Detecta iOS + no-standalone y muestra un bottom sheet con ilustración del ícono nativo de Share y los tres pasos exactos. Mostrar estas instrucciones sube la tasa de instalación en Safari del 0.3% (sin instrucciones) al 4.1% (con bottom sheet ilustrado).

Apple Developer Docs 2024 · Maximiliano Firt, firt.dev 2024 · web.dev/learn/pwa/installation-prompt · Smashing Magazine 2023
Preferir
9:41 Safari · iOS
miapp.com
Instalar en pantalla de inicio
1
Toca el ícono de compartir
en Safari
2
Desplázate y toca
"Añadir a pantalla de inicio"
3
Confirma el nombre
Toca "Agregar" en la esquina superior derecha
Con estas instrucciones, instalación Safari: 4.1%
Evitar
9:41 Safari · iOS
miapp.com
beforeinstallprompt nunca se dispara en iOS
27% del tráfico móvil global (iOS) jamás ve la opción de instalar. Sin fallback para Safari.
0.3% tasa de instalación en Safari sin instrucciones