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 stanie 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 na Androidzie

Komunikaty o wysokim priorytecie na Androidzie są przeznaczone do wyświetlania użytkownikowi treści o charakterze pilnym. Powinny one być wyświetlane w postaci powiadomień. Jeśli FCMwykrywa wzór, w którym wiadomości nie powodują wyświetlania powiadomień dla użytkownika, wiadomości mogą zostać przekierowane 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 lub przekierować wiadomości; określa to niezależnie od każdego wystąpienia 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ć odsyłane do kolejki o niższym priorytecie. 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 i mogą nie być raportowane w ogóle, jeśli powiadomienie nie powoduje 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.

Zalecamy pozostawienie włączonej funkcji delegowania, ponieważ przynosi to korzyści dla baterii i pamięci urządzenia. Możesz jednak zrezygnować z tej funkcji 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 poziomie wiadomości: w obiekcie AndroidNotification żądania wysyłania ustaw klucz proxy na DENY.

Pomiar odsunięcia wiadomości na dalszy plan na urządzeniach z Androidem

  • 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 pierwotnym 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 przesyłany z niższym priorytetem. Niektóre wiadomości mogą nie być uwzględniane w raportach danych zbiorczych, ale ogólnie powinny one dawać ogólny obraz 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 dostarczaniu danych. Możesz go też przejrzeć 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 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 sprawdź, czy 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.