Notre objectif est de toujours diffuser tous les messages envoyés à l'aide de FCM. Toutefois, la diffusion de tous les messages 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 FCM développeurs, tout en protégeant la stabilité du système et minimisant l'impact des projets à pics.
Les pics de trafic peuvent
entraîner des erreurs de dépassement de quota. Dans un scénario de dépassement de quota, le système diffuse 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 recommandons vivement de 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 par minute, mais ces minutes ne sont pas alignées sur l'horloge.
Surveillance du quota
Vous pouvez afficher le quota, l'utilisation et les erreurs dans la Google Cloud console :
Accédez à la Google Cloud console.
Sélectionnez API et services.
Dans la liste des tableaux, 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 supérieure ou égale à 80 % du quota pendant au moins cinq minutes consécutives par jour.
- Votre taux d'erreurs client est inférieur à 5 %, en particulier pendant les pics de trafic.
- Vous respectez les bonnes pratiques pour envoyer des messages à grande échelle.
Si vous remplissez ces critères, vous pouvez envoyer une demande d'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 Envoyer des requêtes 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 messagerie en aval plus important en raison d'un lancement imminent ou d'un événement temporaire, vous devez envoyer votre demande d'augmentation de quota via l'assistance Firebase. Demandez votre quota au moins 15 jours à l'avance pour disposer de suffisamment de temps pour traiter la demande. Pour les demandes importantes (plus de 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 demandes de lancement et d'événement spécial sont toujours soumises au taux d'erreurs client et aux exigences des bonnes pratiques.
Pour en savoir plus, consultez FCM quotas.
Limites des messages par sujet et limitation de la diffusion
Pour en savoir plus, consultez Quotas et limites de la messagerie par sujet.
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 répète trop souvent le même message dans une application, nous retardons les messages pour réduire l'impact sur la batterie d'un utilisateur.
Par exemple, si vous envoyez un grand nombre de nouvelles requêtes de synchronisation d'e-mails à un seul appareil, nous pouvons retarder la prochaine requête de synchronisation d'e-mails de quelques minutes afin que l'appareil puisse se synchroniser à un taux moyen plus faible. Cette limitation est strictement destinée à limiter l'impact sur la batterie de l'utilisateur.
Si votre cas d'utilisation nécessite des schémas d'envoi en rafale élevés, les messages non réductibles peuvent être le bon choix. Pour ces messages, veillez à inclure le contenu afin de réduire la consommation de 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 sur 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 par chat. Cette limite empêche les erreurs dans la logique d'envoi de décharger involontairement la batterie d'un appareil.
Pour iOS, nous renvoyons une erreur lorsque le taux dépasse les limites APNs.