> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Preguntas frecuentes Web push

> Guía completa de configuración de Notificaciones Web Push de OneSignal, requisitos, compatibilidad de navegadores, cambios de dominio y solución de problemas comunes para desarrolladores y propietarios de sitios web.

## Requisitos de web push

Tu sitio web debe cumplir con todo lo siguiente para que Web Push funcione:

**APIs de navegador requeridas**

* [Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API)
* [Push API](https://developer.mozilla.org/en-US/docs/Web/API/Push_API)
* [Service Worker API](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API)

**Seguridad y conexión**

* ✅ Solo HTTPS (con certificado SSL válido)
* ✅ [Service worker](./onesignal-service-worker) de OneSignal instalado
* ✅ El navegador debe alcanzar:
  * Servidores push del navegador (ej., FCM, Mozilla)
  * `api.onesignal.com`

**Estado del usuario**

* ✅ Permiso de notificaciones otorgado por el usuario
* ❌ No en modo Incógnito/Privado/Invitado
* ❌ Datos del sitio no borrados (elimina suscripciones)

<Warning>Limpiar datos del navegador (cookies, almacenamiento del sitio) desuscribe automáticamente a los usuarios de las notificaciones push.</Warning>

### Requisitos iOS/iPadOS

Para recibir push en iOS o iPadOS:

* iOS 16.4+ o iPadOS 16.4+
* El sitio debe agregarse a la pantalla de inicio y abrirse desde allí
* Archivo `manifest.json` válido con campos requeridos
* Los usuarios deben aceptar permisos de notificaciones después de abrir como aplicación web

<Card title="Configuración iOS web push" href="./web-push-for-ios" arrow={true}>
  Sigue los pasos específicos de Apple para habilitar web push en iPhones e iPads ejecutando iOS 16.4+.
</Card>

***

## Soporte de navegadores y plataformas

### Compatibilidad de navegadores por sistema operativo

|                                     Navegador                                    | Windows PC |  macOS | Android | iOS (iPhone, iPad) |
| :------------------------------------------------------------------------------: | :--------: | :----: | :-----: | :----------------: |
|             [Chrome 50+](https://en.wikipedia.org/wiki/Google_Chrome)            |   **Sí**   | **Sí** |  **Sí** |      **Sí** ¹      |
|               [Firefox 47+](https://en.wikipedia.org/wiki/Firefox)               |   **Sí**   | **Sí** |  **Sí** |      **Sí** ¹      |
|        [Safari 10+](https://en.wikipedia.org/wiki/Safari_\(web_browser\))        |     No     | **Sí** |    No   |      **Sí** ¹      |
|       [Microsoft Edge 18+](https://en.wikipedia.org/wiki/Microsoft_Edge) ²       |   **Sí**   | **Sí** |  **Sí** |      **Sí** ¹      |
|          [Opera](https://en.wikipedia.org/wiki/Opera_\(web_browser\)) ²          |   **Sí**   | **Sí** |  **Sí** |      **Sí** ¹      |
| [Samsung Internet](https://en.wikipedia.org/wiki/Samsung_Internet_for_Android) ² |     No     |   No   |  **Sí** |      **Sí** ¹      |
|             [Yandex](https://en.wikipedia.org/wiki/Yandex_Browser) ²             |   **Sí**   | **Sí** |  **Sí** |      **Sí** ¹      |
|             [UC Browser](https://en.wikipedia.org/wiki/UC_Browser) ²             |   **Sí**   |   No   |  **Sí** |      **Sí** ¹      |
|      [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer) ³      |     No     |   No   |    No   |         No         |
|              [DuckDuckGo](https://en.wikipedia.org/wiki/DuckDuckGo)              |     No     |   No   |    No   |         No         |

* ¹ iOS requiere instalación de aplicación web (ver requisitos de [configuración iOS web push](./web-push-for-ios) arriba)
* ² Los navegadores basados en Chromium aparecen como "Chrome" en analytics de OneSignal
* ³ Internet Explorer está obsoleto y ya no recibe actualizaciones

<Warning> El Modo incógnito, Modo de navegación privada y Modo de navegador invitado **no** soportan Web Push en ninguna plataforma.</Warning>

***

## Cambios de dominio y migración

### Entender la política de origen del navegador

Los navegadores vinculan las suscripciones de web push a un [origen (dominio/URL del sitio)](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy) específico por razones de seguridad. **No puedes transferir suscriptores entre diferentes orígenes** - esta es una limitación del navegador, no una restricción de OneSignal.

**Diferentes orígenes incluyen:**

* HTTP vs HTTPS (ej., `http://mysite.com` → `https://mysite.com`)
* www vs sin www (ej., `www.mysite.com` vs `mysite.com`)
* Diferentes dominios/subdominios (ej., `domain1.com` vs `domain2.com` o `sub1.domain.com` vs `sub2.domain.com`)

### Opciones de migración

Al cambiar el origen de tu sitio, elige uno de estos enfoques:

<Tabs>
  <Tab title="Nueva App OneSignal (Recomendado)">
    **Mejor para**: La mayoría de cambios de dominio, especialmente cuando quieres una migración limpia

    1. **Crea una nueva App OneSignal** para tu nuevo dominio
    2. **Estrategia de envío dual**: Continúa enviando desde la app antigua, pero establece "Launch URL" a tu nuevo dominio
    3. **Transición gradual**:
       * Enviadores de alta frecuencia (1+ notificaciones/día): transición de 2 semanas
       * Enviadores de frecuencia media (2+ notificaciones/semana): transición de 2 meses
    4. **Notificaciones de migración**: Envía 1-2 mensajes como "¡Nos mudamos! Visita nuestro nuevo sitio para mantenerte actualizado" al inicio y final de la transición

    <Warning> Enviar mensajes idénticos desde ambas apps creará notificaciones duplicadas para usuarios suscritos a ambas.</Warning>
  </Tab>

  <Tab title="Actualizar App y eliminar suscriptores antiguos">
    **Mejor para**: Cuando necesitas mantener el mismo App ID de OneSignal

    1. Usa la API [Update an app](/reference/update-an-app) con:
       * `name`: Nombre de tu app/sitio
       * `chrome_web_origin`: Nueva URL del sitio
       * `chrome_web_default_notification_icon`: URL de imagen del icono

    2. **Elimina suscriptores antiguos** para prevenir duplicados:
       * Crea segmento: "Device Type is Web Push"
       * [Elimina todos los usuarios en el segmento](./delete-users)
  </Tab>
</Tabs>

### Actualización de HTTP a HTTPS

Actualizar de HTTP a HTTPS crea un nuevo origen. Sigue los pasos de migración de dominio arriba ya que los navegadores tratan los sitios HTTPS como completamente separados de sus versiones HTTP.

***

## Múltiples sitios y subdominios

### Limitaciones de una sola app

Debido a la política de mismo origen del navegador, **no puedes** usar una App OneSignal para múltiples orígenes como:

* `https://mysite.com` y `https://www.mysite.com`
* `https://main.com` y `https://shop.main.com`

### Soluciones para múltiples orígenes

<Tabs>
  <Tab title="Estrategia de origen único">
    * Suscribe usuarios solo en tu dominio principal
    * Redirige usuarios de otros orígenes al dominio principal para suscripción
    * Redirige de vuelta a la página original después de la suscripción
  </Tab>

  <Tab title="Apps separadas">
    * Crea Apps OneSignal individuales para cada origen
    * Acepta que los usuarios pueden recibir notificaciones duplicadas si están suscritos a múltiples sitios
  </Tab>
</Tabs>

***

### Escenarios de soporte de idiomas

<Tabs>
  <Tab title="Mismo origen (Recomendado)">
    * URLs como `https://mysite.com/en/` o `https://mysite.com/es/`
    * Usa una sola App OneSignal
    * Sigue la [guía de prompts multi-idioma](./permission-requests#faq)
    * Implementa [Idioma y localización](./multi-language-messaging)
  </Tab>

  <Tab title="Orígenes diferentes">
    * URLs como `https://en.mysite.com` o `https://es.mysite.com`
    * Requiere Apps OneSignal separadas para cada subdominio
  </Tab>
</Tabs>

***

## Configuración avanzada

### Múltiples apps OneSignal en el mismo sitio

* **No recomendado** - causa conflictos de suscripción.
* **Qué sucede**: OneSignal resuscribe automáticamente a los usuarios al App ID visitado más recientemente, causando que los suscriptores reboten entre apps y creando muchos dispositivos desuscritos.
* **Mejor enfoque**: Usa [Tags](./add-user-data-tags) para segmentar usuarios dentro de una sola app.

### Sitios en subcarpetas

Web push opera a nivel de origen. Para sitios en subcarpetas (ej., `https://example.com/blog`), usa el origen principal (`https://example.com`) para la configuración.

### Autoalojamiento de archivos SDK

**Fuertemente desaconsejado**. Las especificaciones de push del navegador cambian frecuentemente, y OneSignal actualiza archivos inmediatamente para mantener compatibilidad. Usa las URLs CDN de OneSignal desde tu configuración Web Push en su lugar.

### Código init personalizado

El código `init` personalizado solo funciona con [Configuración con código personalizado](./web-push-custom-code-setup).

**Usuarios de Configuración típica o Constructor de sitios web**: El código init personalizado será ignorado por el SDK de OneSignal. Si necesitas retrasar la inicialización, usa los [métodos de privacidad](./web-sdk-reference#privacy).

***

## Desarrollo y pruebas

### Pruebas de entorno local

Ver [Configuración SDK Web > Pruebas locales](./web-sdk-setup#local-testing) para configuración completa de pruebas locales.

### Integración de service worker

OneSignal puede trabajar junto con service workers existentes y PWAs. Ver [Integración de múltiples Service Workers](./onesignal-service-worker) para detalles de implementación.

***

## Spam push

Las notificaciones push no están diseñadas para usarse para anuncios, spam de usuarios o campañas engañosas.

Si tu app es detectada enviando notificaciones spam, los navegadores pueden enviar a tus usuarios una notificación de "Advertencia de spam".

Evita enviar notificaciones que:

* No sean relevantes para los usuarios
* Usen palabras como "Anuncios" o enlacen a una página que no está relacionada con la app
* No sean de una fuente confiable (ej. una marca con la que no estás asociado)

<Warning>
  Ver [Fighting Unwanted Notifications with Machine Learning in Chrome](https://blog.chromium.org/2025/05/fighting-unwanted-notifications-with.html) para más información.
</Warning>

Si tu app está siendo marcada como spam, puedes:

* Revisar tu contenido de notificaciones y eliminar cualquier cosa que pueda considerarse spam. Esto incluye:
  * Las palabras "Anuncios" o "Anuncio" en el título o cuerpo
  * Enlaces a páginas que no están relacionadas con la app
  * Enlaces a páginas que no son de una fuente confiable (ej. una marca con la que no estás asociado)
* Continuar enviando y monitorear reportes adicionales.

***

## Solución de problemas

### Tiempo de despliegue de actualizaciones

* **Archivos Service Worker**: caché de 24 horas
* **SDK Web**: caché de 3 días

Planifica en consecuencia al desplegar actualizaciones críticas.

### Problemas de notificaciones Chrome en macOS

Para usuarios de Chrome en macOS, asegúrate de que las notificaciones estén habilitadas para **ambos**:

1. App **Google Chrome** (Menú Apple > Configuración > Notificaciones)
2. App **Google Chrome Helper**

Sin ambos habilitados, las notificaciones no aparecerán en el centro de notificaciones.

### Siguientes pasos después de la configuración

1. **Prueba exhaustivamente** en tus navegadores y dispositivos soportados
2. **Implementa manejo de errores adecuado** para solicitudes de permiso
3. **Configura analytics** para monitorear tasas de suscripción
4. **Planifica tu estrategia de notificaciones** para evitar fatiga del usuario
5. **Considera pruebas A/B** del tiempo y mensajería de tu solicitud de permiso

### Errores comunes de migración

* **Limpiar datos del navegador** desuscribe usuarios automáticamente
* **Notificaciones duplicadas** durante transiciones de app dual
* **iOS requiere instalación de aplicación web** antes de que push funcione
* **Modos Privado/Incógnito** nunca soportan notificaciones push
* **Los service workers deben ser accesibles** en la raíz de tu sitio o subdirectorio configurado

***

## Siguientes pasos

* [Configuración SDK Web](./web-sdk-setup)
* [Referencia SDK Web](./web-sdk-reference)

***
