Does anyone know for how long Google will try to deliver a C2DM message before it gives up (even approximately)? 1 week? 2 weeks? 1 day? Of course assume registration is correct and everything but say, the device is offline.
Of course I've already searched to questions like this but there is no answer to my particular question.
I understand I should have a check myself with an ack of some sort, but I still would like to know when google gives up on delivery.
Thanks.
The time Google tries to deliver C2DM messages is approx. 28 days.
Related
I thought firebase messages should be stored for up to 4 weeks by default, however when i have my phone turned off for a few days, say 3 days or 6 days nothing is coming in, not even things from half an hour ago or something.
Is there a lifetime to topic subscriptions or something? since these messages are sent to a topic rather then to tokens.
I haven't tested it with sending messages to tokens yet, it is for a shoutbox from a website which i have made into a android app.
Is this due to it being send to a topic and there is a lifetime of the subscription to it?
is there a way to change that, or should i just loop through the tokens i have stored in my db at the website whenever a shout is send and send it to all?
We provide a service which has collected a lot of GCM registration ids over the last couple of years. We are wondering how many of these are still being used. We send millions of push notifications but we don't know which actually arrives on a device.
I followed the advice of some answers here on StackOverflow to check the validity of registration ids/push tokens using a dry_run flag.
That works fine to sort out tokens that are not valid (like asdf). But I also checked some ids of mine, all of them were valid. Even my oldest token (> 3 years old) of a device that is not in use anymore for 2 years now. Sending notifications to this token will never arrive on a device for sure.
Any idea on how we can check if a token/registration id still delivers notifications?
Thanks!
After some days I came across the FCM statistics panel in the google's developer console. It shows how many messages are sent and how many could be delivered to devices. This does not allow me to judge on individual tokens, but it gets me a general picture.
https://support.google.com/googleplay/android-developer/answer/2663268?hl=en
I am new to android and would like to seek for advice regarding to GCM as questions below:
For the third party server, is it free to use any programming language as long as follow exactly the request format to GCM server? Is there any example to refer for using asp.net?
For the non collapsed message, GCM discard all msg if exceed 100. The maximum number 100 is for total message of the only one device OR total of pending message in the third party server?
For collapsed message so called send-to-sync, If exceed this number GCM will only keep 4 collapse keys, with no guarantees about which ones they will be. I don't really got it, can anyone further explain to me with some examples?
For the time to live, it takes advantage of concept "now" or "never", the "never" is it alerting to trigger another attempt to send the same message again?
Currently I am testing the GCM with the demo sample from here, I experienced unstable of message receiving on emulator with 2.3.3v. In other words, the message could be never reached, or delay up to 15 minutes/more, or received immediately sometimes as well. Even I tried out on jumpnote and chrome to phone apps, that is same case. Can anyone share the experiences or solutions?
Is there anyway third party to get know the results when the message arrived targeted device?
To complete the registration, the Android application sends the registration ID to the application server. This process is via GCM or our personal components like web service or POST?
For the canonical ID, how does third party server get the ID of the last registration requested by application.
Much appreciate for any reply. Thanks.
I would like to implement a feature that only delivers messages to devices at specific periods. After the valid time, messages would be abandoned. Can anyone suggest me how to do this?
C2DM itself doesn't have such a facility so you have two choices:
Your server app only sends messages during certain times
or
Your Android app receives the C2DM messages all the time, but during certain times you ignore/handle as appropriate.
Google just released a new version of c2dm called "Google Cloud Messaging (GCM)" at I/O 2012. With GCM its possible to define a timeout for your messages.
GCM ttl section: http://developer.android.com/guide/google/gcm/adv.html#ttl
You can find my answer to a similiar question here:
https://stackoverflow.com/a/9709944/789738
Does anyone know device quota per day for Android c2dm?
PS: Im not interesting in application quota that is 200 000.
C2DM quotas is indeed based both on number of messages to a device or messages sent for any device.
It doesn't however seem to be stated anywhere what the amounts for a single device is.
When you sign up you give an estimate of how many messages you expect your application to send. (And are assigned a default quota of 200,000)
You can read about the limitations of c2dm here
And you can read about the quotas here. Here you will also be able to request more than the default 200,000 messages.
Device quota is 1000 per application per device. Here is answer on Google groups