Ustawianie priorytetu wiadomości i zarządzanie nim

Na Androidzie masz 2 opcje przypisywania priorytetu dostarczania wiadomości następnych: normalny i wysoki priorytet. Dostarczanie wiadomości o normalnym i wysokim priorytecie działa w ten sposób:

  • Normalny priorytet. Jest to domyślny priorytet dla wiadomości danych. Wiadomości o normalnym priorytecie są dostarczane natychmiast, gdy urządzenie nie jest w trybie uśpienia. Gdy urządzenie jest w trybie Doze, przesyłanie może zostać opóźnione, aby oszczędzać baterię, dopóki urządzenie nie wyjdzie z trybu Doze. W przypadku wiadomości, które nie są tak pilne, np. powiadomień o nowych e-mailach, synchronizacji interfejsu lub synchronizacji danych aplikacji w tle, wybierz normalny priorytet przesyłania.

    Gdy na urządzeniu z Androidem otrzymasz wiadomość o normalnym priorytecie, która prosi o synchronizację danych w tle dla Twojej aplikacji, możesz zaplanować zadanie za pomocą WorkManagera, aby wykonać je, gdy będzie dostępna sieć.

  • Wysoki priorytet. FCM próbuje natychmiast dostarczać wiadomości o wysokim priorytecie, co pozwala FCM w razie potrzeby budzić uśpione urządzenie i wykonywać ograniczone przetwarzanie (w tym bardzo ograniczony dostęp do sieci). Wiadomości o wysokim priorytecie powinny zazwyczaj prowadzić do interakcji użytkownika z aplikacją lub jej powiadomieniami.

Obsługa i obniżanie priorytetu wiadomości w Androidzie

Komunikaty o wysokim priorytecie na Androidzie są przeznaczone do wyświetlania użytkownikowi treści o wysokiej pilności. Powinny prowadzić do wyświetlenia powiadomień. Jeśli FCM wykrywa wzór, w którym wiadomości nie powodują wyświetlania powiadomień dla użytkowników, Twoje wiadomości mogą zostać przypisane do normalnego priorytetu lub przedelegowane do obsługi przez usługi Google Play.

FCM używa 7 dni zachowania wiadomości, aby określić, czy należy obniżyć priorytet wiadomości, czy przekierować je; dokonuje tego niezależnie w przypadku każdej instancji aplikacji. Jeśli w odpowiedzi na wiadomości o wysokim priorytecie powiadomienia są wyświetlane w sposób widoczny dla użytkownika, nie wpłynie to na przyszłe wiadomości o wysokim priorytecie.

Delegowanie powiadomień w Usługach Google Play

Wiadomości o wysokim priorytecie (nie dane) spełniające określone kryteria są przekierowywane przez usługi Google Play zamiast być odprawiane. Oznacza to, że powiadomienia są wyświetlane przez usługi Google Play w imieniu aplikacji bez konieczności jej uruchamiania. Ma to na celu zapewnienie lepszych wrażeń użytkowników na urządzeniach z Androidem.

Pamiętaj, że wiadomości z powiadomieniami pośredniczącymi wprowadzają zmiany w sposobie raportowania danych analitycznych dotyczących otrzymanych wiadomości:

  • Aby można było raportować dane analityczne dotyczące powiadomień pośredniczących, aplikacja musi używać pakietu FCM SDK w wersji 24.0.0 lub nowszej.
  • Możesz zauważyć opóźnienia lub spadek liczby otrzymanych wiadomości w porównaniu z liczbą wiadomości przed wprowadzeniem powiadomień z użyciem serwera proxy. Dzieje się tak, ponieważ dane analityczne dotyczące powiadomień pośredniczących są raportowane dopiero po uruchomieniu aplikacji. Mogą też nie zostać nigdzie odnotowane, jeśli powiadomienie nie spowoduje otwarcia aplikacji.

Przekazywanie powiadomień w ten sposób jest domyślnym zachowaniem w przypadku aplikacji korzystających z Androida Q+ i Usług Google Play w wersji 19054000 lub nowszej. Wiadomości wysyłane przez interfejs API HTTP w wersji 1 są przekazywane przez serwer proxy, ale wiadomości wysyłane przez konsolę Firebase lub starsze interfejsy API nie będą przekazywane przez serwer proxy. Pamiętaj, że ta funkcja jest obecnie w wersji beta i może ulec zmianie.

Chociaż zdecydowanie zalecamy pozostawienie włączonej funkcji delegowania ze względu na korzyści dla baterii i pamięci urządzenia, możesz zrezygnować z tej opcji w jeden z tych sposobów:

  • Na poziomie aplikacji: dodaj w pliku manifestu aplikacji dyrektywę <meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/>.
  • Na podstawie instancji aplikacji: w przypadku instancji aplikacji ustaw fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!> w interfejsie aplikacji, w zależności od konkretnego przypadku użycia.
  • Na podstawie wiadomości: w obiekcie AndroidNotification żądania wysyłania ustaw klucz proxy na DENY.

Pomiar odsunięcia wiadomości na dalszy plan w Androidzie

  • Pojedyncze wiadomości. Podczas dostarczania wiadomości możesz określić, czy została ona pozbawiona priorytetu, porównując priorytet dostarczonej wiadomości zwracany przez metodę getPriority() z oryginalnym priorytetem zwracanym przez metodę getOriginalPriority().

  • Wszystkie wiadomości. Interfejs FCM Aggregate Delivery Data API może podać, jaki odsetek wszystkich wiadomości wysyłanych na urządzenia z Androidem jest odsyłany do kolejki. Niektóre wiadomości mogą nie być uwzględniane w raportach z danymi zbiorczymi, ale ogólnie powinny one zawierać globalny widok współczynników depriorytetyzacji wiadomości. Więcej informacji i przykładowy kod do wysyłania zapytań do interfejsu API znajdziesz w artykule o zbiorczym danych o dostawie. Możesz go też otworzyć w eksploratorze interfejsów API.

  • Powiadomienia w zastępstwie Powiadomienia przekazywane przez serwer proxy nie będą uwzględniane w bieżących danych o dostarczaniu powiadomień w FCM ani GA, więc możesz zauważyć spadek tych danych o do 15%. Aby tworzyć raporty dotyczące wiadomości przesyłanych przez serwer proxy, użyj interfejsu FCM Aggregate Delivery Data API. ProxyNotificationInsightPercents zawiera informacje o procentowym udziale powiadomień, które zostały pomyślnie przekierowane, oraz szczegóły dotyczące wiadomości, których nie udało się przekierować.

Rozwiązywanie problemów

  • Upewnij się, że w instancji aplikacji są włączone powiadomienia. Jeśli użytkownik wyłączy uprawnienia do wysyłania powiadomień w Twojej aplikacji, żadne powiadomienia nie zostaną opublikowane, a Twoje wiadomości zostaną zdepriorytetyzowane. Przed wysłaniem wiadomości o wysokim priorytecie do instancji aplikacji potwierdź, że powiadomienia są włączone.

  • Nie dzwoń do domu przed opublikowaniem powiadomienia. Ponieważ niewielka część użytkowników aplikacji mobilnych na Androida korzysta z sieci o wysokiej latencji, przed wyświetleniem powiadomienia nie otwieraj połączenia z serwerami. Nawiązywanie połączenia z serwerem przed końcem dozwolonego czasu przetwarzania może być ryzykowne dla użytkowników w sieciach o wysokiej latencji. Zamiast tego dodaj treść powiadomienia do wiadomości FCM i wyświetl ją natychmiast. Jeśli potrzebujesz synchronizacji dodatkowych treści w aplikacji na urządzeniu z Androidem, możesz zaplanować zadanie za pomocą WorkManager, aby wykonać je w tle.