Sie haben zwei Möglichkeiten, Downstream-Nachrichten auf Android-Geräten eine Zustellpriorität zuzuweisen: „Normal“ und „Hoch“. So funktioniert die Zustellung von Nachrichten mit normaler und hoher Priorität:
Normale Priorität Das ist die Standardpriorität für Datennachrichten. Nachrichten mit normaler Priorität werden sofort zugestellt, wenn das Gerät nicht im Ruhemodus ist. Wenn sich das Gerät im Ruhemodus befindet, wird die Zustellung möglicherweise verzögert, um den Akku zu schonen, bis das Gerät den Ruhemodus beendet. Wählen Sie für weniger zeitkritische Nachrichten wie Benachrichtigungen zu neuen E-Mails, die Synchronisierung der Benutzeroberfläche oder die Synchronisierung von App-Daten im Hintergrund die normale Übermittlungspriorität aus.
Wenn Sie auf Android eine Nachricht mit normaler Priorität erhalten, die eine Synchronisierung von Hintergrunddaten für Ihre App anfordert, können Sie mit WorkManager eine Aufgabe planen, die verarbeitet wird, wenn das Netzwerk verfügbar ist.
Hohe Priorität. FCM versucht, Nachrichten mit hoher Priorität sofort zu senden. Dadurch kann FCM bei Bedarf ein inaktives Gerät aktivieren und eine begrenzte Verarbeitung (einschließlich sehr begrenztem Netzwerkzugriff) ausführen. Mitteilungen mit hoher Priorität sollten in der Regel zu einer Nutzerinteraktion mit Ihrer App oder ihren Benachrichtigungen führen.
Nachrichtenverwaltung und Depriorisierung auf Android
Nachrichten mit hoher Priorität unter Android sind für zeitkritische, für Nutzer sichtbare Inhalte gedacht und sollten zu Benachrichtigungen führen, die den Nutzern angezeigt werden. Wenn FCM ein Muster erkennt, bei dem Nachrichten nicht zu Nutzerbenachrichtigungen führen, werden Ihre Nachrichten möglicherweise auf die normale Priorität herabgestuft oder an Google Play-Dienste delegiert.
FCM verwendet die Nachrichtenaktivität der letzten sieben Tage, um zu bestimmen, ob Nachrichten herabgestuft oder per Proxy gesendet werden sollen. Diese Entscheidung wird unabhängig für jede Instanz Ihrer Anwendung getroffen. Wenn Benachrichtigungen in Bezug auf Nachrichten mit hoher Priorität für den Nutzer sichtbar angezeigt werden, sind zukünftige Nachrichten mit hoher Priorität nicht betroffen.
Benachrichtigungen mit Google Play-Diensten delegieren
Benachrichtigungsnachrichten mit hoher Priorität (keine Datennachrichten), die bestimmte Kriterien erfüllen, werden von Google Play-Diensten per Proxy übertragen, anstatt die Priorität zu senken. Das bedeutet, dass die Benachrichtigungen von den Google Play-Diensten im Namen der App angezeigt werden, ohne dass die App gestartet werden muss. So soll die Nutzerfreundlichkeit auf Android-Geräten insgesamt verbessert werden.
Durch Proxy-Benachrichtigungen werden Änderungen an der Berichterstellung für Analysen zu empfangenen Nachrichten vorgenommen:
- Damit Analysen für geproxyte Benachrichtigungen erfasst werden können, muss in Ihrer App das FCM SDK Version 24.0.0 oder höher verwendet werden.
- Es kann zu Verzögerungen oder einem Rückgang der empfangenen Nachrichten kommen. Das liegt daran, dass Analysen für weitergeleitete Benachrichtigungen erst beim Start Ihrer App gemeldet werden. Sie werden möglicherweise auch gar nicht gemeldet, wenn die Benachrichtigung nicht zum Öffnen der App führt.
Das Proxying von Benachrichtigungsnachrichten auf diese Weise ist das Standardverhalten für Apps, die Android Q und die Google Play-Dienste-Version 19054000 oder höher verwenden. Nachrichten, die über die HTTP v1 API gesendet werden, werden geproxyt. Nachrichten, die über die Firebase Console oder Legacy APIs gesendet werden, werden nicht geproxyt. Diese Funktion befindet sich derzeit in der Betaphase und kann sich ändern.
Wir empfehlen zwar dringend, die Delegierung aktiviert zu lassen, da sie die Vorteile für Akku und Arbeitsspeicher des Geräts beeinträchtigt. Sie haben aber folgende Möglichkeiten, dieses Verhalten zu deaktivieren:
- Auf App-Ebene: Fügen Sie in Ihrem App-Manifest die Anweisung
<meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/>
hinzu. - Auf App-Instanzebene: Legen Sie für die App-Instanz
fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!>
im UI-Flow für Ihre App fest, je nach Anwendungsfall. - Pro Nachricht: Setzen Sie den
proxy
-Schlüssel imAndroidNotification
-Objekt für die Sendeanfrage aufDENY
.
Herabstufen von Nachrichten auf Android-Geräten messen
Einzelne Nachrichten Bei der Zustellung können Sie feststellen, ob die Priorität einer einzelnen Nachricht herabgesetzt wurde, indem Sie die zugestellte Priorität von getPriority() mit der ursprünglichen Priorität von getOriginalPriority() vergleichen.
Alle Nachrichten Mit der FCM Aggregate Delivery Data API können Sie ermitteln, welcher Prozentsatz Ihrer Nachrichten an Android-Geräte herabgestuft wird. Einige Nachrichten werden möglicherweise aus den Berichten mit zusammengefassten Daten ausgeschlossen. Insgesamt sollten sie jedoch einen allgemeinen Überblick über die Raten der Nachrichtenpriorisierung geben. Weitere Informationen und Beispielcode zum Abfragen der API finden Sie im Artikel zu aggregierten Übermittlungsdaten. Sie können sich auch im API Explorer umsehen.
Weitergeleitete Benachrichtigungen: Proxy-Benachrichtigungen werden nicht in den aktuellen FCM- oder GA4-Übermittlungsmesswerten berücksichtigt. Daher kann es zu einem Rückgang der Übermittlungsmesswerte für Benachrichtigungen von bis zu 15% kommen. Verwenden Sie die FCM Aggregate Delivery Data API, um Berichte zu geproxyten Nachrichten zu erstellen.
ProxyNotificationInsightPercents
enthält den Prozentsatz der erfolgreich geproxyten Benachrichtigungen sowie Details zu Nachrichten, die nicht erfolgreich geproxyt werden konnten.
Fehlerbehebung
Achten Sie darauf, dass Benachrichtigungen für Ihre App-Instanz aktiviert sind. Wenn der Nutzer die Benachrichtigungsberechtigung für Ihre App deaktiviert hat, werden keine Benachrichtigungen gepostet. Ihre Nachrichten werden daher herabgestuft. Sie sollten prüfen, ob Benachrichtigungen aktiviert sind, bevor Sie Nachrichten mit hoher Priorität an eine Anwendungsinstanz senden.
Rufen Sie nicht zu Hause an, bevor Sie eine Benachrichtigung posten. Da ein kleiner Teil der Android-Nutzer in Netzwerken mit hoher Latenz ist, sollten Sie keine Verbindung zu Ihren Servern herstellen, bevor eine Benachrichtigung angezeigt wird. Ein Rückruf an den Server vor Ablauf der zulässigen Verarbeitungszeit kann für Nutzer in Netzwerken mit hoher Latenz ein Risiko darstellen. Füge stattdessen den Benachrichtigungsinhalt in die FCM-Nachricht ein und blende ihn sofort ein. Wenn Sie zusätzliche In-App-Inhalte auf Android-Geräten synchronisieren möchten, können Sie eine Aufgabe mit WorkManager planen, um dies im Hintergrund zu verarbeiten.