Ograniczanie i limity FCM

Naszym celem jest zawsze dostarczanie wszystkich wiadomości wysyłanych za pomocą FCM. Dostarczanie każdej wiadomości może jednak czasami pogorszyć ogólne wrażenia użytkownika. W innych przypadkach musimy wprowadzić ograniczenia, aby zapewnić, że FCM będzie skalowalną usługą dla wszystkich nadawców. Rodzaje limitów i przydziałów opisane w tej sekcji pomagają nam zachować równowagę między tymi ważnymi czynnikami.

Ograniczanie liczby wiadomości wysyłanych do użytkowników

W interfejsie HTTP v1 API wprowadziliśmy limity przydziału na minutę i na projekt dotyczące wysyłania wiadomości do użytkowników. 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 z nagłymi wzrostami ruchu.

Wzorce ruchu z nagłymi wzrostami 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 wysyłania wiadomości do użytkowników dotyczy wiadomości, a nie żądań.
  • Błędy klienta (kod stanu HTTP 400–499) są uwzględniane (z wyjątkiem błędów 429).
  • Limity są minutowe, ale te minuty nie są zsynchronizowane z zegarem.

Monitorowanie limitu

Limit, wykorzystanie i błędy możesz sprawdzić w Google Cloud konsoli:

  1. Otwórz Google Cloud konsolę.

  2. Kliknij Interfejsy API i usługi.

  3. Na liście tabeli kliknij 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 regularnie wynosi co najmniej 80% limitu przez co najmniej 5 kolejnych minut dziennie;
  • współczynnik błędów klienta jest niższy niż 5%, zwłaszcza w okresach największego ruchu;
  • przestrzegasz sprawdzonych metod wysyłania wiadomości na dużą skalę.

Jeśli spełniasz te kryteria, możesz przesłać prośbę o zwiększenie limitu maksymalnie o 25% w konsoli Google Cloud:

  1. Otwórz LIMITY PRZYDZIAŁU I LIMITY SYSTEMU.
  2. W tabeli kliknij wiersz Wysyłanie żądań 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żemy zagwarantować zwiększenia limitu ).

Jeśli potrzebujesz większego limitu wysyłania wiadomości do użytkowników ze względu na zbliżające się uruchomienie lub tymczasowe wydarzenie, musisz przesłać prośbę o zwiększenie limitu do zespołu pomocy Firebase. Poproś o zwiększenie limitu co najmniej 15 dni wcześniej, aby mieć wystarczająco dużo czasu na rozpatrzenie prośby. W przypadku dużych próśb (ponad 18 mln wiadomości na minutę) wymagamy co najmniej 30-dniowego wyprzedzenia. Możemy zatwierdzić tylko 2 tymczasowe zwiększenia limitu rocznie. Łączny czas trwania tymczasowego zwiększenia limitu w ciągu roku nie może przekraczać 30 dni. Prośby dotyczące uruchomień i wydarzeń specjalnych nadal podlegają wymaganiom dotyczącym współczynnika błędów klienta i sprawdzonych metod.

Więcej informacji znajdziesz w artykule FCM limitów.

Limity dotyczące wiadomości związanych z tematem i ograniczanie liczby rozsyłanych wiadomości

Więcej informacji znajdziesz w artykule Limity i przydziały dotyczące wiadomości związanych z tematem.

Ograniczanie liczby wiadomości zwijanych

Jak opisano w artykule Wiadomości zwijane, wiadomości zwijane to powiadomienia bez treści, które mają się zwijać na siebie. Jeśli deweloper zbyt często powtarza tę samą wiadomość w aplikacji, opóźniamy wysyłanie wiadomości, aby zmniejszyć wpływ na baterię użytkownika.

Jeśli na przykład wysyłasz dużą liczbę nowych żądań synchronizacji e-maili na jedno urządzenie, możemy opóźnić następne żądanie synchronizacji e-maili o kilka minut, aby urządzenie mogło synchronizować się z mniejszą średnią częstotliwością. Ograniczanie liczby wiadomości jest stosowane wyłącznie w celu ograniczenia wpływu na baterię użytkownika.

Jeśli Twój przypadek użycia wymaga wysyłania wiadomości w krótkich seriach, lepszym rozwiązaniem mogą być wiadomości niezwiązane z tematem. W przypadku takich wiadomości pamiętaj, aby uwzględnić w nich treść, aby zmniejszyć zużycie baterii.

Ograniczamy liczbę wiadomości zwijanych do 20 wiadomości na aplikację na urządzenie, z uzupełnianiem 1 wiadomości co 3 minuty.

Maksymalna liczba wiadomości wysyłanych 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 wzrostów ruchu, np. gdy użytkownicy szybko ze sobą rozmawiają. Ten limit zapobiega przypadkowemu wyczerpaniu baterii urządzenia przez błędy w logice wysyłania.

W przypadku iOS zwracamy błąd, gdy liczba wiadomości przekracza limity APNs.