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-Geräten eine Nachricht mit normaler Priorität erhalten, in der eine Hintergrunddatensynchronisierung für Ihre App angefordert wird, können Sie mit WorkManager eine Aufgabe planen, die ausgeführt wird, wenn das Netzwerk verfügbar ist.
Hohe Priorität. FCM versucht, Nachrichten mit hoher Priorität sofort zuzustellen. So kann FCM bei Bedarf ein inaktives Gerät wecken und einige eingeschränkte Verarbeitungen ausführen (einschließlich sehr eingeschränkten Netzwerkzugriffs). 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
Mitteilungen mit hoher Priorität auf Android-Geräten sind für zeitkritische, für Nutzer sichtbare Inhalte gedacht und sollten zu Nutzerbenachrichtigungen führen. 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 7 Tage Nachrichtenverhalten, 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.
Benachrichtigungsdelegierung mit Google Play-Diensten
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 proxiebasierte Benachrichtigungen erfasst werden können, muss in Ihrer App das FCM SDK Version 24.0.0 oder höher verwendet werden.
- Möglicherweise kommt es zu Verzögerungen oder einem Rückgang bei der Anzahl der empfangenen Nachrichten im Vergleich zur Anzahl vor der Einführung von Proxy-Benachrichtigungen. Das liegt daran, dass Analysen für Proxy-Benachrichtigungen erst erfasst werden, wenn Ihre App gestartet wird. Wenn die Benachrichtigung nicht zum Öffnen der App führt, werden sie möglicherweise gar nicht erfasst.
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 noch ändern.
Wir empfehlen dringend, die Delegierung aktiviert zu lassen, da sie Vorteile für den Akku und den Arbeitsspeicher des Geräts bietet. Sie können sie aber auch auf folgende Arten 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: Legen Sie den Schlüssel
proxy
imAndroidNotification
-Objekt für die Sendeanfrage aufDENY
fest.
Depriorisierung von Nachrichten unter Android 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
gibt den Prozentsatz der erfolgreich geproxyten Benachrichtigungen sowie Details zu Nachrichten an, 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ügen Sie stattdessen den Benachrichtigungsinhalt in die FCM-Nachricht ein und zeigen Sie ihn sofort an. 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.