Na Androidzie masz 2 opcje przypisywania priorytetu dostarczania wiadomościom 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 one być wyświetlane w postaci 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; określa to niezależnie dla 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 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.
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 kluczproxy
naDENY
.
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 jej 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 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 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 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 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, nie otwieraj połączenia z serwerami przed wyświetleniem powiadomienia. 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ą od razu. 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.