Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Praktik terbaik untuk manajemen token pendaftaran FCM

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Jika Anda menggunakan FCM API untuk membuat permintaan pengiriman secara terprogram, Anda mungkin menemukan bahwa, seiring waktu, Anda membuang-buang sumber daya dengan mengirimkan pesan ke perangkat yang tidak aktif dengan token pendaftaran yang sudah usang. Situasi ini dapat memengaruhi data pengiriman pesan yang dilaporkan di konsol Firebase atau data yang diekspor ke BigQuery, yang muncul sebagai penurunan tingkat pengiriman yang dramatis (namun sebenarnya tidak valid). Panduan ini membahas beberapa langkah yang dapat Anda ambil untuk membantu memastikan penargetan pesan yang efisien dan pelaporan pengiriman yang valid.

Praktik terbaik dasar

Ada beberapa praktik dasar yang harus Anda ikuti di aplikasi apa pun yang menggunakan FCM API untuk membuat permintaan pengiriman secara terprogram. Praktik terbaik utama adalah:

  • Simpan token pendaftaran di server Anda. Peran penting untuk server adalah melacak setiap token klien dan menyimpan daftar token aktif yang diperbarui. Kami sangat menyarankan untuk menerapkan stempel waktu token dalam kode dan server Anda, dan memperbarui stempel waktu ini secara berkala.
  • Hapus token tersimpan yang menjadi basi . Selain menghapus token dalam kasus respons token yang tidak valid, Anda mungkin perlu memantau tanda lain bahwa token sudah tidak berlaku. Panduan ini membahas beberapa opsi Anda untuk mencapainya.

Ambil dan simpan token pendaftaran

Pada permulaan awal aplikasi Anda, FCM SDK membuat token pendaftaran untuk instance aplikasi klien. Ini adalah token yang harus Anda sertakan dalam permintaan pengiriman yang ditargetkan dari API, atau ditambahkan ke langganan topik untuk topik penargetan.

Seperti yang disebutkan dalam panduan penyiapan klien kami, aplikasi Anda harus mengambil token ini saat memulai awal dan menyimpannya ke server aplikasi Anda bersama stempel waktu . Stempel waktu ini harus diterapkan oleh kode dan server Anda, karena tidak disediakan untuk Anda oleh FCM SDK.

Selain itu, penting untuk menyimpan token ke server dan memperbarui stempel waktu setiap kali berubah, seperti saat:

  • Aplikasi dipulihkan di perangkat baru
  • Pengguna mencopot pemasangan/memasang ulang aplikasi
  • Pengguna menghapus data aplikasi.

Mendeteksi respons token yang tidak valid dari backend FCM

Pastikan untuk mendeteksi respons token yang tidak valid dari FCM dan tanggapi dengan menghapus dari sistem Anda setiap token pendaftaran yang diketahui tidak valid. Dengan API HTTP v1, pesan kesalahan ini mungkin menunjukkan bahwa permintaan kirim Anda menargetkan token yang sudah basi atau tidak valid:

  • UNREGISTERED (HTTP 404)
  • INVALID_ARGUMENT (HTTP 400)

Lihat ErrorCodes untuk informasi lebih lanjut.

Jika Anda menerima salah satu dari respons ini untuk token yang ditargetkan, catatan Anda tentang token ini aman untuk dihapus, karena tidak akan valid lagi. Namun, perlu diingat bahwa masih akan ada kasus di mana token sebenarnya tidak valid, tetapi tidak ada indikasinya. Misalnya, terkadang backend FCM tidak dapat memverifikasi apakah suatu perangkat offline secara permanen atau tidak.

Memastikan kesegaran token pendaftaran

Menentukan apakah token baru atau basi tidak selalu mudah. Untuk mencakup semua kasus, Anda harus mengadopsi ambang saat Anda menganggap token basi; rekomendasi kami adalah dua bulan. Token apa pun yang lebih lama dari dua bulan kemungkinan merupakan perangkat yang tidak aktif; perangkat aktif sebaliknya akan menyegarkan tokennya.

Perbarui token secara teratur

Kami menyarankan agar Anda mengambil dan memperbarui semua token pendaftaran di server Anda secara berkala. Ini mengharuskan Anda untuk:

  • Tambahkan logika aplikasi di aplikasi klien Anda untuk mengambil token saat ini menggunakan panggilan API yang sesuai (seperti token(completion): untuk platform Apple atau getToken() untuk Android) lalu kirim token saat ini ke server aplikasi Anda untuk penyimpanan (dengan stempel waktu ). Ini bisa menjadi pekerjaan bulanan yang dikonfigurasi untuk mencakup semua klien/token.
  • Tambahkan logika server untuk memperbarui stempel waktu token secara berkala, terlepas dari apakah token telah berubah atau tidak.

Pola waktu apa pun yang Anda ikuti, pastikan untuk memperbarui token secara berkala. Frekuensi pembaruan sekali per bulan kemungkinan mencapai keseimbangan yang baik antara dampak baterai vs. mendeteksi token pendaftaran yang tidak aktif. Dengan melakukan penyegaran ini, Anda juga memastikan bahwa perangkat apa pun yang tidak aktif akan menyegarkan pendaftarannya saat aktif kembali. Tidak ada manfaatnya melakukan penyegaran lebih sering daripada setiap minggu.

Berhenti berlangganan token basi dari topik

Mengelola langganan topik untuk menghapus token pendaftaran basi adalah pertimbangan lain. Ini melibatkan dua langkah:

  1. Aplikasi Anda harus berlangganan kembali ke topik sebulan sekali dan/atau setiap kali token pendaftaran berubah. Ini membentuk solusi penyembuhan diri, di mana langganan muncul kembali secara otomatis saat aplikasi kembali aktif.
  2. Jika instance aplikasi menganggur selama 2 bulan (atau jendela kedaluwarsa Anda sendiri), Anda harus berhenti berlangganan dari topik menggunakan Firebase Admin SDK untuk menghapus pemetaan token/topik dari backend FCM.

Manfaat dari kedua langkah ini adalah penyebaran Anda akan terjadi lebih cepat karena ada lebih sedikit token basi untuk disebarkan, dan instans aplikasi basi Anda akan secara otomatis berlangganan kembali setelah aktif kembali.

Mengukur keberhasilan pengiriman

Secara umum, kami menyarankan untuk menargetkan pesan berdasarkan tindakan yang diamati atau ditangkap dari instans aplikasi yang digunakan secara aktif. Ini sangat penting jika Anda secara teratur mengirim pesan ke topik dengan pelanggan dalam jumlah besar; jika sebagian dari pelanggan tersebut benar-benar tidak aktif, dampaknya terhadap statistik pengiriman Anda dapat menjadi signifikan dari waktu ke waktu.

Sebelum menargetkan pesan ke token, pertimbangkan:

  • Apakah Google Analytics, data yang diambil di BigQuery, atau sinyal pelacakan lainnya menunjukkan bahwa token aktif?
  • Apakah upaya pengiriman sebelumnya gagal secara konsisten selama periode waktu tertentu?
  • Apakah token pendaftaran telah diperbarui di server Anda dalam dua bulan terakhir?
  • Untuk perangkat Android, apakah FCM Data API melaporkan tingginya persentase kegagalan pengiriman pesan karena droppedDeviceInactive ?

Untuk informasi selengkapnya tentang pengiriman, lihat Memahami pengiriman pesan .