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

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

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

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

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

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

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

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

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

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

Поиск проблемы

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

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