登録 ID のソースを確認する必要があります。GCM メッセージ投稿内で C2DM 登録 ID を使用することはできません。Google のドキュメントから:
C2DM と GCM は相互運用できません。たとえば、GCM から C2DM 登録 ID に通知を投稿したり、C2DM 登録 ID を GCM 登録 ID として使用したりすることはできません。サーバー側アプリケーションから、登録 ID が C2DM からのものか GCM からのものかを追跡し、適切なエンドポイントを使用する必要があります。
C2DM から GCM に移行するとき、サーバーは、特定の登録 ID に古い C2DM 送信者が含まれているか、新しい GCM プロジェクト番号が含まれているかを認識する必要があります。これが私たちが推奨するアプローチです: 新しいアプリ バージョン (GCM を使用するもの) に、登録 ID と共にビットを送信させます。このビットは、この登録 ID が GCM 用であることをサーバーに伝えます。余分なビットを取得できない場合は、登録 ID を C2DM としてマークします。有効な登録 ID が C2DM としてマークされなくなったら、移行を完了できます。
もう 1 つ注意が必要なのは SENDER_ID です。InstanceID を使用して RegistrationID を取得する場合、SENDER_ID の形式は数値です。
InstanceID instanceID = InstanceID.getInstance(this);
String token = instanceID.getToken(SENDER_ID, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
SENDER_ID はプロジェクト名を使用できませんでした。https://developers.google.com/mobile/add を使用して「サーバー API キー」と「送信者 ID」を取得してください。