How to show messages without folding

In mobilen App-Push-Szenarien wirkt sich das Problem der Nachrichtenfaltung (automatisches Zusammenfassen mehrerer Benachrichtigungen) direkt auf die Nutzer:innen-Erfahrung und die Effizienz der Nachrichtenübermittlung aus. Dieser Artikel erklärt am Beispiel des AppPush-Service im Detail, wie sich eine ungefaltete Anzeige von Nachrichten sowohl mit „Notification“- als auch mit „Custom Message“-Typen realisieren lässt.

Nachrichtenfaltung in mobilen Push-Szenarien

1. Vergleich der Nachrichtentypen und Anzeige-Regeln

„Notification“-Nachrichten

  • Systemstandard-Verhalten:
App-Status Anzeige-Regeln
Im Vordergrund Faltung kann über group_id gesteuert werden
Im Hintergrund Vom Betriebssystem verwaltet; Anzeige in der Benachrichtigungsleiste mit eingeschränkten Anpassungsmöglichkeiten (z. B. Faltung, Mengenbegrenzung)
  • Einsatzgebiet: Standard-Push-Nachrichten, die Nutzer:innen über die System-Benachrichtigungsleiste erreichen sollen.

„Custom Messages“

  • Wesentlicher Vorteil:
    Unabhängig davon, ob die App im Vordergrund, Hintergrund oder bereits aus dem Speicher entfernt wurde, kann die client-seitige Logik die Anzeige der Nachricht vollständig steuern (z. B. Position des Pop-ups, Faltungslogik).

  • Einsatzgebiet:
    Hochpriorisierte Nachrichten mit individuellem Interaktionsbedarf (z. B. Bestellstatus-Updates, Instant Messaging).

2. Zwei Lösungen zur Vermeidung von Nachrichtenfaltung

Lösung 1: Verwendung von „Notification“-Nachrichten

(FCM erfordert, dass die App im Vordergrund ist; EngageLab funktioniert unabhängig vom App-Status)

Prinzip

Verwendung des Feldes group_id zur Steuerung der Nachrichten-Gruppierung:

  • Um Faltung zu verhindern: Jeder Nachricht eine eindeutige group_id zuweisen.

Umsetzungsschritte

Unterstützt ab Android SDK Version V5.0.1 und höher

Beispiel-Push-API-Payload:

{ "notification": { "android": { "group_id": "UNIQUE_GROUP_123" // Eindeutiger Wert verhindert Faltung } } }
              
              {
  "notification": {
    "android": {
      "group_id": "UNIQUE_GROUP_123"  // Eindeutiger Wert verhindert Faltung
    }
  }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Kompatibilitätshinweise

  • Unterstützt nur FCM- und EngageLab-Push-Kanäle.
  • Nachrichten können im Hintergrund trotzdem von Systembeschränkungen betroffen sein.

Lösung 2: Verwendung von „Custom Messages“ (Szenario-übergreifend)

Prinzip

Der Client ruft aktiv die showNotification-API auf, um Nachrichten darzustellen und Systembeschränkungen zu umgehen.

Umsetzungsschritte

1. Custom Message senden
{ "message": { "msg_content": "Ihre Bestellung wurde versandt", "content_type": "text", "extras": { "type": "priority_alert", "style": "popup_bottom" // Individueller Anzeigestil } } }
              
              {
  "message": {
    "msg_content": "Ihre Bestellung wurde versandt",
    "content_type": "text",
    "extras": {
      "type": "priority_alert",
      "style": "popup_bottom"  // Individueller Anzeigestil
    }
  }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen
2. Client verarbeitet Nachricht (Android-Beispiel)
public class UserReceiver extends MTCommonReceiver { @Override public void onCustomMessage(Context context, CustomMessage customMessage) { ExampleLogger.i(TAG, "onCustomMessage:" + customMessage.toString()); showNotification(context, customMessage); // Anzeige auslösen } }
              
              public class UserReceiver extends MTCommonReceiver {
    @Override
    public void onCustomMessage(Context context, CustomMessage customMessage) {
        ExampleLogger.i(TAG, "onCustomMessage:" + customMessage.toString());
        showNotification(context, customMessage); // Anzeige auslösen
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen
3. Individuelle Anzeigelogik (Faltung verhindern)
public void showNotification(Context context, CustomMessage customMessage) { NotificationMessage notificationMessage = new NotificationMessage() .setMessageId(customMessage.getMessageId()) .setNotificationId("Eigene ID; jede Benachrichtigung sollte eindeutig sein") .setTitle(customMessage.getTitle()) .setContent(customMessage.getContent()) .setgroup_id(customMessage.getMessageId()); // Schlüsselfeld zur Verhinderung der Faltung MTPushPrivatesApi.showNotification(context, notificationMessage); }
              
              public void showNotification(Context context, CustomMessage customMessage) {
    NotificationMessage notificationMessage = new NotificationMessage()
        .setMessageId(customMessage.getMessageId())
        .setNotificationId("Eigene ID; jede Benachrichtigung sollte eindeutig sein")
        .setTitle(customMessage.getTitle())
        .setContent(customMessage.getContent())
        .setgroup_id(customMessage.getMessageId()); // Schlüsselfeld zur Verhinderung der Faltung

    MTPushPrivatesApi.showNotification(context, notificationMessage);
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Funktionsvergleich

Fähigkeit „Notification“-Nachricht „Custom Message“
App-Status-Support FCM: Nur im Vordergrund; EngageLab: alle Zustände Alle Szenarien (Vorder-/Hintergrund)
UI-Flexibilität Eingeschränkt (systemabhängig) Vollständig anpassbar
Kanalabhängigkeit Benötigt bestimmte Kanäle (FCM, EngageLab) Keine Einschränkungen

3. Hinweise

  • Kanal-Kompatibilität

    • Die group_id-Funktion wird derzeit nur von FCM- und EngageLab-Kanälen unterstützt.
  • Performance-Optimierung

    • Beim Versand von hochfrequenten Nachrichten mit jeweils einzigartiger group_id sollte der Cache-Druck in der Benachrichtigungsleiste überwacht werden (empfohlene Obergrenze: ≤30 Nachrichten pro Gerät und Stunde).

4. Zusammenfassung

  • Leichte Anforderungen: Bevorzugt die Steuerung der Faltung per group_id in „Notification“-Nachrichten – geringer Entwicklungsaufwand.
  • Hohe Individualisierbarkeit: „Custom Message“ wählen – vollständige Kontrolle über das Anzeigeverhalten durch Client-Logik.
  • Hybride Strategie: Für wichtige Nachrichten (z. B. erfolgreiche Zahlung) „Custom Message“ nutzen, Standard-Nachrichten per group_id verwalten.

Mit der richtigen Strategie können Sie die Sichtbarkeit Ihrer Nachrichten und das Engagement Ihrer Nutzer:innen deutlich steigern.

icon
Vertrieb kontaktieren