У вас есть два варианта назначения приоритета доставки нисходящим сообщениям на Android: обычный и высокий приоритет. Доставка обычных и высокоприоритетных сообщений работает следующим образом:
Нормальный приоритет. Это приоритет по умолчанию для сообщений с данными . Сообщения с обычным приоритетом доставляются немедленно, когда устройство не находится в спящем режиме. Когда устройство находится в спящем режиме , доставка может быть отложена для экономии заряда батареи до тех пор, пока устройство не выйдет из спящего режима. Для менее срочных сообщений, таких как уведомления о новых электронных письмах, синхронизация пользовательского интерфейса или синхронизация данных приложения в фоновом режиме, выберите обычный приоритет доставки.
При получении на Android сообщения с обычным приоритетом, запрашивающего фоновую синхронизацию данных для вашего приложения, вы можете запланировать задачу с помощью WorkManager для ее обработки, когда сеть будет доступна.
Высокий приоритет. FCM пытается доставить сообщения с высоким приоритетом немедленно, позволяя FCM при необходимости разбудить спящее устройство и выполнить некоторую ограниченную обработку (включая очень ограниченный доступ к сети). Сообщения с высоким приоритетом обычно должны приводить к взаимодействию пользователя с вашим приложением или его уведомлениями.
Использование сообщений с высоким приоритетом для Android
Сообщения с высоким приоритетом на Android предназначены для чувствительного ко времени, видимого пользователю контента и должны приводить к уведомлениям, ориентированным на пользователя. Если FCM обнаруживает закономерность, при которой сообщения не приводят к уведомлениям пользователя, вашим сообщениям может быть присвоен обычный приоритет. FCM использует поведение сообщений за 7 дней при определении необходимости снижения приоритета сообщений; он делает это определение независимо для каждого экземпляра вашего приложения. Если в ответ на сообщения с высоким приоритетом уведомления отображаются так, чтобы это было видно пользователю, то ваши будущие сообщения с высоким приоритетом не будут лишены приоритета. Это применимо независимо от того, отображается ли уведомление FCM SDK через сообщение уведомления или уведомление, созданное разработчиком через сообщение данных .
Измерение снижения приоритетности сообщений на Android
Индивидуальные сообщения. При доставке вы можете определить, был ли удален приоритет отдельного сообщения или нет, сравнивая его приоритет доставки из getPriority() с его исходным приоритетом из getOriginalPriority().
Все сообщения. API совокупных данных доставки FCM может сообщить, какой процент всех ваших сообщений на Android теряет приоритет. Некоторые сообщения могут быть исключены из сводных отчетов по данным, но в целом они должны давать глобальное представление о степени деприоритизации сообщений. Дополнительную информацию и пример кода для запроса API см. в нашей статье об агрегированных данных о доставке ; его также можно изучить с помощью API Explorer .
Поиск неисправностей
Убедитесь, что в вашем экземпляре приложения включены уведомления. Если пользователь отключил разрешение на уведомления для вашего приложения, ни одно из ваших уведомлений не будет опубликовано, в результате ваши сообщения будут лишены приоритета. Прежде чем отправлять сообщения с высоким приоритетом экземпляру приложения, вам следует убедиться, что уведомления включены .
Не звоните домой до отправки уведомления. Поскольку небольшая часть мобильных пользователей Android пользуется сетями с высокой задержкой, не открывайте соединение с серверами до отображения уведомления. Обратный вызов сервера до окончания разрешенного времени обработки может быть рискованным для пользователей в сетях с высокой задержкой. Вместо этого включите содержимое уведомления в сообщение FCM и немедленно отобразите его. Если вам нужно синхронизировать дополнительный контент в приложении на Android, вы можете запланировать задачу с помощью WorkManager , чтобы она выполнялась в фоновом режиме.