How to show messages without folding
Dans les scénarios de notification push sur application mobile, le problème de repliement des messages impacte directement l'expérience utilisateur et l'efficacité de la délivrabilité. Cet article, basé sur le service AppPush, explique en détail comment obtenir un affichage non replié des messages en utilisant les types Notification et Message personnalisé.

1. Comparaison des types de messages et des règles d'affichage
Messages de notification
- Comportement par défaut du système :
| État de l'app | Règles d'affichage |
|---|---|
| Premier plan | Peut contrôler le repliement via group_id |
| Arrière-plan | Géré par le système du téléphone ; affiché dans la barre de notification avec des options de personnalisation limitées (ex : repliement, limites de quantité) |
- Cas d'utilisation : Messages push standards devant atteindre les utilisateurs via la barre de notification système.
Messages personnalisés
Avantage clé :
Que l'application soit au premier plan, en arrière-plan ou supprimée de la mémoire, le code côté client peut contrôler entièrement l'affichage du message (ex : position du pop-up, logique de repliement).Cas d'utilisation :
Messages prioritaires nécessitant une interaction personnalisée (ex : mises à jour de statut de commande, messagerie instantanée).
2. Deux solutions pour éviter le repliement des messages
Solution 1 : Utiliser les messages de notification
(FCM nécessite que l'app soit au premier plan ; EngageLab fonctionne quel que soit l'état de l'app)
Principe
Utiliser le champ group_id pour contrôler le regroupement des messages :
- Pour éviter le repliement : attribuer un
group_idunique à chaque message.
Étapes de mise en œuvre
Pris en charge à partir de la version V5.0.1 du SDK Android
Exemple de payload Push API :
{
"notification": {
"android": {
"group_id": "UNIQUE_GROUP_123" // Valeur unique pour éviter le repliement
}
}
}
Notes de compatibilité
- Prend uniquement en charge les canaux push FCM et EngageLab.
- Les messages peuvent tout de même être soumis aux restrictions système lorsque l'app est en arrière-plan.
Solution 2 : Utiliser les messages personnalisés (prise en charge tous scénarios)
Principe
Le client appelle activement l'API showNotification pour afficher les messages et contourner les restrictions système.
Étapes de mise en œuvre
1. Envoyer un message personnalisé
{
"message": {
"msg_content": "Votre commande a été expédiée",
"content_type": "text",
"extras": {
"type": "priority_alert",
"style": "popup_bottom" // Style d'affichage personnalisé
}
}
}
2. Traitement côté client (exemple Android)
public class UserReceiver extends MTCommonReceiver {
@Override
public void onCustomMessage(Context context, CustomMessage customMessage) {
ExampleLogger.i(TAG, "onCustomMessage:" + customMessage.toString());
showNotification(context, customMessage); // Déclencher l'affichage
}
}
3. Logique d'affichage personnalisée (éviter le repliement)
public void showNotification(Context context, CustomMessage customMessage) {
NotificationMessage notificationMessage = new NotificationMessage()
.setMessageId(customMessage.getMessageId())
.setNotificationId("Votre propre ID ; chaque notification doit être unique")
.setTitle(customMessage.getTitle())
.setContent(customMessage.getContent())
.setgroup_id(customMessage.getMessageId()); // Champ clé pour éviter le repliement
MTPushPrivatesApi.showNotification(context, notificationMessage);
}
Comparaison des capacités
| Capacité | Message de notification | Message personnalisé |
|---|---|---|
| Prise en charge de l'état de l'app | FCM : seulement premier plan ; EngageLab : tous états | Tous scénarios (premier plan/arrière-plan) |
| Flexibilité UI | Limitée (dépend du système) | Entièrement personnalisable |
| Dépendance canal | Nécessite des canaux spécifiques (FCM, EngageLab) | Aucune restriction |
3. Remarques
Compatibilité des canaux
- La fonctionnalité
group_idne prend actuellement en charge que les canaux FCM et EngageLab.
- La fonctionnalité
Optimisation des performances
- Lors de l'envoi de messages à haute fréquence avec un
group_idunique, surveillez la pression sur le cache de la barre de notification (limite suggérée : ≤30 messages par appareil et par heure).
- Lors de l'envoi de messages à haute fréquence avec un
4. Résumé
- Besoins légers : Privilégiez l'utilisation de
group_idpour contrôler le repliement dans les messages de notification — faible coût de développement. - Besoins hautement personnalisés : Optez pour le Message personnalisé — permet un contrôle total du comportement d'affichage via la logique client.
- Stratégie hybride : Utilisez le Message personnalisé pour les messages importants (ex : paiement réussi), et gérez les messages standards via
group_id.
En choisissant la bonne stratégie, vous pouvez considérablement améliorer la visibilité des messages et l'engagement des utilisateurs.

