FCM-Drosselung und ‑Kontingente

Unser Ziel ist es, alle mit FCM gesendeten Nachrichten zuzustellen. Die Zustellung jeder Nachricht kann jedoch manchmal zu einer schlechten Nutzererfahrung führen. In anderen Fällen müssen wir Grenzen festlegen, damit FCM einen skalierbaren Dienst für alle Absender bereitstellen kann. Die in diesem Abschnitt beschriebenen Arten von Limits und Kontingenten helfen uns, diese wichtigen Faktoren in Einklang zu bringen.

Drosselung nachgelagerter Nachrichten

Mit der HTTP v1 API wurden Kontingente pro Projekt und Minute für Downstream-Messaging eingeführt. Das Standardkontingent von 600.000 Nachrichten pro Minute deckt über 99% der FCM-Entwickler ab und schützt gleichzeitig die Stabilität des Systems und minimiert die Auswirkungen von Projekten mit Spitzen.

Spitzen im Traffic können zu Fehlern durch Kontingentüberschreitung führen. Wenn das Kontingent überschritten wurde, gibt das System den HTTP-Statuscode 429 RESOURCE_EXHAUSTED („QUOTA_EXCEEDED“) zurück, bis das Kontingent in der folgenden Minute wieder aufgefüllt wird. 429-Antworten können auch in Überlastungssituationen zurückgegeben werden. Wir empfehlen daher dringend, 429-Antworten gemäß den veröffentlichten Empfehlungen zu verarbeiten.

Hinweise:

  • Beim Downstream-Kontingent werden Nachrichten und nicht Anfragen gemessen.
  • Clientfehler (HTTP-Statuscode 400–499) werden gezählt (außer 429).
  • Kontingente gelten pro Minute, aber diese Minuten sind nicht an die Uhrzeit angepasst.

Kontingent für Monitoring

Sie können Kontingente, Nutzung und Fehler in der Google Cloud Console mit den folgenden Tools ansehen:

  1. Rufen Sie die Google Cloud-Konsole auf.
  2. Wählen Sie APIs & Dienste aus.
  3. Wählen Sie in der Tabellenliste Firebase Cloud Messaging API aus.
  4. Wählen Sie KONTINGENTE UND SYSTEMLIMITS aus.

Kontingenterhöhung anfordern

Bevor Sie eine Kontingenterhöhung beantragen, sollten Sie Folgendes prüfen:

  • Ihre Nutzung liegt regelmäßig mindestens 5 Minuten pro Tag bei ≥ 80% des Kontingents.
  • Sie haben ein Client-Fehlerverhältnis von unter 5 %, insbesondere bei Spitzen-Traffic.
  • Sie halten sich an die Best Practices für das Senden von Mitteilungen in großem Umfang.

Wenn Sie diese Kriterien erfüllen, können Sie eine Kontingenterhöhung um bis zu +25% beantragen. FCM wird sich nach Kräften bemühen, dem Antrag nachzukommen (eine Erhöhung kann nicht garantiert werden).

Wenn Sie aufgrund eines bevorstehenden Starts oder eines temporären Ereignisses mehr Kontingent für Downstream-Nachrichten benötigen, fordern Sie das Kontingent mindestens 15 Tage im Voraus an, damit genügend Zeit für die Bearbeitung der Anfrage bleibt. Bei großen Anfragen (über 18 Millionen Nachrichten pro Minute) ist eine Vorlaufzeit von mindestens 30 Tagen erforderlich. Anfragen für Markteinführungen und besondere Ereignisse unterliegen weiterhin den Anforderungen an das Client-Fehlerverhältnis und den Best Practices.

Weitere Informationen finden Sie unter FCM-Kontingente.

Limits für Themennachrichten und Drosselung von Fanout

Weitere Informationen finden Sie unter Kontingente und Limits für Topic-Messaging.

Minimierbare Nachrichtenbegrenzung

Wie unter Minimierbare Nachrichten beschrieben, sind minimierbare Nachrichten benachrichtigungsbezogene Inhalte, die übereinander minimiert werden können. Wenn ein Entwickler dieselbe Nachricht zu häufig an eine App sendet, verzögern wir Nachrichten, um die Auswirkungen auf den Akku eines Nutzers zu verringern.

Wenn Sie beispielsweise eine große Anzahl neuer E‑Mail-Synchronisierungsanfragen an ein einzelnes Gerät senden, verzögern wir die nächste E‑Mail-Synchronisierungsanfrage möglicherweise um einige Minuten, damit das Gerät mit einer niedrigeren durchschnittlichen Rate synchronisiert werden kann. Diese Drosselung erfolgt ausschließlich, um die Auswirkungen auf den Akku für den Nutzer zu begrenzen.

Wenn Ihr Anwendungsfall hohe Burst-Sende-Muster erfordert, sind nicht minimierbare Nachrichten möglicherweise die richtige Wahl. Achten Sie bei solchen Nachrichten darauf, dass der Inhalt in den Nachrichten enthalten ist, um die Akkukosten zu senken.

Wir beschränken minimierbare Nachrichten auf 20 Nachrichten pro App und Gerät. Danach wird alle 3 Minuten eine neue Nachricht hinzugefügt.

Maximale Nachrichtenrate für ein einzelnes Gerät

Unter Android können Sie bis zu 240 Nachrichten pro Minute und 5.000 Nachrichten pro Stunde an ein einzelnes Gerät senden. Dieser hohe Grenzwert soll kurzfristige Traffic-Spitzen ermöglichen, z. B. wenn Nutzer schnell über den Chat interagieren. Dieses Limit verhindert, dass Fehler in der Sendelogik versehentlich den Akku eines Geräts entladen.

Unter iOS wird ein Fehler zurückgegeben, wenn die Rate die APNs-Limits überschreitet.