Anda memiliki dua opsi untuk menetapkan prioritas pengiriman pesan downstream di Android: prioritas normal dan tinggi. Pengiriman pesan berprioritas normal dan tinggi berfungsi sebagai berikut:
Prioritas normal. Ini adalah prioritas default untuk pesan data. Pesan berprioritas normal segera dikirim saat perangkat tidak sedang dalam mode tidur. Saat perangkat sedang dalam mode Istirahat, pengiriman mungkin akan ditunda untuk menghemat baterai hingga perangkat keluar dari mode Istirahat. Untuk pesan yang kurang mendesak dari segi waktu, misalnya notifikasi email baru, menjaga agar UI selalu sinkron, atau menyinkronkan data aplikasi di latar belakang, pilihlah prioritas pengiriman normal.
Saat menerima pesan berprioritas normal di Android yang meminta sinkronisasi data latar belakang untuk aplikasi, Anda dapat menjadwalkan tugas dengan WorkManager untuk menanganinya saat jaringan tersedia.
Prioritas tinggi. FCM berupaya untuk segera mengirimkan pesan berprioritas tinggi, sehingga FCM bisa mengaktifkan perangkat yang sedang dalam mode tidur jika diperlukan, dan menjalankan beberapa pemrosesan terbatas (termasuk akses jaringan yang sangat terbatas). Pesan berprioritas tinggi umumnya menimbulkan interaksi pengguna dengan aplikasi Anda atau notifikasinya.
Penanganan dan penurunan prioritas pesan di Android
Pesan berprioritas tinggi di Android dimaksudkan untuk konten yang sensitif terhadap waktu dan terlihat oleh pengguna, serta akan menghasilkan notifikasi yang ditampilkan kepada pengguna. Jika FCM mendeteksi pola di mana pesan yang tidak menghasilkan notifikasi yang ditampilkan kepada pengguna, prioritas terhadap pesan Anda mungkin diturunkan menjadi prioritas normal atau didelegasikan untuk ditangani oleh Layanan Google Play.
FCM menggunakan perilaku pesan selama 7 hari saat menentukan penurunan prioritas atau melakukan proxy terhadap pesan; hal ini membuat penentuan ini berlaku secara independen untuk setiap instance aplikasi. Jika, sebagai respons atas pesan prioritas tinggi, notifikasi ditampilkan dengan cara agar terlihat oleh pengguna, maka pesan berprioritas tinggi Anda berikutnya tidak akan terdampak.
Delegasi notifikasi dengan layanan Google Play
Pesan notifikasi berprioritas tinggi (bukan pesan data) yang memenuhi kriteria akan di-proxy-kan oleh Layanan Google Play, bukan diturunkan prioritasnya. Artinya, notifikasi ditampilkan oleh layanan Google Play atas nama aplikasi, tanpa perlu menjalankan aplikasi. Hal ini dilakukan untuk memberikan pengalaman pengguna yang lebih baik secara keseluruhan pada perangkat Android.
Perlu diperhatikan bahwa pesan notifikasi yang di-proxy-kan berisi perubahan pada cara pelaporan analisis yang terkait dengan pesan yang diterima:
- Agar analisis untuk notifikasi yang di-proxy-kan dapat dilaporkan, aplikasi Anda harus menggunakan FCM SDK versi 24.0.0 atau yang lebih tinggi.
- Anda mungkin melihat adanya penundaan atau penurunan dalam jumlah pesan yang diterima dibandingkan dengan jumlah sebelum diperkenalkannya notifikasi yang di-proxy-kan. Hal ini karena analisis untuk notifikasi yang di-proxy-kan hanya dilaporkan setelah aplikasi Anda dimulai, dan mungkin tidak dilaporkan sama sekali jika notifikasi tidak menyebabkan aplikasi terbuka.
Mem-proxy-kan pesan notifikasi dengan cara ini adalah perilaku default untuk aplikasi yangmenggunakan Android Q+ dan layanan Google Play versi 19054000 atau yang lebih baru. Pesan yang dikirim melalui HTTP v1 API akan di-proxy-kan, tetapi pesan yang dikirim melalui Firebase console atau API lama tidak akan di-proxy-kan. Perhatikan bahwa fitur ini masih dalam versi Beta, dan dapat berubah sewaktu-waktu.
Meskipun kami sangat menyarankan agar delegasi tetap diaktifkan karena manfaatnya bagi baterai dan memori perangkat, Anda dapat memilih untuk tidak menggunakan perilaku ini dengan salah satu cara berikut:
- Pada basis tingkat aplikasi: di manifes aplikasi Anda, tambahkan perintah
<meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/>
. - Pada basis instance aplikasi: Untuk instance aplikasi, tetapkan
fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!>
dalam alur UI untuk aplikasi Anda, yang bergantung pada kasus penggunaan tertentu. - Pada basis per pesan: Tetapkan kunci
proxy
keDENY
di objekAndroidNotification
untuk permintaan kirim.
Mengukur penurunan prioritas pesan di Android
Pesan Perorangan. Saat pengiriman, Anda dapat menentukan apakah pesan tertentu prioritasnya diturunkan atau tidak dengan membandingkan prioritas pengirimannya, dari getPriority(), dengan prioritas aslinya, dari getOriginalPriority().
Semua Pesan. FCMA ggregate Delivery Data API dapat melaporkan persentase dari semua pesan Anda ke Android yang diturunkan prioritasnya. Beberapa pesan mungkin dihilangkan dari laporan data gabungan, tetapi secara keseluruhan pesan tersebut harus memberikan tampilan global dari tingkat penurunan prioritas pesan. Lihat artikel kami tentang data pengiriman gabungan untuk mengetahui informasi lebih lanjut dan kode contoh untuk membuat kueri API; API ini juga dapat dilihat dari APIs Explorer.
Notifikasi yang di-Proxy-kan. Notifikasi yang di-proxy-kan tidak akan dihitung dalam metrik pengiriman FCM atau GA saat ini, sehingga Anda mungkin mengalami penurunan hingga 15% dalam metrik pengiriman notifikasi. Untuk pelaporan pesan yang di-proxy-kan, gunakan FCM Aggregate Delivery Data API.
ProxyNotificationInsightPercents
melaporkan persentase notifikasi yang berhasil di-proxy-kan serta rincian pesan yang tidak berhasil di-proxy-kan.
Pemecahan masalah
Pastikan bahwa instance aplikasi Anda telah mengaktifkan notifikasinya. Jika pengguna telah menonaktifkan izin notifikasi untuk aplikasi Anda, tidak ada notifikasi yang akan diposting, sehingga pesan Anda akan diturunkan prioritasnya. Anda harus memverifikasi bahwa notifikasi telah diaktifkan sebelum mengirim pesan berprioritas tinggi ke instance aplikasi.
Jangan memanggil beranda sebelum memposting notifikasi. Karena sebagian kecil populasi seluler Android menggunakan jaringan latensi tinggi, jangan buka koneksi ke server Anda sebelum menampilkan notifikasi. Memanggil kembali ke server sebelum akhir waktu pemrosesan yang diizinkan bisa berisiko bagi pengguna yang berada di jaringan latensi tinggi. Sebagai gantinya, sertakan konten notifikasi dalam pesan FCM dan segera tampilkan. Jika harus melakukan sinkronisasi untuk konten tambahan dalam aplikasi di Android, Anda dapat menjadwalkan tugas dengan WorkManager untuk menanganinya di latar belakang.