I have started integrating GCM to my android application. With the help of startup tutorial I have setup the sample demo and it works fantastic. I also understood the different
I do not believe that it is possible to get that information from the GCM servers. This means that you will have to rely on another method of communication (as you described) between the client apps that successfully receive your message and your server.
The response you get from the GCM servers (as you know) simply lets you know either:
success: Number of messages that were processed without an error.
or
failure: Number of messages that could not be processed.
Meaning that you can know which registration Ids were processed properly (e.g. valid values, still registered with GCM), but not whether or not the messages were successfully delivered down to the actual device.