Naszym celem jest zawsze dostarczanie wszystkich wiadomości wysyłanych za pomocą FCM. Jednak dostarczanie każdej wiadomości może czasami pogorszyć ogólne wrażenia użytkowników. W innych przypadkach musimy wyznaczyć granice, aby zapewnić wszystkim nadawcom skalowalną usługę FCM. Rodzaje limitów i kwot opisane w tej sekcji pomagają nam zachować równowagę między tymi ważnymi czynnikami.
Ograniczanie liczby wiadomości wysyłanych do klienta
W interfejsie HTTP v1 API wprowadziliśmy limity minutowe dla każdego projektu w przypadku przesyłania wiadomości do urządzeń. Domyślny limit 600 tys. wiadomości na minutę obejmuje ponad 99% FCM deweloperów, a jednocześnie chroni stabilność systemu i minimalizuje wpływ projektów o dużym wzroście aktywności.
Nagłe wzrosty ruchu mogą powodować błędy przekroczenia limitu. W przypadku przekroczenia limitu system zwraca kod stanu HTTP 429 RESOURCE_EXHAUSTED
(„QUOTA_EXCEEDED”), dopóki limit nie zostanie uzupełniony w następnej minucie. Odpowiedzi 429 mogą być też zwracane w sytuacjach przeciążenia, dlatego zalecamy obsługę odpowiedzi 429 zgodnie z opublikowanymi zaleceniami.
Keep in mind:
- Limit dotyczący wysyłania danych do klienta mierzy wiadomości, a nie żądania.
- Błędy klienta (kody stanu HTTP 400–499) są zliczane (z wyjątkiem kodów 429).
- Limity są określane na minutę, ale nie są powiązane z zegarem.
Limit monitorowania
Limity, wykorzystanie i błędy możesz wyświetlać w konsoli Google Cloud, korzystając z tych opcji:
- Otwórz Google Cloudkonsolę.
- Kliknij Interfejsy API i usługi.
- Z listy tabel wybierz Firebase Cloud Messaging API.
- Kliknij LIMITY PRZYDZIAŁU I LIMITY SYSTEMU.
Poproś o zwiększenie limitu
Zanim poprosisz o zwiększenie limitu, upewnij się, że:
- Wykorzystanie limitu wynosi regularnie ≥ 80% przez co najmniej 5 minut z rzędu dziennie.
- Współczynnik błędów klienta jest mniejszy niż 5%, zwłaszcza w okresach największego natężenia ruchu.
- Stosujesz sprawdzone metody wysyłania wiadomości na dużą skalę.
Jeśli spełniasz te kryteria, możesz przesłać prośbę o zwiększenie limitu o maksymalnie 25% i FCM dołoży wszelkich starań, aby ją spełnić (nie możemy zagwarantować zwiększenia limitu).
Jeśli potrzebujesz większego limitu wiadomości wysyłanych do użytkowników ze względu na zbliżające się wprowadzenie usługi lub tymczasowe wydarzenie, poproś o zwiększenie limitu z co najmniej 15-dniowym wyprzedzeniem, aby mieć wystarczająco dużo czasu na rozpatrzenie prośby. W przypadku dużych żądań (ponad 18 mln wiadomości na minutę) wymagane jest powiadomienie z co najmniej 30-dniowym wyprzedzeniem. Żądania dotyczące premier i wydarzeń specjalnych nadal podlegają wymaganiom dotyczącym współczynnika błędów klienta i sprawdzonych metod.
Więcej informacji znajdziesz w sekcji FCM limity.
Limity wiadomości związanych z tematem i ograniczanie rozsyłania
Więcej informacji znajdziesz w sekcji Limity i limity przydziału dotyczące przesyłania wiadomości do tematów.
Ograniczanie liczby zwijanych wiadomości
Zgodnie z opisem w sekcji Zwinięte wiadomości zwinięte wiadomości to powiadomienia bez treści, które są zaprojektowane tak, aby zwijać się jeden na drugim. Jeśli deweloper zbyt często wysyła ten sam komunikat do aplikacji, opóźniamy wiadomości, aby zmniejszyć wpływ na baterię użytkownika.
Jeśli na przykład wyślesz dużą liczbę nowych żądań synchronizacji e-maili na jedno urządzenie, możemy opóźnić kolejne żądanie synchronizacji o kilka minut, aby urządzenie mogło synchronizować dane ze średnią niższą częstotliwością. Ograniczenie to jest stosowane wyłącznie w celu zmniejszenia wpływu na baterię, który odczuwa użytkownik.
Jeśli Twój przypadek użycia wymaga wzorców wysyłania o dużej częstotliwości, odpowiednim wyborem mogą być wiadomości niezwijalne. W przypadku takich wiadomości zadbaj o to, aby zawierały treść, co pozwoli zmniejszyć zużycie baterii.
Ograniczamy zwijane wiadomości do 20 wiadomości na aplikację na urządzenie, a następnie co 3 minuty dodajemy 1 wiadomość.
Maksymalna częstotliwość wysyłania wiadomości na jedno urządzenie
Na Androidzie możesz wysłać maksymalnie 240 wiadomości na minutę i 5000 wiadomości na godzinę na jedno urządzenie. Ten wysoki próg ma uwzględniać krótkotrwałe skoki ruchu, np. gdy użytkownicy szybko ze sobą rozmawiają na czacie. Ten limit zapobiega przypadkowemu wyczerpaniu baterii urządzenia przez błędy w logice wysyłania.
W przypadku iOS zwracamy błąd, gdy liczba żądań przekracza limity APNs.