init y la ruta del service worker en código, usa Código personalizado.
Configuración de WordPress
Configuración de Shopify
Configuración con código personalizado
OneSignal.init().Requisitos
- Sitio web HTTPS: Web push no funciona en HTTP o en modos incógnito/privado.
- Acceso al servidor: Necesitas subir un archivo service worker a tu sitio.
- Origen único: Web push sigue la política de mismo origen. Si tienes múltiples orígenes (dominios/subdominios), necesitas múltiples apps OneSignal (una por origen). Para cumplir con esta limitación del navegador, puedes:
- Redirigir tráfico a un único origen para suscripciones.
- Crear múltiples apps OneSignal, una por origen.
Configurar tu app OneSignal y plataforma
En el dashboard de OneSignal:- Ve a Settings > Push & In-App > Web.

Activa la plataforma web en tu configuración de OneSignal
Sitio típico (recomendado)
WordPress
Código personalizado
Configuración del sitio
Agrega los detalles del sitio:- Nombre del sitio: El nombre de tu sitio y título de notificación predeterminado.
- URL del sitio: La URL de tu sitio. Ver URL del sitio para más detalles.
- Resuscripción automática: Habilita esto para resuscribir automáticamente a usuarios que limpian sus datos del navegador cuando regresan a tu sitio (sin nuevo prompt de permiso requerido).
- URL de icono predeterminado: Sube un PNG, JPG o GIF no animado cuadrado de
256×256que aparece en notificaciones y prompts. Si no se establece, se usa un icono de campana como predeterminado. Ver Iconos de notificación.

Configuración web en el dashboard de OneSignal
URL del sitio
Ingresa el origen exacto de tu sitio, ej.,https://yourdomain.com. Evita usar www. si tu sitio no está configurado de esa manera.
Si tienes múltiples orígenes, ver Requisitos.
Pruebas locales
El SDK web puede probarse en entornos localhost. Si estás probando en localhost, usa una app OneSignal separada de tu app de producción.Configuración de Localhost
Configuración de Localhost
http://localhosthttps://localhost:3000http://127.0.0.1https://127.0.0.1:5000
http://localhost y http://127.0.0.1 como orígenes seguros, por lo que el SDK puede inicializarse sobre HTTP solo en esos hosts. Otros nombres de host (por ejemplo http://mysite.local) no se tratan como seguros y no pueden usarse para pruebas de web push.
Pruebas locales en el dashboard de OneSignal
allowLocalhostAsSecureOrigin: true a tus opciones init de OneSignal al inicializar en localhost.Si estás probando localhost en HTTPS con un certificado autofirmado, puede que tengas que pedir a Chrome que ignore certificados inválidos para pruebas con: --allow-insecure-localhost. Firefox y Safari proporcionan mecanismos integrados para agregar excepciones para certificados de seguridad.Prompt de permisos
La configuración de sitio típico te permite a ti o a los miembros de tu equipo agregar, eliminar y actualizar prompts de permiso a través del dashboard de OneSignal en cualquier momento.Prompts de permiso web
Notificación de bienvenida (opcional)
También puedes establecer una notificación de bienvenida para ser enviada a los usuarios cuando se suscriban a notificaciones push. Sitio típico y WordPress la configuran en el dashboard. Código personalizado establecewelcomeNotification en OneSignal.init().
Para configurar esto en el dashboard, ve a Settings > Push & In-App > Web:

Configuración de la notificación de bienvenida
welcomeNotification en la referencia del SDK Web.
Configuraciones avanzadas
Las siguientes características son configurables en el dashboard de OneSignal.Webhooks
El SDK web puede hacerPOST de ciertos eventos web push a una URL de tu elección.
Los Webhooks Web Push son una implementación separada de los Webhooks de eventos y no pueden usarse de manera intercambiable.
Webhooks web push
Service workers
El SDK Web buscaOneSignalSDKWorker.js en la raíz de tu sitio (https://yourdomain.com/OneSignalSDKWorker.js) a menos que le indiques una ubicación diferente.
Cómo le indicas al SDK una ubicación fuera de la raíz depende del tipo de integración que seleccionaste.
Sitio típico: Establece la ruta en el dashboard. No establezcas serviceWorkerPath en código.
Si alojas el archivo en la raíz, deja la configuración de ruta predeterminada. Si lo alojas en un subdirectorio, debes establecer la ruta a continuación o el SDK seguirá solicitando /OneSignalSDKWorker.js y el registro fallará.
- Ve a Settings > Push & In-App > Web.
- Abre Advanced Push Settings.
- Habilita Customize service worker paths and filenames.
- Configura los campos para que coincidan con la URL pública del archivo:

Configuración de service worker
https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js.
Código personalizado: No uses los campos de ruta del dashboard. Pasa serviceWorkerPath y serviceWorkerParam en OneSignal.init(). Consulta Configuración con código personalizado para las opciones de init, y Service worker de OneSignal para combinar workers y la migración.
Comportamiento de clic
El comportamiento de clic solo cambia lo que sucede cuando el usuario ya tiene tu sitio abierto en una pestaña del mismo origen. Si no hay una pestaña coincidente abierta, el navegador abre una nueva pestaña con la URL de la notificación. Esta configuración no cambia eso. El comportamiento de clic funciona en Chrome, Edge, Firefox y Safari. Si no se establece una URL de destino, la URL de la notificación es tu página de inicio. Establece una URL de destino para enviar a los usuarios a una página específica, agregar seguimiento UTM o añadir?_osp=do_not_open para descartar sin abrir una página.
Si ya hay una pestaña del mismo origen abierta, el comportamiento depende de la configuración que elijas:
URLs, enlaces y enlaces profundos
?_osp=do_not_open.Botones de acción
Listeners de eventos push del SDK Web
Persistencia
La persistencia mantiene la notificación en pantalla hasta que el usuario interactúa con ella. Funciona solo en Chrome y Edge en escritorio. Firefox, Safari y todos los navegadores móviles la ignoran. Una notificación persistente puede desplazar texto, imágenes y botones de acción, por lo que puedes desactivarla si esto es un problema para tus usuarios. Cuando el valor no está establecido, el SDK actualmente trata la persistencia como activada.- Sitio típico: Usa el interruptor de Persistencia en Settings > Push & In-App > Web.
- Código personalizado: Establece
persistNotificationenOneSignal.init(). El interruptor del dashboard no aplica. VerpersistNotification.
Certificado .p12 de Safari Web Push (opcional, heredado)
Deja esto desactivado a menos que ya tengas tu propio certificado.p12 de Safari Web Push y quieras dar soporte a usuarios de Safari heredado.
Safari moderno (macOS 13+ e iOS 16.4+) usa Web Push basado en estándares con VAPID (Voluntary Application Server Identification). OneSignal gestiona VAPID automáticamente. No subes un certificado para esos navegadores.
Apple no ofrece un token o clave .p8 para web push en Safari. Las apps nativas de iOS y macOS usan un .p8 para autenticarse con APNs. Safari web push no. La única credencial de Apple que aplica a Safari es un certificado .p12 de Safari Web Push, y solo para la ruta heredada de Website Push ID.
Esa ruta heredada todavía aplica a:
- Safari en macOS 12 y anteriores (sin VAPID)
- Suscriptores existentes que ya otorgaron permiso a través de la API antigua de Safari (Safari no migra esas suscripciones a VAPID)
.p12 y su contraseña. Tanto Sitio típico como Código personalizado configuran esto en el dashboard. No lo estableces en OneSignal.init().

Certificado .p12 de Safari Web Push (opcional, heredado)
Subir archivo service worker
Agrega el archivo service workerOneSignalSDKWorker.js a tu sitio.
Descárgalo desde el dashboard de OneSignal, o crea un archivo llamado OneSignalSDKWorker.js con esta única línea:

Paso de subir archivo service worker
OneSignal.init() en su lugar. Consulta Configuración con código personalizado.
Raíz (predeterminado): Sube el archivo para que esté disponible en https://yourdomain.com/OneSignalSDKWorker.js. Deja la configuración de ruta del service worker sin cambios. El SDK solicita esta URL automáticamente.
Subdirectorio: Si tu sitio ya tiene un service worker (por ejemplo una PWA), coloca el archivo de OneSignal en un subdirectorio como /push/onesignal/ para que no entre en conflicto con el worker que posee /. Luego indícale al SDK dónde buscar: sigue Service workers y habilita Customize service worker paths and filenames. Establece Path to service worker files y Service worker registration scope en ese subdirectorio (por ejemplo /push/onesignal/). El archivo debe ser públicamente accesible en https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js.
Una vez que el archivo esté en tu servidor, verifica lo siguiente para asegurarte de que funciona:
Verifica la ubicación
- Predeterminado:
https://yourdomain.com/OneSignalSDKWorker.js - Ejemplo de subdirectorio:
https://yourdomain.com/push/onesignal/OneSignalSDKWorker.js
Debe ser públicamente accesible en tu origen
OneSignalSDKWorker.js debe ser públicamente accesible y disponible en tu origen. No puede alojarse a través de un CDN o colocarse en un origen diferente con redirección.Cuando visites la URL del archivo, deberías ver el código.Debe servirse con content-type: application/javascript
Service worker de OneSignal
Agregar código a tu sitio
Para inicializar OneSignal en tu sitio con el SDK de JavaScript, copia el código proporcionado en las etiquetas<head> de tu sitio web. El dashboard de OneSignal proporciona este mismo fragmento de código prellenado con tu app ID.
Si cargas scripts con Google Tag Manager, detente aquí y sigue la configuración de Google Tag Manager. Esa guía usa este mismo trabajo de dashboard y service worker, y luego inicializa el SDK en GTM en lugar de pegar el fragmento de abajo.
Soporte iOS web push
Apple comenzó a soportar notificaciones web push en iPhones e iPads con iOS 16.4+. A diferencia de los dispositivos Android, donde web push funciona en un navegador compatible sin configuración adicional, Apple requiere un archivomanifest.json y una acción del usuario para agregar tu sitio a su pantalla de inicio.
Configuración iOS web push
manifest.json requerido y guía a los usuarios para agregar tu sitio a su pantalla de inicio.Probar la integración del SDK de OneSignal
Esta guía le ayuda a verificar que su integración del SDK de OneSignal funciona correctamente mediante la prueba de notificaciones push y el registro de suscripciones.Verificar suscripciones de web push
Inicie su sitio en un dispositivo de prueba.
- Use Chrome, Firefox, Edge o Safari durante las pruebas.
- No use el modo incógnito o navegación privada. Los usuarios no pueden suscribirse a notificaciones push en estos modos.
- Los avisos deben aparecer según la configuración de sus solicitudes de permiso.
- Haga clic en Permitir en el aviso nativo para suscribirse a notificaciones push.

Aviso de permiso nativo de web push
Revise su panel de OneSignal
- Vaya a Audiencia > Suscripciones.
- Debería ver una nueva entrada con el estado Suscrito.

Panel mostrando suscripción con estado 'Suscrito'
Configurar suscripciones de prueba
Las suscripciones de prueba son útiles para probar una notificación push antes de enviar un mensaje.Agregar a Suscripciones de prueba.

Agregar un dispositivo a Suscripciones de prueba
Nombre su suscripción.
Cree un segmento de usuarios de prueba.
Nombre el segmento.
Test Users (el nombre es importante porque se usará más adelante).Agregue el filtro Test Users y haga clic en Crear segmento.

Crear un segmento 'Test Users' con el filtro Test Users
Enviar push de prueba mediante API
Obtenga su clave API de aplicación y ID de aplicación.
Actualice el código proporcionado.
YOUR_APP_API_KEY y YOUR_APP_ID en el código a continuación con sus claves reales. Este código usa el segmento Test Users que creamos anteriormente.Ejecute el código.
Verifique imágenes y entrega confirmada.

Notificación push expandida con imagen en Chrome macOS
Verifique la entrega confirmada.
Informes de mensajes de notificaciones push
support@onesignal.com con lo siguiente:
- La solicitud y respuesta de la API (copie y pegue en un archivo
.txt) - Su ID de suscripción
- La URL de su sitio web con el código de OneSignal
Identificación de usuarios
La sección anterior cubrió la creación de suscripciones de web push. Esta sección expande la identificación de usuarios en todas sus suscripciones (incluyendo push, email y SMS) usando el SDK de OneSignal. Cubre IDs externos, etiquetas, suscripciones multicanal, privacidad y seguimiento de eventos para ayudarle a unificar e involucrar usuarios en todas las plataformas.Asignar ID externo
Use un ID externo para identificar usuarios de manera consistente en dispositivos, direcciones de correo electrónico y números de teléfono usando el identificador de usuario de su backend. Esto asegura que sus mensajes permanezcan unificados en todos los canales y sistemas de terceros (especialmente importante para integraciones). Establezca el ID externo con el métodologin del SDK cada vez que un usuario sea identificado por su aplicación.
Agregar etiquetas de datos
Las etiquetas son pares clave-valor de datos de cadena que puede usar para almacenar propiedades de usuario (comousername, role o preferencias) y eventos (como purchase_date, game_level o interacciones de usuario). Las etiquetas alimentan la personalización de mensajes y segmentación avanzadas, permitiendo casos de uso más avanzados.
Establezca etiquetas con los métodos addTag y addTags del SDK a medida que ocurren eventos en su aplicación.
En este ejemplo, el usuario alcanzó el nivel 6 identificable por la etiqueta llamada current_level establecida en un valor de 6.

Un perfil de usuario en OneSignal con una etiqueta llamada "current_level" establecida en "6"

Editor de segmentos mostrando un segmento dirigido a usuarios con un valor de current_level mayor que 4 y menor que 10

Captura de pantalla mostrando una notificación push dirigida al segmento Nivel 5-10 con un mensaje personalizado
Agregar suscripciones de email y/o SMS
El SDK de OneSignal crea suscripciones de web push automáticamente cuando los usuarios aceptan. También puede llegar a los usuarios a través de canales de email y SMS creando las suscripciones correspondientes.- Use el método
addEmailpara crear suscripciones de email. - Use el método
addSmspara crear suscripciones de SMS.

Un perfil de usuario con suscripciones de push, email y SMS unificadas por ID externo
- Obtenga consentimiento explícito antes de agregar suscripciones de email o SMS.
- Explique los beneficios de cada canal de comunicación a los usuarios.
- Proporcione preferencias de canal para que los usuarios puedan seleccionar qué canales prefieren.
Privacidad y consentimiento del usuario
Para controlar cuándo OneSignal recopila datos del usuario, use los métodos de control de consentimiento del SDK:setConsentRequired(true): Previene la recopilación de datos hasta que se otorgue el consentimiento.setConsentGiven(true): Habilita la recopilación de datos una vez que se otorgue el consentimiento.
Datos recopilados por el SDK
Manejo de datos personales
Escuchar eventos de push, usuario e in-app
Use los listeners del SDK para reaccionar a acciones de usuario y cambios de estado. El SDK proporciona varios listeners de eventos a los que puede conectarse. Consulte nuestra guía de referencia del SDK para más detalles.Eventos de notificación push
- Listener de evento de clic: Detecte cuándo se toca una notificación.
- Listener de ciclo de vida en primer plano: Controle cómo se comportan las notificaciones en primer plano.
Cambios de estado del usuario
- Listener de evento de cambio de estado del usuario: Detecte cuándo se establece el ID externo.
- Observador de permisos: Rastree la interacción específica del usuario con el aviso de permiso push nativo.
- Observador de cambio de suscripción push: Rastree cuándo cambia el estado de la suscripción push.
Configuración y capacidades avanzadas
Explore más capacidades para mejorar su integración:Migrar a OneSignal
Integraciones
Botones de acción
Mensajería multiidioma
Verificación de identidad
Resultados personalizados
Configuración y referencia del Web SDK
Configuración de web push
Referencia del Web SDK
Preguntas frecuentes
¿Funciona web push en sitios HTTP?
No. Web push requiere HTTPS. Los navegadores aplican esto como un requisito de seguridad. La única excepción eslocalhost y 127.0.0.1, que los navegadores tratan como orígenes seguros para fines de desarrollo.
¿Por qué necesito un archivo service worker?
El service worker se ejecuta en segundo plano y gestiona las notificaciones push entrantes incluso cuando el usuario no tiene tu sitio abierto. Sin él, el navegador no puede mostrar notificaciones. El archivoOneSignalSDKWorker.js debe ser públicamente accesible en tu origen.
¿Dónde busca el SDK Web el service worker?
El SDK Web buscaOneSignalSDKWorker.js en la raíz de tu sitio (https://yourdomain.com/OneSignalSDKWorker.js) a menos que establezcas una ruta personalizada. Sitio típico establece la ruta en el dashboard: habilita Customize service worker paths and filenames en Settings > Push & In-App > Web > Advanced Push Settings. Código personalizado no usa esos campos del dashboard. Pasa serviceWorkerPath y serviceWorkerParam en OneSignal.init(). Consulta Configuración con código personalizado.
¿Debo usar esta guía si mi sitio está en WordPress o Shopify?
No. Usa la configuración de WordPress o la configuración de Shopify. Esas integraciones agregan el SDK y el service worker por ti.¿Cuál es la diferencia entre Sitio típico y Código personalizado?
Sitio típico es la ruta recomendada en esta página: configuras prompts, la mayoría de las opciones y la ruta del service worker en el dashboard de OneSignal, y luego agregas el fragmento de JavaScript. Código personalizado es para control programático. Estableces prompts, opciones deinit y la ruta del service worker en código con serviceWorkerPath y serviceWorkerParam. Consulta Configuración con código personalizado.
¿Necesito subir un certificado de Safari?
No, no para Safari en macOS 13+ o iOS 16.4+. OneSignal usa VAPID automáticamente. Sube un .p12 de Safari Web Push solo para la ruta heredada de Website Push ID (macOS 12 y anteriores, más los suscriptores heredados existentes). Ver Certificado .p12 de Safari Web Push.¿Puedo usar una clave .p8 para web push en Safari?
No. Apple no ofrece un token o clave .p8 para web push en Safari. Usa un .p8 solo para apps nativas de iOS o macOS. Ver Conexión a APNs basada en token p8 de iOS. La única credencial de Safari es un .p12 de Safari Web Push, y solo para la ruta heredada.¿Puedo usar web push en iOS (iPhone/iPad)?
Sí, a partir de iOS 16.4+. Sin embargo, Apple requiere un archivomanifest.json y el usuario debe agregar tu sitio a su pantalla de inicio primero. Consulta Configuración iOS web push para conocer todos los requisitos. iOS web push usa VAPID. No subes un .p12 de Safari ni un .p8 para esto.
¿Por qué no se muestran mis notificaciones?
Las causas comunes incluyen un archivo service worker colocado incorrectamente, una URL del sitio que no coincide en el dashboard, o el usuario tiene las notificaciones bloqueadas en la configuración de su navegador. Consulta Web push: Notificaciones no mostradas para obtener una lista completa de solución de problemas.support@onesignal.comPor favor incluya:- Detalles del problema que está experimentando y pasos para reproducir si están disponibles
- Su ID de aplicación de OneSignal
- El ID externo o ID de suscripción si corresponde
- La URL del mensaje que probó en el panel de OneSignal si corresponde
- Cualquier registro o mensaje de error relevante