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 klienta

W interfejsie HTTP v1 API wprowadziliśmy limity przydziału na minutę i na projekt dotyczące wiadomości wysyłanych do klienta. 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 przydziału dla wiadomości wysyłanych do klienta dotyczy wiadomości, a nie żądań.
  • Błędy klienta (kod stanu HTTP 400–499) są zliczane (z wyjątkiem błędów 429).
  • Limity przydziału są minutowe, ale te minuty nie są zsynchronizowane z zegarem.

Monitorowanie limitu przydziału

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

  1. Otwórz Google Cloud konsolę.

  2. Kliknij Interfejsy API i usługi.

  3. Z listy tabel wybierz Firebase Cloud Messaging API.

  4. Kliknij LIMIT PRZYDZIAŁU I LIMITY SYSTEMU.

Poproś o zwiększenie limitu

Zanim poprosisz o zwiększenie limitu, upewnij się, że:

  • Twoje wykorzystanie regularnie wynosi co najmniej 80% limitu przez co najmniej 5 kolejnych minut dziennie.
  • Współczynnik błędów klienta wynosi < 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 o maksymalnie 25% w konsoli Google Cloud, wykonując te czynności:

  1. Otwórz LIMIT 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 przydziału na wiadomości wysyłane do klienta z powodu zbliżającego się uruchomienia lub tymczasowego wydarzenia, 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 powiadomienia z co najmniej 30-dniowym wyprzedzeniem. 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 przydziału.

Limity wiadomości związanych z tematem i ograniczanie rozsyłania

Więcej informacji znajdziesz w artykule Limity przydziału i limity 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ć kolejne żądanie synchronizacji e-maili o kilka minut, aby urządzenie mogło synchronizować się z mniejszą średnią częstotliwością. To ograniczanie jest stosowane wyłącznie w celu ograniczenia wpływu na baterię użytkownika.

Jeśli Twój przypadek użycia wymaga wzorców wysyłania z nagłymi wzrostami, odpowiednim rozwiązaniem mogą być wiadomości niezwijane. 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.