Наша цель – всегда доставлять все сообщения, отправленные с помощью FCM. Однако отправка всех сообщений может привести к тому, что пользователи будут недовольны. В других случаях мы устанавливаем ограничения, чтобы FCM оставался масштабируемым сервисом для всех отправителей. Типы лимитов и квот, описанные в этом разделе, помогают нам поддерживать баланс между этими важными факторами.
Ограничение количества исходящих сообщений
В HTTP v1 API введены квоты на количество запросов в минуту, которые вы можете отправить всем конечным точкам. Они выделяются на один проект. Квота по умолчанию в 600 000 писем в минуту покрывает потребности более 99% разработчиков, обеспечивая стабильность системы и минимизируя влияние проектов с резкими скачками трафика.FCM
Резкие скачки трафика могут привести к ошибкам, связанным с превышением квоты. Если квота превышена, система возвращает код статуса HTTP 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED"), пока квота не будет восстановлена в следующую минуту. Ответы с кодом 429 также могут возвращаться при перегрузке, поэтому мы настоятельно рекомендуем обрабатывать их в соответствии с опубликованными рекомендациями.
Примечания
- Квота на исходящий трафик учитывает письма, а не запросы.
- Ошибки клиента (коды статуса HTTP 400–499) учитываются (кроме 429).
- Квоты действуют в пределах одной минуты, но эти минуты не привязаны к часам.
Квота на мониторинг
Посмотреть квоту, использование и ошибки можно в консоли Google Cloud:
Откройте консоль Google Cloud.
Выберите API и сервисы.
В списке таблиц выберите Firebase Cloud Messaging API.
Выберите КВОТЫ И СИСТЕМНЫЕ ОГРАНИЧЕНИЯ.
Как запросить увеличение квоты
Прежде чем запрашивать увеличение квоты, убедитесь, что:
- Вы регулярно используете ≥ 80% квоты в течение как минимум пяти минут подряд каждый день.
- Доля ошибок клиента составляет менее 5 %, особенно в периоды пиковой нагрузки.
- Вы соблюдаете рекомендации по отправке массовых рассылок.
Если вы соответствуете этим критериям, вы можете отправить запрос на увеличение квоты до 25% в консоли Google Cloud, используя следующие инструменты:
- Откройте раздел КВОТЫ И СИСТЕМНЫЕ ОГРАНИЧЕНИЯ.
- В таблице выберите строку Отправка запросов в минуту.
- Нажмите кнопку Edit (Изменить).
- Следуйте инструкциям, чтобы отправить запрос.
FCM приложит все усилия, чтобы выполнить запрос (увеличение не гарантируется).
Если вам требуется увеличить квоту на исходящие сообщения из-за предстоящего запуска или временного мероприятия, отправьте запрос на увеличение квоты через службу поддержки Firebase. Запросите квоту не позднее чем за 15 дней до начала мероприятия, чтобы у нас было достаточно времени на обработку запроса. Для крупных запросов (более 18 миллионов писем в минуту) требуется уведомление не менее чем за 30 дней. Мы можем одобрить только два события с временным увеличением квоты в год. Общая продолжительность временных квот в течение года не должна превышать 30 дней. Запросы на запуск и специальные мероприятия по-прежнему должны соответствовать требованиям к доле ошибок на стороне клиента и рекомендациям.
Подробнее о квотах FCM…
Ограничения на количество сообщений в теме и регулирование рассылки
Подробнее о квотах и ограничениях на отправку сообщений в темы…
Ограничение количества сворачиваемых сообщений
Как описано в разделе Сворачиваемые сообщения, они представляют собой уведомления без контента, которые сворачиваются друг над другом. Если разработчик слишком часто отправляет одно и то же сообщение в приложение, мы задерживаем его, чтобы снизить нагрузку на аккумулятор устройства.
Например, если вы отправляете большое количество новых запросов на синхронизацию электронной почты на одно устройство, мы можем задержать следующий запрос на несколько минут, чтобы устройство могло синхронизироваться с более низкой средней скоростью. Ограничение выполняется исключительно для того, чтобы снизить влияние на батарею.
Если вам нужно отправлять большое количество сообщений за короткий промежуток времени, то нескладывающиеся сообщения могут быть подходящим вариантом. В таких сообщениях обязательно должен быть контент, чтобы снизить расход заряда батареи.
Мы ограничили количество сворачиваемых сообщений до 20 на приложение на устройство. Каждые три минуты лимит пополняется на одно сообщение.
Максимальная частота отправки сообщений на одно устройство
На устройствах Android можно отправлять до 240 сообщений в минуту и 5000 сообщений в час на одно устройство. Высокий порог позволяет учитывать кратковременные всплески трафика, например когда пользователи быстро обмениваются сообщениями в чате. Это ограничение предотвращает ошибки в логике отправки, которые могут привести к непреднамеренной разрядке батареи устройства.
В iOS мы возвращаем ошибку, если частота превышает ограничения APNs.