Ograniczanie i limity FCM

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 limitów przydziału opisane w tej sekcji pomagają nam zachować równowagę między tymi ważnymi czynnikami.

Ograniczanie liczby wiadomości wysyłanych do urządzenia

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żych skokach aktywności.

Nagłe wzrosty ruchu mogą powodować błędy związane z przekroczeniem 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 zdecydowanie zalecamy obsługę odpowiedzi 429 zgodnie z opublikowanymi zaleceniami.

Keep in mind:

  • Limit dotyczący wysyłania danych do usług Google 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 te minuty nie są zsynchronizowane z zegarem.

Limit monitorowania

Limity, wykorzystanie i błędy możesz sprawdzić w Google Cloudkonsoli:

  1. Otwórz Google Cloudkonsolę.

  2. Kliknij Interfejsy API i usługi.

  3. Z listy tabel wybierz Firebase Cloud Messaging API.

  4. 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ć w konsoli Google Cloud prośbę o zwiększenie limitu o maksymalnie 25%, wykonując te czynności:

  1. Otwórz LIMITY PRZYDZIAŁU I LIMITY SYSTEMU.
  2. W tabeli wybierz wiersz Liczba żądań wysyłanych na minutę.
  3. Kliknij przycisk Edytuj.
  4. Postępuj zgodnie z instrukcjami, aby przesłać prośbę.

FCM dołoży wszelkich starań, aby spełnić prośbę (nie można zagwarantować zwiększenia limitu).

Jeśli potrzebujesz większego limitu wiadomości wysyłanych do klientów z powodu zbliżającego się wprowadzenia usługi lub tymczasowego wydarzenia, musisz przesłać prośbę o zwiększenie limitu za pomocą zespołu pomocy Firebase. Poproś o limit co najmniej 15 dni wcześniej, abyśmy mieli wystarczająco dużo czasu na rozpatrzenie Twojej prośby. W przypadku dużych żądań (ponad 18 mln wiadomości na minutę) wymagane jest powiadomienie z co najmniej 30-dniowym wyprzedzeniem. Możemy zatwierdzić tylko 2 wydarzenia związane z tymczasowym limitem miejsc w roku. Łączny czas trwania tymczasowego limitu w ciągu roku nie może przekraczać 30 dni. Wymagania dotyczące współczynnika błędów klienta i sprawdzonych metod nadal obowiązują w przypadku premier i specjalnych wydarzeń.

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 Zwijane wiadomości zwijane wiadomości to powiadomienia bez treści, które są zaprojektowane tak, aby zwijać się jedne na drugich. 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 synchronizacji o kilka minut, aby urządzenie mogło synchronizować dane ze średnią niższą częstotliwością. Ograniczanie przepustowości jest stosowane wyłącznie w celu ograniczenia wpływu na baterię urządzenia.

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 liczbę zwijanych wiadomości do 20 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

W przypadku Androida możesz wysył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 natężenia ruchu, np. gdy użytkownicy szybko wymieniają wiadomości na czacie. Ten limit zapobiega nieumyślnemu wyczerpywaniu baterii urządzenia przez błędy w logice wysyłania.

W przypadku iOS zwracamy błąd, gdy szybkość przekracza limity APNs.