Limitación y cuotas de FCM

Nuestro objetivo es entregar siempre cada mensaje que se envía con FCM. Sin embargo, cuando se entregan todos los mensajes, en ocasiones se genera una experiencia general deficiente para el usuario. En otros casos, debemos definir límites a fin de garantizar que FCM proporcione un servicio escalable para todos los remitentes. Los tipos de límites y cuotas descritos en esta sección nos ayudarán a equilibrar estos factores importantes.

Regulación de mensajes downstream

La API de HTTP v1 introdujo cuotas por proyecto y por minuto para la mensajería downstream. La cuota predeterminada de 600,000 mensajes por minuto abarca a más del 99% de los desarrolladores de FCM y, al mismo tiempo, protege la estabilidad del sistema y minimiza el impacto de los proyectos con aumentos bruscos.

Los patrones de tráfico con aumentos bruscos pueden generar errores de superación de la cuota. En una situación en la que se supera la cuota, el sistema entrega el código de estado HTTP 429 RESOURCE_EXHAUSTED (QUOTA_EXCEEDED) hasta que se restablece la cuota en el siguiente minuto. También se pueden devolver respuestas 429 en situaciones de sobrecarga, por lo que se recomienda controlar los errores 429 de acuerdo con las recomendaciones publicadas.

Keep in mind:

  • La cuota downstream mide los mensajes, no las solicitudes.
  • Se cuentan los errores de cliente (código de estado HTTP 400-499) (excepto los errores 429).
  • Las cuotas son por minuto, pero estos minutos no se alinean con la hora.

Supervisa la cuota

Puedes ver la cuota, el uso y los errores en la consola de Google Cloud siguiendo estos pasos:

  1. Ir a Google Cloud console.
  2. Selecciona APIs y servicios.
  3. En la lista de tablas, selecciona API de Firebase Cloud Messaging.
  4. Selecciona CUOTAS Y LÍMITES DEL SISTEMA.

Solicita un aumento de la cuota

Antes de solicitar un aumento de la cuota, asegúrate de lo siguiente:

  • Tu uso suele ser mayor o igual al 80% de la cuota durante al menos 5 minutos consecutivos por día.
  • Tienes menos del 5% de proporción de errores de cliente, especialmente durante los períodos de tráfico máximo
  • Sigues las prácticas recomendadas para enviar mensajes a gran escala.

Si cumples con estos criterios, puedes enviar una solicitud de aumento de cuota de hasta un 25%, y FCM hará todo lo posible para completar la solicitud (no se puede garantizar un aumento).

Si necesitas más cuota de mensajería downstream debido a un lanzamiento inminente o un evento temporal, solicita tu cuota con al menos 15 días de anticipación para permitir que haya tiempo suficiente para procesar la solicitud. Para las solicitudes grandes (más de 18 millones de mensajes por minuto), se requiere un aviso de al menos 30 días. Los lanzamientos y las solicitudes de eventos especiales aún están sujetos a la proporción de errores de cliente y a los requisitos de las prácticas recomendadas.

Para obtener más información, consulta las cuotas de FCM.

Límites de mensajes por temas y de fanout

Consulta Cuotas y límites de mensajería de temas para obtener más detalles.

Regulación de mensajes contraíbles

Como se describió en Mensajes contraíbles, los mensajes contraíbles son notificaciones sin contenido diseñadas para contraerse una sobre otra. Si un desarrollador envía el mismo mensaje hacia una app con demasiada frecuencia, retrasaremos los mensajes para disminuir el impacto sobre la batería del usuario.

Por ejemplo, si envías una gran cantidad de solicitudes de sincronización de correo electrónico nuevo a un solo dispositivo, es posible que retrasemos la siguiente solicitud unos minutos para que el dispositivo se pueda sincronizar a una tasa promedio más baja. La regulación se realiza exclusivamente para limitar el impacto sobre la batería del usuario.

Los mensajes no contraíbles pueden ser la opción adecuada si tu caso de uso requiere patrones de envío con aumentos de actividad elevados. Para tales mensajes, asegúrate de incluir el contenido en estos a fin de disminuir el consumo de batería.

Los mensajes contraíbles se limitan a picos de actividad de 20 mensajes por app y por dispositivo, con una reposición de 1 mensaje cada 3 minutos.

Tasa máxima de envío de mensajes a un solo dispositivo

En Android, puedes enviar hasta 240 mensajes por minuto y 5,000 mensajes por hora a un solo dispositivo. El propósito de este umbral alto es permitir que se produzcan aumentos de actividad de tráfico a corto plazo, como cuando los usuarios interactúan rápidamente por chat. Con este límite, se evita que se generen errores en los que la lógica de envío consume la batería de un dispositivo involuntariamente.

En iOS, se muestra un error cuando la tasa supera los límites de APNS.