¿Por qué usar un prompt de permiso push?
Para enviar notificaciones push que aparecen como banners, se muestran en la pantalla de bloqueo y reproducen sonidos, tu app primero debe solicitar permiso al usuario. En iOS, Android, Huawei, Amazon y Web, esto implica mostrar un prompt de permiso a nivel del sistema.
requestPermission(), pero sin el contexto adecuado, es más probable que los usuarios rechacen — y en iOS, un prompt rechazado no puede mostrarse nuevamente.
El enfoque recomendado es un “soft prompt” — un mensaje in-app personalizado que presenta la solicitud antes del prompt del sistema. Si el usuario acepta, aparece el prompt del sistema. Si rechaza, nada sucede y puedes preguntar de nuevo más tarde.

Configurar un prompt de permiso push in-app
Eliminar cualquier prompt de permiso automático
Antes de comenzar, asegúrate de que tu app no esté ya activando el prompt push nativo automáticamente:
- Elimina los métodos
requestPermission()ooptIn()si los estás llamando al iniciar la app. - Elimina las llamadas nativas de iOS a
requestAuthorizationWithOptionsy cualquier método que genere tokens push. - Elimina las llamadas de Android a
requestPermissionsy cualquier método que genere tokens push.
Crear o editar el mensaje in-app
Ve a Messages > In-App, luego:
Establece la audiencia como Show to all users. OneSignal filtra automáticamente este mensaje para mostrar solo a los usuarios que no se han suscrito a push, según la acción de clic Push Permission Prompt.
- Edita la plantilla predeterminada de Push Permission Prompt, o
- Haz clic en New Message para crear el tuyo.


Personalizar el diseño del mensaje
Personaliza la apariencia, sensación y redacción para que se ajuste a tu app. Informa a los usuarios qué tipo de notificaciones recibirán y por qué son valiosas.Consulta Diseñar mensajes in-app con arrastrar y soltar o Diseñar mensajes in-app con HTML para más detalles.

Agregar la acción de clic de prompt de permiso push
Agrega una acción de clic Push Permission Prompt a cualquier botón o imagen en tu mensaje. Cuando se toque, se muestra el prompt del sistema.

Si un usuario ya ha denegado el permiso, el botón lo dirigirá a la configuración de notificaciones de tu app.


Los mensajes in-app con una acción Push Permission Prompt no se muestran a usuarios que ya han permitido notificaciones.
Elegir un activador
La audiencia controla quién es elegible para ver el mensaje. Los activadores controlan cuándo se muestra.
Puedes activar el mensaje:

- Al abrir la app
- Después de una cantidad establecida de tiempo de sesión
- En un evento de usuario específico
- Programáticamente, usando los métodos SDK de mensaje in-app para control total sobre el tiempo y el contexto

Programación y frecuencia
Controla con qué frecuencia aparece el mensaje:
- Solo una vez — Baja probabilidad de convertir usuarios que no estaban listos la primera vez.
- Cada vez que se cumplan las condiciones — Demasiado agresivo y puede molestar a los usuarios.
- Múltiples veces (recomendado) — Establece un máximo alto (ej. 9999) con un intervalo entre vistas (ej. 2 semanas). Esto vuelve a solicitar a los usuarios no suscritos periódicamente sin ser intrusivo. Ajusta el intervalo según tu caso de uso.

Actualiza tu mensaje y ponlo en vivo. Monitorea tus estadísticas y ajusta el intervalo entre visualizaciones según sea necesario.
Mostrar programáticamente el prompt de permiso
Puedes activar el prompt de permiso push manualmente usando los métodos SDKrequestPermission() o optIn(). Esto es útil para flujos personalizados como:
- Un centro de preferencias
- Una pantalla de perfil de usuario
- Eventos específicos dentro de la app
Rastrear permisos push y resultados de prompts
Cuando uses mensajes in-app para solicitar push, puedes rastrear acciones de clic con el listener de clic de mensaje in-app. Si el mensaje in-app se muestra pero el usuario no hace clic en el botón, usa los eventos del ciclo de vida del mensaje in-app para rastrear impresiones y cierres. Para rastrear el resultado del prompt de permiso a nivel del sistema en sí, usa el listener de permiso push.Puedes enviar estos eventos SDK a tu backend o herramienta de analíticas de tu elección.
FAQ
¿Qué sucede si un usuario rechaza el prompt de permiso push?
En iOS, rechazar el prompt del sistema deshabilita permanentemente las notificaciones push de tu app — el prompt no puede mostrarse nuevamente. En Android, el usuario tiene una oportunidad más (dos en total). Después de usar todos los intentos, el usuario debe volver a habilitar las notificaciones manualmente en Configuración > Notificaciones en su dispositivo. El métodorequestPermission(fallbackToSettings: true) del SDK de OneSignal puede redirigir a los usuarios a su configuración de notificaciones si el permiso fue denegado anteriormente.
¿Puedo personalizar el prompt de permiso nativo del sistema?
No. Los diálogos de permiso nativos de iOS y Android son controlados por el sistema operativo y no pueden personalizarse. Solo puedes controlar el soft prompt (el mensaje in-app que se muestra antes del prompt del sistema). Usa el soft prompt para explicar el valor de tus notificaciones, establecer expectativas y aumentar la probabilidad de un “Permitir” en el prompt del sistema.¿Puedo seguir solicitando a usuarios con notificaciones provisionales?
Sí. Si usas notificaciones push provisionales de iOS, aún puedes mostrar un soft prompt para convertir a esos usuarios en suscriptores push completos. Cronometra el prompt estratégicamente — después de que el usuario haya visto el valor de tus notificaciones provisionales.¿Cómo vuelvo a solicitar a usuarios que anteriormente rechazaron push?
No puedes mostrar el prompt de permiso del sistema nuevamente una vez que el usuario ha rechazado en iOS (o dos veces en Android). En su lugar, usa el método SDKrequestPermission(fallbackToSettings: true), que abre la página de configuración de notificaciones de la app para que el usuario pueda habilitar las notificaciones manualmente. Combínalo con un mensaje in-app que explique por qué las notificaciones son valiosas.
¿Cuándo comenzó Android a requerir prompts de permiso?
Android 13 (nivel de API 33) introdujo el permiso de notificación en tiempo de ejecución, que requiere el consentimiento explícito del usuario para las notificaciones push.- Lanzado: Agosto de 2022 (dispositivos Pixel)
- Requerido para SDK objetivo: A partir del 31 de agosto de 2023, todas las apps nuevas y actualizaciones en Google Play deben apuntar al nivel de API 33 o superior.
- Fuente: Guía de desarrollador de Google sobre permisos de notificaciones
Notificaciones push provisionales de iOS
Envía notificaciones al Centro de notificaciones sin un prompt de permiso previo en iOS 12+.