74
votes

Is there any daily limit for number push notifications (GCM) can be sent to a particular android application user?

9
Do GCM charge anything for the servicepareshm

9 Answers

83
votes

Update: GCM is deprecated, use FCM

After Google replaced C2DM with GCM, they took off all limits.

SOURCE: http://developer.android.com/google/gcm/c2dm.html#history

Prior to GCM (when it was still called C2DM): https://developers.google.com/android/c2dm/#limitations)

The only limits you run into the GCM documentation is this: http://developer.android.com/google/gcm/adv.html#lifetime

Quote from the above link:

Note: There is a limit on how many messages can be stored without collapsing. That limit is currently 100. If the limit is reached, all stored messages are discarded. Then when the device is back online, it receives a special message indicating that the limit was reached. The application can then handle the situation properly, typically by requesting a full sync.

I am not sure if this is relevant to your question though.

18
votes

There is a limit of 1000 notifications at one go.

Assume you have 50000 regids. You cannot send all 50000 together. After the first 1000, you will have to separately select the next 1000 and so on.

9
votes

Doesn't seem there's a set numerical limit, but there are throttling measures in place.

To prevent abuse (such as sending a flood of messages to a device) and to optimize for the overall network efficiency and battery life of devices, GCM implements throttling of messages using a token bucket scheme.

If an application collapse key exhausts its supply of available tokens, new messages are buffered in a pending queue until new tokens become available at the time of the periodic grant.

Via: https://developers.google.com/cloud-messaging/server#throttling

Edit/Update:

Just to update, the doc for throttling can now be found in the GCM Advanced Topics: http://www.androiddocs.com/google/gcm/adv.html#throttling

8
votes

There NOT any daily limit for number push notifications (GCM) but Via Official Source GCM Advanced Topics it states that

There is a limit on how many messages can be stored without collapsing. That limit is currently 100. If the limit is reached, all stored messages are discarded. Then when the device is back online, it receives a special message indicating that the limit was reached. The application can then handle the situation properly, typically by requesting a full sync.

Hope it will Help.

4
votes

Tried to send over 1000 pushes from java code com.google.android.gcm.server.Sender "send" method, attempt fails.

https://developers.google.com/cloud-messaging/http-server-ref For Downstream HTTP messages (JSON):

param name - registration_ids type - String array

This parameter specifies a list of devices (registration tokens, or IDs) receiving a multicast message. It must contain at least 1 and at most 1000 registration tokens.

Use this parameter only for multicast messaging, not for single recipients. Multicast messages (sending to more than 1 registration tokens) are allowed using HTTP JSON format only.

1
votes

According to the offical document, NO limit.

1
votes

You can send Max 1,000 devices per SEND_ID !

Here is original source.

1
votes

registration_ids
This parameter specifies a list of devices (registration tokens, or IDs) receiving a multicast message. It must contain at least 1 and at most 1000 registration tokens.

1
votes

Since GCM moved to firebase now, messaging service is totally free.

https://firebase.google.com/pricing/