74

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

Kara
  • 5,650
  • 15
  • 48
  • 55
Sajith Amma
  • 1,049
  • 1
  • 9
  • 13

9 Answers9

83

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.

Siddharth Lele
  • 26,905
  • 15
  • 91
  • 144
  • Noting: `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....`, that is just for a specific user, correct? ie. a user may have their device turned off for a long time, thus GCM messages pile up, and if no endpoint, collapse? or is this 100 across ALL users? – Sauron Feb 25 '16 at 17:58
  • 4
    @Sauron: That's per device. – Siddharth Lele Feb 26 '16 at 04:27
  • If don't get this right, the server holds the last 100, older messages are discarded. When the device comes online, the freshest 100 messages are sent along with a limit reached message? – ir2pid Jun 14 '17 at 14:44
18

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.

Mithun
  • 2,001
  • 3
  • 15
  • 25
doylefermi
  • 199
  • 1
  • 6
9

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

AL.
  • 33,241
  • 9
  • 119
  • 257
boltup_im_coding
  • 5,337
  • 5
  • 35
  • 49
  • 1
    I just noticed when looking more at the site I added. I'm not entirely sure if androiddocs.com is an official documentation of google. @boltup_im_coding - I'd appreciate if you can add a note saying that. :) – AL. Jun 06 '16 at 06:31
8

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.

Shabbir Dhangot
  • 8,089
  • 9
  • 55
  • 75
Bhavesh Patadiya
  • 25,555
  • 14
  • 76
  • 105
4

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.

Ivan
  • 41
  • 1
  • 1
    First off, welcome to the community :) There are already several high quality answers to this question, most of which were posted three years ago when the question was asked. While it may be a worthwhile exercise to attempt to answer simple questions such as this one in order to further your programming abilities, posting this answer in its current state does not add anything to the question. – MTCoster Feb 04 '16 at 13:45
1

According to the offical document, NO limit.

Changwei Yao
  • 12,641
  • 3
  • 21
  • 22
1

You can send Max 1,000 devices per SEND_ID !

Here is original source.

user2060383
  • 958
  • 13
  • 31
1

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

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

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

Thushara
  • 499
  • 5
  • 20