Notre objectif est de toujours distribuer tous les messages envoyés à l'aide de FCM. Toutefois, la diffusion de chaque message entraîne parfois une mauvaise expérience utilisateur globale. Dans d'autres cas, nous devons définir des limites pour nous assurer que FCM fournit un service évolutif à tous les expéditeurs. Les types de limites et de quotas décrits dans cette section nous aident à équilibrer ces facteurs importants.
Limitation des messages en aval
L'API HTTP v1 a introduit des quotas par projet et par minute pour la messagerie en aval. Le quota par défaut de 600 000 messages par minute couvre plus de 99% des développeurs FCM, tout en protégeant la stabilité du système et en minimisant l'impact des projets à pics d'activité.
Les pics de trafic peuvent entraîner des erreurs de dépassement de quota. En cas de dépassement de quota, le système renvoie le code d'état HTTP 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") jusqu'à ce que le quota soit réapprovisionné à la minute suivante. Des réponses 429 peuvent également être renvoyées en cas de surcharge. Nous vous encourageons donc vivement à gérer les réponses 429 conformément aux recommandations publiées.
Keep in mind:
- Le quota en aval mesure les messages, et non les requêtes.
- Les erreurs client (code d'état HTTP 400-499) sont comptabilisées (à l'exception des erreurs 429).
- Les quotas sont définis par minute, mais ces minutes ne sont pas alignées sur l'horloge.
Quota de surveillance
Vous pouvez consulter les quotas, l'utilisation et les erreurs dans la console Google Cloud :
Accédez à la consoleGoogle Cloud.
Sélectionnez API et services.
Dans la liste des tables, sélectionnez API Firebase Cloud Messaging.
Sélectionnez QUOTAS ET LIMITES DU SYSTÈME.
Demander une augmentation du quota
Avant de demander une augmentation de quota, assurez-vous que :
- Votre utilisation est régulièrement ≥ 80% du quota pendant au moins cinq minutes consécutives par jour.
- Votre taux d'erreur client est inférieur à 5 %, en particulier pendant les pics de trafic.
- Vous respectez les bonnes pratiques pour l'envoi de messages à grande échelle.
Si vous remplissez ces critères, vous pouvez demander une augmentation de quota jusqu'à +25% dans la console Google Cloud en procédant comme suit :
- Accédez à QUOTAS ET LIMITES DU SYSTÈME.
- Dans le tableau, sélectionnez la ligne Requêtes d'envoi par minute.
- Cliquez sur le bouton Modifier.
- Suivez les instructions pour envoyer votre demande.
FCM fera tout son possible pour répondre à la demande (aucune augmentation ne peut être garantie).
Si vous avez besoin d'un quota de messages descendants plus élevé en raison d'un lancement imminent ou d'un événement temporaire, vous devez envoyer une demande d'augmentation de quota à l'assistance Firebase. Demandez votre quota au moins 15 jours à l'avance pour que nous ayons suffisamment de temps pour traiter la demande. Pour les requêtes volumineuses (> 18 millions de messages par minute), un préavis d'au moins 30 jours est requis. Nous ne pouvons approuver que deux événements de quota temporaire par an. La durée totale du quota temporaire sur l'année ne doit pas dépasser 30 jours. Les lancements et les demandes d'événements spéciaux sont toujours soumis au ratio d'erreurs client et aux exigences des bonnes pratiques.
Pour en savoir plus, consultez Quotas de FCM.
Limites des messages de sujet et limitation de la distribution
Pour en savoir plus, consultez Quotas et limites de la messagerie par thèmes.
Limitation des messages réductibles
Comme décrit dans Messages réductibles, les messages réductibles sont des notifications sans contenu conçues pour se réduire les unes sur les autres. Si un développeur envoie trop souvent le même message à une application, nous retardons les messages pour réduire l'impact sur la batterie de l'utilisateur.
Par exemple, si vous envoyez un grand nombre de nouvelles demandes de synchronisation d'e-mails à un seul appareil, nous pouvons retarder la demande de synchronisation d'e-mails suivante de quelques minutes afin que l'appareil puisse se synchroniser à un débit moyen inférieur. Cette limitation est effectuée uniquement pour limiter l'impact sur la batterie subi par l'utilisateur.
Si votre cas d'utilisation nécessite des modèles d'envoi en rafale élevés, les messages non réductibles peuvent être le bon choix. Pour ces messages, veillez à inclure le contenu dans ces messages afin de réduire l'impact sur la batterie.
Nous limitons les messages réductibles à une rafale de 20 messages par application et par appareil, avec un réapprovisionnement d'un message toutes les trois minutes.
Taux maximal de messages vers un seul appareil
Pour Android, vous pouvez envoyer jusqu'à 240 messages par minute et 5 000 messages par heure à un seul appareil. Ce seuil élevé est destiné à permettre des pics de trafic à court terme, par exemple lorsque les utilisateurs interagissent rapidement via le chat. Cette limite évite que des erreurs dans la logique d'envoi ne déchargent par inadvertance la batterie d'un appareil.
Pour iOS, nous renvoyons une erreur lorsque le taux dépasse les limites d'APNs.