GCM API key vs Sender ID

I've kinda figured it out on my own:

  1. API key is generated on console and is used by 3rd party server to authenticate/authorize with GCM.
  2. Sender ID is used by Android app to register a physical device with GCM to be able to receive notifications from GCM from particular 3rd party server.
  3. Registration ID is a result of registration of physical device to GCM with Sender ID.

There are two keys or IDs on which GCM process rests upon. One is registrationID that is created at Android application side and sent to the Server application where API Key already stored. Message is push to the device using a combination of registration Id and API Key.

The regisration ID is generated by GCM servers when android application makes request to them. Keeping the already created project ID (at Google dev console).


It depends on how your thirds party server is going to work, but in general it works like this:

  1. The app sends one or more sender Ids which are Google Project Numbers to the GCM servers.
  2. GCM returns a registration Id, which the app uses to register with the server.
  3. The server uses the registration Id and the API key to send a message to the device via GCM.
  4. When sending the message GCM will ensure that the Google Project Number and API key match and match what was used to create the registration Id. If they do it sends the message.

Information on how the developers get this information can be found in the GCM documentation: http://developer.android.com/google/gcm/gs.html

Depending on your needs there are third party commercial sever solutions available.