Установка и управление приоритетом сообщения

У вас есть два варианта назначения приоритета доставки нисходящим сообщениям на Android: обычный и высокий приоритет. Доставка обычных и высокоприоритетных сообщений работает следующим образом:

  • Нормальный приоритет. Это приоритет по умолчанию для сообщений с данными . Сообщения с обычным приоритетом доставляются немедленно, когда устройство не находится в спящем режиме. Когда устройство находится в спящем режиме , доставка может быть отложена для экономии заряда батареи до тех пор, пока устройство не выйдет из спящего режима. Для менее срочных сообщений, таких как уведомления о новых электронных письмах, синхронизация пользовательского интерфейса или синхронизация данных приложения в фоновом режиме, выберите обычный приоритет доставки.

    При получении сообщения с обычным приоритетом на Android, которое запрашивает фоновую синхронизацию данных для вашего приложения, вы можете запланировать задачу с помощью WorkManager для ее обработки, когда сеть будет доступна.

  • Высокий приоритет. FCM пытается доставить сообщения с высоким приоритетом немедленно, позволяя FCM при необходимости разбудить спящее устройство и выполнить некоторую ограниченную обработку (включая очень ограниченный доступ к сети). Сообщения с высоким приоритетом обычно должны приводить к взаимодействию пользователя с вашим приложением или его уведомлениями.

Использование сообщений с высоким приоритетом для Android

Сообщения с высоким приоритетом на Android предназначены для чувствительного ко времени, видимого пользователю контента и должны приводить к уведомлениям, ориентированным на пользователя. Если FCM обнаруживает закономерность, при которой сообщения не приводят к уведомлениям пользователя, вашим сообщениям может быть присвоен обычный приоритет. FCM использует поведение сообщений за 7 дней при определении необходимости снижения приоритета сообщений; он делает это определение независимо для каждого экземпляра вашего приложения. Если в ответ на сообщения с высоким приоритетом уведомления отображаются так, чтобы это было видно пользователю, то ваши будущие сообщения с высоким приоритетом не будут лишены приоритета. Это применимо независимо от того, отображается ли уведомление FCM SDK через сообщение уведомления или уведомление, созданное разработчиком через сообщение данных .

Измерение снижения приоритетности сообщений на Android

  • Индивидуальные сообщения. При доставке вы можете определить, был ли удален приоритет отдельного сообщения или нет, сравнивая его приоритет доставки из getPriority() с его исходным приоритетом из getOriginalPriority().

  • Все сообщения. API совокупных данных доставки FCM может сообщить, какой процент всех ваших сообщений на Android теряет приоритет. Некоторые сообщения могут быть исключены из сводных отчетов по данным, но в целом они должны давать глобальное представление о степени деприоритизации сообщений. Дополнительную информацию и пример кода для запроса API см. в нашей статье об агрегированных данных о доставке ; его также можно изучить с помощью проводника API .

Поиск неисправностей

  • Убедитесь, что в вашем экземпляре приложения включены уведомления. Если пользователь отключил разрешение на уведомления для вашего приложения, ни одно из ваших уведомлений не будет опубликовано, в результате ваши сообщения будут лишены приоритета. Вам следует убедиться, что уведомления включены, прежде чем отправлять сообщения с высоким приоритетом в экземпляр приложения.

  • Не звоните домой до отправки уведомления. Поскольку небольшая часть мобильных пользователей Android пользуется сетями с высокой задержкой, не открывайте соединение с серверами до отображения уведомления. Обратный вызов сервера до окончания разрешенного времени обработки может быть рискованным для пользователей в сетях с высокой задержкой. Вместо этого включите содержимое уведомления в сообщение FCM и немедленно отобразите его. Если вам нужно синхронизировать дополнительный контент в приложении на Android, вы можете запланировать задачу с помощью WorkManager , чтобы она выполнялась в фоновом режиме.