Naszym celem jest zawsze dostarczanie każdej wiadomości wysłanej za pomocą FCM. Jednak dostarczanie każdej wiadomości może czasami pogorszyć ogólne wrażenia użytkownika. W innych przypadkach musimy wprowadzić ograniczenia, aby usługa FCM była skalowalna dla wszystkich nadawców. Opisane w tej sekcji rodzaje limitów i limitów przydziału pomagają nam zachować równowagę między tymi ważnymi czynnikami.
Ograniczanie przepustowości wiadomości downstream
Interfejs HTTP v1 API wprowadził limity na projekt i na minutę dla wiadomości przesyłanych do aplikacji. Domyślny limit 600 tys. wiadomości na minutę obejmuje ponad 99% deweloperów FCM, a jednocześnie chroni stabilność systemu i minimalizuje wpływ projektów o dużym obciążeniu.
Skokowe wzorce ruchu mogą powodować błędy przekroczenia limitu. W przypadku przekroczenia limitu system wyświetla kod stanu HTTP 429 RESOURCE_EXHAUSTED („QUOTA_EXCEEDED”), dopóki limit nie zostanie odnowiony w następnej minucie. Odpowiedzi 429 mogą też być zwracane w sytuacjach przeciążenia, dlatego zdecydowanie zalecamy obsługę odpowiedzi 429 zgodnie z opublikowanymi zaleceniami.
Keep in mind:
- Limit downstream dotyczy wiadomości, a nie żądań.
- Błędy klienta (kod stanu HTTP 400–499) są zliczane (z wyjątkiem błędów 429).
- Limity są określane na minutę, ale te minuty nie są zsynchronizowane z zegarem.
Limit monitorowania
Limity, wykorzystanie i błędy możesz wyświetlić w konsoli Google Cloud:
Otwórz konsolę Google Cloud.
Wybierz Interfejsy API i usługi.
Z listy w tabeli wybierz Firebase Cloud Messaging API.
Kliknij LIMIT PRZYDZIAŁU I LIMIT SYSTEMU.
Poproś o zwiększenie limitu
Zanim poprosisz o zwiększenie limitu, upewnij się, że:
- Wykorzystanie wynosi regularnie ≥ 80% limitu przez co najmniej 5 kolejnych minut dziennie.
- Współczynnik błędów klienta wynosi < 5%, zwłaszcza w godzinach szczytu.
- 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% w konsoli Google Cloud, korzystając z tych opcji:
- Otwórz LIMIT PRZYDZIAŁU I LIMITY SYSTEMU.
- W tabeli wybierz wiersz Wysyłanie żądań na minutę.
- Kliknij przycisk Edytuj.
- Postępuj zgodnie z instrukcjami, aby przesłać prośbę.
FCM dołoży wszelkich starań, aby spełnić prośbę (nie możemy zagwarantować zwiększenia limitu).
Jeśli potrzebujesz większego limitu wiadomości downstream z powodu zbliżającej się premiery lub tymczasowego wydarzenia, musisz poprosić o zwiększenie limitu, kontaktując się z zespołem pomocy Firebase. Poproś o limit z co najmniej 15-dniowym wyprzedzeniem, aby dać nam wystarczająco dużo czasu na rozpatrzenie prośby. W przypadku dużych żądań (>18 mln wiadomości na minutę) wymagane jest powiadomienie z co najmniej 30-dniowym wyprzedzeniem. Możemy zatwierdzić tylko 2 tymczasowe zwiększenia limitu rocznie. Łączny czas trwania tymczasowego limitu w ciągu roku nie może przekraczać 30 dni. Prośby o pomoc przy premierach i wydarzeniach specjalnych nadal podlegają wymaganiom dotyczącym współczynnika błędów klienta i sprawdzonych metod.
Więcej informacji znajdziesz w artykule o limitach FCM.
Limity wiadomości związanych z tematem i ograniczanie fanoutu
Więcej informacji znajdziesz w sekcji Limity i ograniczenia dotyczące przesyłania wiadomości na temat.
Ograniczanie liczby wiadomości zwijanych
Jak opisano w sekcji Wiadomości zwijane, wiadomości zwijane to powiadomienia bez treści, które są zaprojektowane tak, aby zwijały się jedna na drugiej. Jeśli deweloper zbyt często powtarza tę samą wiadomość w 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 poczty e-mail na jedno urządzenie, możemy opóźnić kolejne żądanie o kilka minut, aby urządzenie mogło przeprowadzić synchronizację z mniejszą średnią szybkością. Ograniczenie to ma na celu wyłącznie zmniejszenie wpływu na baterię, jaki odczuwa użytkownik.
Jeśli Twój przypadek użycia wymaga wysyłania dużej liczby wiadomości w krótkim czasie, wiadomości niezwijane mogą być właściwym wyborem. W przypadku takich wiadomości pamiętaj o uwzględnieniu w nich treści, aby zmniejszyć zużycie baterii.
Ograniczamy wiadomości zwijane do 20 wiadomości na aplikację na urządzenie, z możliwością uzupełnienia o 1 wiadomość co 3 minuty.
Maksymalna częstotliwość wysyłania wiadomości na jedno urządzenie
W przypadku Androida możesz wysłać do 240 wiadomości na minutę i 5000 wiadomości na godzinę na jedno urządzenie. Ten wysoki próg ma na celu umożliwienie krótkotrwałych skoków ruchu, na przykład gdy użytkownicy szybko komunikują się na czacie. Ten limit zapobiega przypadkowemu wyczerpaniu baterii urządzenia przez błędy w logice wysyłania.
W przypadku iOS zwracamy błąd, gdy częstotliwość przekracza limity APN.