O aplicativo Ionic / Cordova não recebe notificação por push em segundo plano

Meu aplicativo Android não recebe notificações por push em segundo plano e deve, de acordo com odocumentação.

Um aplicativo Android em um dispositivo Android não precisa estar em execução para receber mensagens. O sistema ativará o aplicativo Android via transmissão por intenção quando a mensagem chegar, desde que o aplicativo esteja configurado com o receptor e as permissões de transmissão adequados.

A tentativa de notificações diferentes descobriu que ele recebe as notificações por push enquanto está fechado se e somente se as notificações contiverem o atributo"mensagem", se não, apenas o descarta. (As notificações por push são apenas objetos JSON).

Minhas notificações contêm todos os tipos de atributos, incluindo "alerta", "id" e "título", mas apenas "mensagem" faz o Android ativar o aplicativo.

Exemplo de notificação quenão funciona:

{ event: 'message',
  from: '947957531940',
  collapse_key: 'do_not_collapse',
  foreground: true,
  payload: 
   { alert: 'Mensaje de Prueba',
     title: 'Titulo Mensaje de Prueba' } }

Exemplo de notificação quetrabalho:

{ event: 'message',
  from: '947957531940',
  message: 'Contenido del mensaje de prueba.',
  collapse_key: 'do_not_collapse',
  foreground: true,
  payload: 
   { alert: 'Mensaje de Prueba',
     title: 'Titulo Mensaje de Prueba',
     message: 'Contenido del mensaje de prueba.' } }

Esse é um padrão do Android ou estou fazendo algo errado no meu aplicativo?

Meu aplicativo foi desenvolvido usando o Ionic com o Cordova.

PD: Desculpe meu inglês.

EDITAR:

Este é o código push do Android dentro do módulo .run no app.js, comong-cordova instruções especificam:

if (ionic.Platform.isAndroid()){

  var androidConfig = {
    "senderID": "94*************",
    "ecb": "window.casosPush"
  };

  try{
    var pushNotification = window.plugins.pushNotification;
  } catch (ex){

  }

  // Llamada en caso de exito
  var successfn = function(result){
    //alert("Success: " + result);
  };

  // Llamada en caso de error
  var errorfn   = function(result){
    window.alert("Error: " + result);
  };

  // Llamada de casos de notificacion push
  window.casosPush = function(notification){
    switch (notification.event){
      case 'registered':
        if (notification.regid.length > 0){
          $rootScope.data.token = notification.regid;
          //alert('registration ID = ' + notification.regid);
        }
      break;

      case 'message':

        $rootScope.mensajes.unshift(notification.payload);
        $localstorage.setArray('mensajes', $rootScope.mensajes);
        alert(JSON.stringify(notification));
      break;

      case 'error':
        alert('GCM error = ' + notification.msg);
      break;

      default:
        alert('An unknown GCM event has occurred');
      break;
    }
  };
  try{

    // Llamada de registro con la plataforma GCM 
    pushNotification.register(successfn,errorfn,androidConfig);
  } catch(notification){

  }
}

questionAnswers(2)

yourAnswerToTheQuestion