Push Throttling

Decrease rate at which messages are sent to users.

Throttling allows you to control the send speed of messages to help you manage your traffic. If you send messages to a large audience but don't have the server capacity to handle a lot of concurrent visitors to your website or app, controlling the amount of sends makes it less likely you will experience a large surge in traffic.

Enable throttling for all push messages within Settings > Messaging. Once enabled, this can be overridden at a per-message basis. To improve the campaign performance, we convert the throttling limit at a per-second level. This results in contiguous processing of different batches and avoids the delay between the batches.

Note: To ensure your notifications are delivered in a timely manner, throttling rates are automatically adjusted so that a campaign will be fully delivered within 24 hours. See the throttling time limit section below.

Throttling is only available for push notifications sent from the Create notification API or Messages > New Push. It is not available for Journeys and Automated Messages.

Per-message Throttle Override

You can override your app-level throttle setting for any given notification on the notification creation form by ticking the 'Override throttling setting' tick box or the API throttle_rate_per_minute property.

If you want to not apply throttling to a given message, you can put a '0' in the messages per minute field:

Differences in throttling rate

You might notice a difference in the throttling rate set vs implemented. This is due to converting the 'minute-level' setting from the UI to' seconds-level' throttling.

For example, the throttling rate of 1019 messages per minute will be converted to 16 messages per second:

(THROTTLE RATE / SECONDS PER MINUTE) * SECONDS PER MINUTE = ACTUAL SENDS PER MINUTE

(1019 / 60) = 16.9833333333

OneSignal cannot send part of a message, so it's rounded down to 16:

16 * 60 = 960

A difference of 59 (1019 - 960) between the throttling rate set vs actual delivery.

Throttling Limitations

Throttling time limit

Our platform restricts throttled delivery to within a 24-hour period from when the message was sent. This means that any delivery attempt that would exceed this duration due to the specified throttling rate will be automatically adjusted to comply with this limit. For example, if you are sending at a 10-message-per-minute throttle rate to 20,000 users, then we will increase it to about 14 messages a minute so that the sends can be completed within 24 hours.

Timezone and Intelligent Delivery limits

Throttling will take precedence over timezone and intelligent delivery options. If throttling is enabled and sending a notification with Timezone or Intelligent Delivery, then the timezone and intelligent delivery options will be ignored.

If you want to use Timezone or Intelligent Delivery Options, you must disable Throttling for that send. Override throttling setting to 0 and for API sent notifications set throttle_rate_per_minute: 0.

Journeys & Automated Message limits

Journeys and Automated messages do not support throttling. These are triggered when new audiences enter a segment and so tend to be dispersed over time.