> ## 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.

# Limitación de push

> La limitación de push controla la velocidad a la que OneSignal entrega notificaciones push, ayudándote a gestionar la carga del servidor y evitar problemas de rendimiento durante envíos de alto volumen.

## Descripción general

La limitación de push controla la velocidad a la que OneSignal entrega notificaciones push. Usa la limitación para distribuir la entrega a lo largo del tiempo — previniendo la sobrecarga del servidor, evitando la degradación del rendimiento durante envíos masivos y manteniendo una experiencia de usuario consistente en todos los dispositivos.

***

## Por qué los envíos push afectan a tus servidores

Enviar una notificación push a una audiencia grande puede generar un pico repentino de tráfico en tus propios servidores — incluso si tu tasa de clics es baja. Esto ocurre porque la entrega en sí misma (no solo los clics) activa múltiples tipos de solicitudes de vuelta a tu infraestructura. Entender estas fuentes te ayuda a elegir la estrategia de mitigación adecuada.

### Imágenes y medios auto-hospedados

Cuando una notificación push incluye una imagen (como `big_picture` o `chrome_web_image`), cada dispositivo que recibe la notificación descarga esa imagen inmediatamente al recibirla. Si la imagen está hospedada en tus propios servidores en lugar de una CDN, esto crea una solicitud HTTP por notificación entregada — potencialmente decenas de miles de solicitudes en segundos.

**Recomendaciones:**

* Hospeda las imágenes de notificaciones en una CDN (p. ej., CloudFront, Cloudflare, Fastly) en lugar de tus servidores de aplicaciones.
* Usa la [limitación de push](#configuration-options) para distribuir la entrega en el tiempo si debes auto-hospedar medios.

### Aperturas simultáneas de la aplicación

La entrega push impulsa a muchos usuarios a abrir tu aplicación al mismo tiempo. Cada apertura de la app normalmente genera múltiples solicitudes a tu backend: inicialización de sesión, obtención de contenido, llamadas a API y eventos de análisis. Incluso una tasa de apertura moderada puede traducirse en un pico de tráfico significativo si se entregan miles de notificaciones simultáneamente.

**Recomendaciones:**

* Usa la [limitación de push](#configuration-options) para escalonar la entrega y distribuir las aperturas de la app en una ventana de tiempo más amplia.
* Asegúrate de que tu backend pueda manejar el tráfico de ráfagas de envíos de alto volumen, o usa una infraestructura con autoescalado.

### Event Streams

Si tienes [Event Streams](./event-streams) configurado con un destino webhook, OneSignal envía una solicitud HTTP a tu endpoint para cada evento (p. ej., `message.sent`, `message.delivered`, `message.clicked`) en tiempo real. Durante un envío push masivo, esto puede producir una ráfaga de solicitudes webhook proporcional al tamaño de tu audiencia.

<Note>
  OneSignal no limita la tasa del tráfico webhook saliente de Event Stream. Tu endpoint debe ser capaz de manejar el volumen de eventos generado por tus envíos de mensajes.
</Note>

**Recomendaciones:**

* Asegúrate de que tu endpoint webhook pueda manejar el rendimiento proporcional al tamaño de tu audiencia.
* Usa una cola o búfer intermediario (p. ej., Amazon Kinesis, Google Pub/Sub) en lugar de un webhook directo para absorber las ráfagas. Event Streams admite estos como destinos de forma nativa.
* Usa la [limitación de push](#configuration-options) para reducir la tasa máxima de eventos que llegan a tu endpoint.

### Journey webhooks

Los [Journey webhooks](./journeys-webhook) envían solicitudes HTTP a tus servidores cuando los usuarios alcanzan pasos específicos en un Journey. Aunque los Journeys naturalmente regulan la entrega según el comportamiento del usuario, los Journeys de alto tráfico aún pueden generar un volumen webhook significativo. Los endpoints lentos o sobrecargados pueden activar la deshabilitación automática del webhook.

**Recomendaciones:**

* Diseña tu endpoint webhook para responder rápidamente (devolver `200 OK`) y diferir el procesamiento pesado a un trabajo en segundo plano.
* Monitorea las respuestas `429` de tu endpoint, que pueden activar que OneSignal deshabilite el webhook.
* Revisa la [guía de rendimiento](./journeys-webhook#performance-guidance) en la documentación de Journey webhooks.

### Obtención de Service Worker (web push)

Para web push, los navegadores obtienen periódicamente de nuevo el archivo [OneSignal Service Worker](./onesignal-service-worker) de tu servidor (normalmente cuando expira la caché, hasta cada 24 horas). Cuando se entrega una notificación push, el navegador puede verificar si hay un archivo Service Worker actualizado — generando una solicitud por suscripción web push de vuelta a tu servidor de hospedaje.

**Recomendaciones:**

* Sirve el archivo `OneSignalSDKWorker.js` desde una CDN o asegúrate de que tu servidor de hospedaje pueda manejar el volumen de solicitudes.
* Establece cabeceras de caché apropiadas para reducir la frecuencia de re-obtención.
* Consulta la documentación de [OneSignal Service Worker](./onesignal-service-worker) para más detalles.

### Elegir el enfoque adecuado

| Fuente de tráfico               | ¿Afectado por la limitación?                               | Mitigación alternativa                                                     |
| ------------------------------- | ---------------------------------------------------------- | -------------------------------------------------------------------------- |
| Imágenes auto-hospedadas        | Sí — entrega más lenta = menos descargas simultáneas       | Hospedar en una CDN                                                        |
| Aperturas simultáneas de la app | Sí — entrega escalonada distribuye las sesiones de usuario | Infraestructura con autoescalado                                           |
| Event Streams (webhooks)        | Sí — entrega más lenta = menor tasa de eventos             | Usar un destino basado en colas (Kinesis, Pub/Sub, etc.)                   |
| Journey webhooks                | No — los Journeys no admiten limitación                    | Optimizar el rendimiento del endpoint; usar procesamiento en segundo plano |
| Obtención de Service Worker     | Sí — entrega más lenta = menos obtenciones simultáneas     | Hospedaje en CDN; cabeceras de caché                                       |

***

## Opciones de configuración

La limitación debe estar habilitada a nivel de configuración global para estar disponible para uso.

### Configuración de limitación global

Habilita la limitación para todos los mensajes push bajo **Settings > Push & In-App > Throttling**. Una vez habilitado, esta configuración se aplica a todas las notificaciones push por defecto, pero puede ser sobrescrita para mensajes individuales.

<Frame caption="Configuración de limitación de push en el panel de control de OneSignal">
  <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8790df687f1783338ce3b61fe6be6c68dd878ff6998a4f5e2f2408adc8d57c68-Screenshot_2025-04-11_at_2.44.04_PM.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=3f7368b4be0df94629d9664ac75e7503" alt="Push throttling settings in the OneSignal dashboard under Settings > Push & In-App > Throttling" data-og-width="2368" width="2368" data-og-height="1316" height="1316" data-path="images/docs/8790df687f1783338ce3b61fe6be6c68dd878ff6998a4f5e2f2408adc8d57c68-Screenshot_2025-04-11_at_2.44.04_PM.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8790df687f1783338ce3b61fe6be6c68dd878ff6998a4f5e2f2408adc8d57c68-Screenshot_2025-04-11_at_2.44.04_PM.png?w=280&fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=86a9da3af3a378e2700c718aa76f8794 280w, https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8790df687f1783338ce3b61fe6be6c68dd878ff6998a4f5e2f2408adc8d57c68-Screenshot_2025-04-11_at_2.44.04_PM.png?w=560&fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=02e7786ad24be62a67b9f2ef0d58e896 560w, https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8790df687f1783338ce3b61fe6be6c68dd878ff6998a4f5e2f2408adc8d57c68-Screenshot_2025-04-11_at_2.44.04_PM.png?w=840&fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=6d159c733410fa30caff69b5dcd7259f 840w, https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8790df687f1783338ce3b61fe6be6c68dd878ff6998a4f5e2f2408adc8d57c68-Screenshot_2025-04-11_at_2.44.04_PM.png?w=1100&fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=f9315c10e7eb039fefbec9593a3fa0de 1100w, https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8790df687f1783338ce3b61fe6be6c68dd878ff6998a4f5e2f2408adc8d57c68-Screenshot_2025-04-11_at_2.44.04_PM.png?w=1650&fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=80d5485affcb0c783c7392fba252e18d 1650w, https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8790df687f1783338ce3b61fe6be6c68dd878ff6998a4f5e2f2408adc8d57c68-Screenshot_2025-04-11_at_2.44.04_PM.png?w=2500&fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=33a7e97793e0ff1d424a41d63c4d6416 2500w" />
</Frame>

### Sobrescritura de limitación por mensaje

Puedes sobrescribir la configuración de limitación global en mensajes individuales.

1. Durante la creación de notificación, marca la casilla "Override throttling setting"
2. Establece tu tasa de mensajes por minuto deseada
3. Para deshabilitar la limitación para un mensaje específico, ingresa "0" en el campo de mensajes por minuto

Para notificaciones enviadas por API, usa la propiedad [`throttle_rate_per_minute`](/reference/create-message).

***

## Cómo funciona la limitación

### Proceso de conversión de tasa

OneSignal convierte tu configuración por minuto a una tasa por segundo para optimizar la entrega:

1. El sistema divide tu tasa de limitación por 60 (segundos por minuto)
2. El resultado se redondea hacia abajo al número entero más cercano (OneSignal no puede enviar mensajes parciales)
3. Esta tasa por segundo se aplica luego a lo largo del proceso de entrega

**Ejemplo:** Estableces una tasa de limitación de 1.019 mensajes por minuto.

1. OneSignal divide por 60: 1.019 ÷ 60 = 16,98 mensajes por segundo
2. Redondea hacia abajo: 16 mensajes por segundo
3. Tasa de entrega real: 16 × 60 = **960 mensajes por minuto** (59 menos que la tasa establecida)

Esta conversión asegura un procesamiento más eficiente eliminando retrasos entre lotes.

***

## Limitaciones y consideraciones

### Ventana de entrega de 24 horas

Todas las notificaciones limitadas deben completar la entrega dentro de 24 horas de ser enviadas. Si tu tasa de limitación causaría que la entrega exceda las 24 horas, OneSignal ajusta automáticamente la tasa para asegurar la finalización dentro de este plazo.

**Ejemplo:** Estableces una tasa de limitación de 10 mensajes por minuto para 20.000 usuarios — la entrega tomaría aproximadamente 33 horas. OneSignal ajusta automáticamente la tasa a alrededor de 14 mensajes por minuto para completar la entrega dentro de 24 horas.

***

## Compatibilidad y disponibilidad

La limitación solo está disponible para notificaciones push enviadas mediante la API [Create notification](/reference/create-message) o la interfaz del panel **Messages > New Push**. No es compatible con Journeys ni con Automated Messages (consulta la [tabla de resumen](#choosing-the-right-approach) anterior).

### Zona horaria y Entrega Inteligente

La limitación tiene precedencia sobre la Zona horaria y la Entrega Inteligente. Cuando la limitación está habilitada, OneSignal ignora estas funciones para esa notificación.

**Para usar Zona horaria o Entrega Inteligente:**

* Deshabilita la limitación para esa notificación específica bajo Delivery Schedule
* Establece "Override throttling setting" en "0"
* Para notificaciones API, establece `throttle_rate_per_minute: 0`

***

## Preguntas frecuentes

### ¿La limitación funciona con Entrega Inteligente o entrega por Zona horaria?

No. La limitación tiene precedencia sobre la Entrega Inteligente y la entrega por Zona horaria. Cuando la limitación está habilitada para una notificación, OneSignal ignora estas funciones de programación. Para usar Entrega Inteligente o entrega por Zona horaria, establece la anulación de limitación en `0` para esa notificación.

### ¿Qué sucede si mi tasa de limitación tomaría más de 24 horas?

OneSignal aumenta automáticamente la tasa de limitación para que la entrega se complete dentro de 24 horas. Por ejemplo, enviar a 20.000 usuarios a 10 mensajes por minuto tomaría \~33 horas, por lo que OneSignal ajusta la tasa a \~14 mensajes por minuto.

### ¿Puedo limitar Journeys o Automated Messages?

No. La limitación solo se aplica a notificaciones push enviadas mediante el panel (**Messages > New Push**) o la API [Create notification](/reference/create-message). Los Journeys y Automated Messages se entregan dinámicamente a medida que los usuarios califican, lo que naturalmente distribuye la entrega a lo largo del tiempo.

### ¿Por qué mi tasa de entrega real es menor que la que establecí?

OneSignal convierte tu tasa por minuto a una tasa por segundo y redondea hacia abajo. Por ejemplo, 1.019 mensajes por minuto se convierte en 16 mensajes por segundo (1.019 ÷ 60 = 16,98, redondeado hacia abajo), resultando en una tasa real de 960 mensajes por minuto.

***

## Páginas relacionadas

<Columns cols={3}>
  <Card title="Descripción general de push" icon="bell" href="./push">
    Envía y gestiona notificaciones push móviles y web con OneSignal.
  </Card>

  <Card title="API de creación de notificaciones" icon="code" href="/reference/create-message">
    Referencia de API para crear y enviar notificaciones, incluyendo la propiedad `throttle_rate_per_minute`.
  </Card>

  <Card title="Event Streams" icon="satellite-dish" href="./event-streams">
    Transmite eventos de entrega e interacción a webhooks, Kinesis o Pub/Sub.
  </Card>

  <Card title="OneSignal Service Worker" icon="gear" href="./onesignal-service-worker">
    Configura el archivo Service Worker para notificaciones push web.
  </Card>

  <Card title="Descripción general de Journeys" icon="route" href="./journeys-overview">
    Construye flujos de trabajo de mensajería de múltiples pasos que responden a las acciones del usuario.
  </Card>
</Columns>
