Cara Mencegah Pesan Digabungkan
Dalam skenario push notification aplikasi seluler, penggabungan pesan secara langsung memengaruhi pengalaman pengguna dan efisiensi pengiriman pesan. Berdasarkan produk AppPush, artikel ini menjelaskan secara rinci cara mewujudkan tampilan pesan yang tidak digabungkan melalui konfigurasi teknis, mencakup tipe Notification dan Custom Message.

1. Perbandingan Tipe Pesan dan Aturan Tampilan
Notification
- Perilaku default sistem:
| App Status | Display Rule |
|---|---|
| Running in foreground | Logika penggabungan dapat dikontrol melalui group_id |
| Running in background | Ditangani oleh sistem operasi seluler. Secara default, pesan muncul di bilah notifikasi, dan format tampilannya dibatasi (seperti penggabungan, batas jumlah, dan sebagainya), sehingga sulit untuk menyesuaikan gaya tampilannya. |
- Skenario yang berlaku: Notifikasi push standar yang perlu menjangkau pengguna melalui bilah notifikasi sistem.
Custom Message
Keunggulan utama:
Baik aplikasi berada di foreground, background, maupun telah dibersihkan dengan sekali ketuk, format tampilan pesan dapat dikontrol sepenuhnya melalui kode sisi klien, termasuk posisi popup dan logika penggabungan.Skenario yang berlaku:
Pesan prioritas tinggi yang memerlukan interaksi yang disesuaikan, seperti pengingat status pesanan dan pesan chat instan.
2. Dua Solusi untuk Mencegah Pesan Digabungkan
Solusi 1: Menggunakan Notification
(Untuk channel FCM, aplikasi harus berada di foreground; channel EngageLab tidak membedakan foreground dan background.)
Prinsip implementasi
Gunakan field group_id untuk mengontrol logika pengelompokan pesan:
- Tanpa penggabungan: tetapkan
group_idyang unik untuk setiap pesan.
Langkah-langkah
Versi yang didukung: Android SDK V5.0.1 atau yang lebih baru
Contoh konfigurasi parameter push API (request body):
{
"notification": {
"android": {
"group_id": "UNIQUE_GROUP_123" // Gunakan nilai unik untuk mencegah penggabungan
}
}
}
Catatan kompatibilitas
- Hanya channel push FCM dan EngageLab yang didukung.
- Jika aplikasi berjalan di background, tampilan pesan tetap tunduk pada pembatasan sistem.
Solusi 2: Menggunakan Custom Message (Didukung di Semua Skenario)
Prinsip implementasi
Panggil API showNotification secara aktif di sisi klien untuk mengontrol sepenuhnya logika rendering pesan dan menghindari pembatasan sistem.
Langkah-langkah
1. Kirim custom message
{
"message": {
"msg_content": "Your order has been shipped",
"content_type": "text",
"extras": {
"type": "priority_alert",
"style": "popup_bottom" // Gaya tampilan kustom
}
}
}
2. Proses pesan di sisi klien (contoh Android)
public class UserReceiver extends MTCommonReceiver {
@Override
public void onCustomMessage(Context context, CustomMessage customMessage) {
ExampleLogger.i(TAG, "onCustomMessage:" + customMessage.toString());
showNotification(context, customMessage); // Panggil logika tampilan
}
}
3. Contoh logika tampilan kustom (untuk mencegah penggabungan)
public void showNotification(Context context, CustomMessage customMessage) {
NotificationMessage notificationMessage = new NotificationMessage()
.setMessageId(customMessage.getMessageId())
.setNotificationId("Define this yourself, but make sure each notification is different")
.setTitle(customMessage.getTitle())
.setContent(customMessage.getContent())
.setgroup_id(customMessage.getMessageId()); // Field kunci untuk mencegah penggabungan
MTPushPrivatesApi.showNotification(context, notificationMessage);
}
Perbandingan Keunggulan
| Capability | Notification | Custom Message |
|---|---|---|
| Supported app status | FCM: hanya foreground; EngageLab: foreground dan background | Semua skenario (foreground/background) |
| Style flexibility | Terbatas (bergantung pada sistem) | Sepenuhnya dapat disesuaikan |
| Channel dependency | Memerlukan channel tertentu (FCM, EngageLab) | Tanpa batasan |
3. Catatan
Kompatibilitas channel
- Fitur
group_idsaat ini hanya mendukung channel FCM dan EngageLab. Channel lain belum didukung.
- Fitur
Optimasi performa
- Saat sering mengirim pesan dengan nilai
group_idyang independen, pantau tekanan cache bilah notifikasi di sisi sistem (disarankan: ≤30 pesan per perangkat per jam).
- Saat sering mengirim pesan dengan nilai
4. Ringkasan
- Kebutuhan ringan: Prioritaskan penggunaan
group_iduntuk mengontrol logika penggabungan notifikasi, karena biaya pengembangannya lebih rendah. - Kebutuhan dengan kustomisasi tinggi: Pilih solusi custom message untuk mewujudkan tampilan yang sepenuhnya dapat dikontrol di semua skenario melalui kode sisi klien.
- Strategi hibrida: Gunakan custom message untuk notifikasi penting (seperti konfirmasi pembayaran), dan gunakan pengelolaan
group_iduntuk notifikasi reguler.
Dengan memilih solusi yang sesuai, Anda dapat secara signifikan meningkatkan tingkat pengiriman pesan penting dan pengalaman interaksi pengguna.










