Cara menampilkan pesan tanpa dilipat
Dalam skenario push aplikasi mobile, masalah pesan terlipat secara langsung memengaruhi pengalaman pengguna dan efisiensi pengiriman pesan. Artikel ini, berdasarkan layanan AppPush, menjelaskan secara detail cara menampilkan pesan tanpa lipatan menggunakan tipe Notification dan Custom Message.

1. Perbandingan Tipe Pesan dan Aturan Tampilan
Pesan Notifikasi
- Perilaku Bawaan Sistem:
| Status Aplikasi | Aturan Tampilan |
|---|---|
| Latar Depan | Dapat mengontrol lipatan menggunakan group_id |
| Latar Belakang | Diatur oleh sistem ponsel; tampil di bar notifikasi dengan opsi kustomisasi terbatas (misal: lipatan, batas jumlah) |
- Kasus Penggunaan: Pesan push standar yang perlu menjangkau pengguna melalui bar notifikasi sistem.
Custom Message
Keunggulan Utama:
Terlepas dari apakah aplikasi berada di latar depan, latar belakang, atau sudah dibersihkan dari memori, kode sisi klien dapat sepenuhnya mengontrol tampilan pesan (misal: posisi pop-up, logika lipatan).Kasus Penggunaan:
Pesan prioritas tinggi yang membutuhkan interaksi khusus (misal: pembaruan status pesanan, pesan instan).
2. Dua Solusi untuk Mencegah Pesan Terlipat
Solusi 1: Gunakan Pesan Notifikasi
(FCM memerlukan aplikasi di latar depan; EngageLab berfungsi di semua status aplikasi)
Prinsip
Gunakan field group_id untuk mengontrol pengelompokan pesan:
- Untuk mencegah lipatan: berikan nilai
group_idyang unik pada setiap pesan.
Langkah Implementasi
Didukung mulai Android SDK versi V5.0.1 ke atas
Contoh Payload Push API:
{
"notification": {
"android": {
"group_id": "UNIQUE_GROUP_123" // Nilai unik mencegah lipatan
}
}
}
Catatan Kompatibilitas
- Hanya mendukung kanal push FCM dan EngageLab.
- Pesan tetap dapat terpengaruh pembatasan sistem saat aplikasi di latar belakang.
Solusi 2: Gunakan Custom Message (Dukungan Semua Skenario)
Prinsip
Klien secara aktif memanggil API showNotification untuk merender pesan dan melewati pembatasan sistem.
Langkah Implementasi
1. Kirim Custom Message
{
"message": {
"msg_content": "Pesanan Anda telah dikirim",
"content_type": "text",
"extras": {
"type": "priority_alert",
"style": "popup_bottom" // Gaya tampilan khusus
}
}
}
2. Klien Menangani Pesan (Contoh Android)
public class UserReceiver extends MTCommonReceiver {
@Override
public void onCustomMessage(Context context, CustomMessage customMessage) {
ExampleLogger.i(TAG, "onCustomMessage:" + customMessage.toString());
showNotification(context, customMessage); // Memicu tampilan
}
}
3. Logika Tampilan Khusus (Cegah Lipatan)
public void showNotification(Context context, CustomMessage customMessage) {
NotificationMessage notificationMessage = new NotificationMessage()
.setMessageId(customMessage.getMessageId())
.setNotificationId("ID Anda sendiri; setiap notifikasi harus unik")
.setTitle(customMessage.getTitle())
.setContent(customMessage.getContent())
.setgroup_id(customMessage.getMessageId()); // Field kunci untuk mencegah lipatan
MTPushPrivatesApi.showNotification(context, notificationMessage);
}
Perbandingan Kemampuan
| Kemampuan | Pesan Notifikasi | Custom Message |
|---|---|---|
| Dukungan Status App | FCM: Hanya latar depan; EngageLab: Semua status | Semua skenario (latar depan/belakang) |
| Fleksibilitas UI | Terbatas (tergantung sistem) | Sepenuhnya dapat dikustomisasi |
| Ketergantungan Kanal | Perlu kanal khusus (FCM, EngageLab) | Tanpa batasan |
3. Catatan
Kompatibilitas Kanal
- Fungsi
group_idsaat ini hanya mendukung kanal FCM dan EngageLab.
- Fungsi
Optimasi Performa
- Jika mengirim pesan dengan frekuensi tinggi dan
group_idunik, pantau beban cache bar notifikasi (disarankan ≤30 pesan per perangkat per jam).
- Jika mengirim pesan dengan frekuensi tinggi dan
4. Ringkasan
- Kebutuhan Sederhana: Sebaiknya gunakan
group_iduntuk mengontrol lipatan pada pesan Notifikasi — biaya pengembangan rendah. - Kebutuhan Kustomisasi Tinggi: Pilih Custom Message — memberi kontrol penuh atas perilaku tampilan melalui logika klien.
- Strategi Hybrid: Gunakan Custom Message untuk pesan penting (misal: pembayaran berhasil), dan kelola pesan standar melalui
group_id.
Dengan memilih strategi yang tepat, Anda dapat meningkatkan visibilitas pesan dan keterlibatan pengguna secara signifikan.










