Общая информация
Для практически всех 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.