Общая информация

Для практически всех REST методов отсутствуют ограничения на количество и частоту вызовов.
Лимиты могут появиться в индивидуальном порядке, если вызовы приложения негативно влияют на работу API.

При попадании на лимит будет приходить ошибка FLOOD_BLOCKED (см. обработка ошибок) с предлагаемым временем задержки перед следующим запросом (wait_millis).

Ограничение количества нотификаций

Количество нотификаций, которое приложение сможет донести до своих пользователей в течении суток (с 4:00 и до 4:00 следующего утра). По достижению лимита, прекращается доставка (sendMass) и запрещается отправка (sendSimple) нотификаций. В 4:00 счетчик сбрасывается, и ограничения снимаются.

Величина лимита устанавливается в отдельности для каждого приложения по определенной формуле. Данные для формулы берутся из статистических данных, которые обновляются в 4:00 каждого утра.

Статистические данные, которые используются в формуле для определения величины лимита:

  • среднее количество отправленных нотификаций в сутки на одного активного пользователя по всем приложениям. Активный пользователь – это пользователь, который авторизовался в приложении хотя бы один раз в течении последних 6 месяцев. Данные по отправленным нотификациям берутся за период в 7 дней.
  • количество активных пользователей у приложения
  • качество реакций на отправленные нотификации за последние 7 дней для данного приложения. Качество – это отношение количества всех позитивных откликов на нотификации к количеству негативных.

Качество реакций на нотификации приложения напрямую влияет на величину лимита, который будет выделен ему в следующий период. Чем выше оно относительно среднего по порталу, тем больше нотификаций выделится приложению в следующий период. И, напротив, если качество ниже общепортального, то и нотификаций оно сможет отправить меньше.

Влиять на качество реакций приложение может следующими способами:

  • повышать общее качество нотификаций;
  • таргетировать рассылку на более узкие, но специфичные наборы пользователей, которым они будут интересны;
  • увеличение числа активных пользователей пропорционально увеличивает лимит.

На странице статистики приложения присутствует панель для мониторинга счетчика нотификаций, величины выделенного лимита, а также входных данных формулы расчета лимита.

У пользователя одновременно может быть до 6 нотификаций от приложения (5 массовых и 1 персональная).

Для лучшего таргетирования рассылок можно использовать маски для пользователей.

Маска пользователя

Мы предоставляем ресурсы каждому приложению по хранению информации о пользователе размером 32 бита. users.updateMasks. Этот метод позволяет хранить на стороне портала любой набор битов и так же его считывать. Например, помечать определенным битом пользователей, попадающих под какую-либо категорию, или совершивших какое-либо важное действие. Либо сбрасывать его.

Определив категории, а затем с помощью маски помечая всех нужных пользователей (пометку можно делать постепенно, при совершении пользователями определенных действий, достижений и прочее), у приложения появляются свои пересекающиеся наборы. Этими наборами можно «играться» для более узкого таргетировании нотификаций. Для этого в сам метод были добавлены опции, с помощью которых нотификации будут доходить только до тех пользователей, у которых критерий маски будет удовлетворять указанному условию.

Несмотря на то, что маска пользователя в основном предназначена для использования как фильтра при рассылке sendMass нотификаций, приложение может использовать её для хранения любой другой информации.

Метод notifications.sendMass является достаточно тяжеловесным, количество его вызовов ограничено до 30 в сутки. Данный метод рекомендуется использовать для достаточно больших групп пользователей (например, >= 1 млн). Для меньших выборок лучше рассылать индивидуальные нотификации методом notifications.sendSimple.