Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

FCM kayıt belirteci yönetimi için en iyi uygulamalar

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Programlı olarak gönderme istekleri oluşturmak için FCM API'lerini kullanırsanız, zaman içinde eski kayıt belirteçleriyle etkin olmayan cihazlara mesaj göndererek kaynakları boşa harcadığınızı görebilirsiniz. Bu durum, Firebase konsolunda raporlanan mesaj teslim verilerini veya BigQuery'ye aktarılan verileri etkileyerek teslim oranlarında büyük (ama aslında geçerli olmayan) bir düşüş olarak görünebilir. Bu kılavuz, verimli mesaj hedefleme ve geçerli teslim raporlaması sağlamaya yardımcı olmak için alabileceğiniz bazı önlemleri tartışmaktadır.

Temel en iyi uygulamalar

Programlı olarak gönderme istekleri oluşturmak için FCM API'lerini kullanan herhangi bir uygulamada izlemeniz gereken bazı temel uygulamalar vardır. Başlıca en iyi uygulamalar şunlardır:

  • Kayıt belirteçlerini sunucunuzda saklayın. Sunucu için önemli bir rol, her müşterinin belirtecini takip etmek ve aktif belirteçlerin güncel bir listesini tutmaktır. Kodunuzda ve sunucularınızda bir belirteç zaman damgası uygulamanızı ve bu zaman damgasını düzenli aralıklarla güncellemenizi şiddetle öneririz.
  • Eski hale gelen saklanan belirteçleri kaldırın . Geçersiz belirteç yanıtlarının bariz olduğu durumlarda belirteçleri kaldırmaya ek olarak, belirtecin eski olduğuna dair diğer işaretleri izlemeniz gerekebilir. Bu kılavuz, bunu başarmak için bazı seçeneklerinizi tartışmaktadır.

Kayıt belirteçlerini alın ve saklayın

Uygulamanızın ilk başlangıcında, FCM SDK, istemci uygulama örneği için bir kayıt belirteci oluşturur. Bu, API'den hedeflenen gönderme isteklerine dahil etmeniz veya konuları hedeflemek için konu aboneliklerine eklemeniz gereken belirteçtir.

İstemci kurulum kılavuzlarımızda belirtildiği gibi , uygulamanız ilk başlangıçta bu belirteci almalı ve bir zaman damgasıyla birlikte uygulama sunucunuza kaydetmelidir . Bu zaman damgası, sizin için FCM SDK'ları tarafından sağlanmadığı için kodunuz ve sunucularınız tarafından uygulanmalıdır.

Ayrıca, belirteci sunucuya kaydetmek ve zaman damgasını her değiştiğinde güncellemek önemlidir, örneğin:

  • Uygulama yeni bir cihaza geri yüklendi
  • Kullanıcı uygulamayı kaldırır/yeniden yükler
  • Kullanıcı uygulama verilerini temizler.

FCM arka ucundan geçersiz belirteç yanıtlarını algıla

FCM'den gelen geçersiz belirteç yanıtlarını tespit ettiğinizden emin olun ve geçersiz olduğu bilinen tüm kayıt belirteçlerini sisteminizden silerek yanıt verin. HTTP v1 API ile bu hata mesajları, gönderme isteğinizin eski veya geçersiz belirteçleri hedeflediğini gösterebilir:

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

Daha fazla bilgi için ErrorCodes'a bakın.

Hedeflenen bir belirteç için bu yanıtlardan herhangi birini alırsanız, bir daha asla geçerli olmayacağından, bu belirteçle ilgili kaydınızı silmek güvenlidir. Bununla birlikte, bir belirtecin aslında geçersiz olduğu ancak bunun bir göstergesi olmadığı durumlar olabileceğini unutmayın. Örneğin, bazen FCM arka ucu, bir cihazın kalıcı olarak çevrimdışı olup olmadığını doğrulayamaz.

Kayıt belirteci tazeliğinin sağlanması

Bir jetonun yeni mi yoksa eski mi olduğunu belirlemek her zaman kolay değildir. Tüm durumları kapsamak için, jetonların eski olduğunu düşündüğünüz zamanlar için bir eşik kabul etmelisiniz; tavsiyemiz iki aydır. İki aydan eski olan herhangi bir belirteç muhtemelen etkin olmayan bir cihazdır; aksi takdirde aktif bir cihaz jetonunu yenilerdi.

Jetonları düzenli olarak güncelleyin

Sunucunuzdaki tüm kayıt belirteçlerini periyodik olarak almanızı ve güncellemenizi öneririz. Bu, şunları yapmanızı gerektirir:

  • Uygun API çağrısını (örneğin, Apple platformları için token(completion): veya Android için getToken() kullanarak geçerli belirteci almak için istemci uygulamanıza uygulama mantığı ekleyin ve ardından geçerli belirteci depolama için uygulama sunucunuza gönderin (zaman damgalı ). Bu, tüm istemcileri/belirteçleri kapsayacak şekilde yapılandırılmış aylık bir iş olabilir.
  • Belirtecin değişip değişmediğine bakılmaksızın belirtecin zaman damgasını düzenli aralıklarla güncellemek için sunucu mantığı ekleyin.

Takip ettiğiniz zamanlama düzeni ne olursa olsun, belirteçleri periyodik olarak güncellediğinizden emin olun. Ayda bir güncelleme sıklığı, pil etkisi ile etkin olmayan kayıt belirteçlerini algılama arasında iyi bir denge kurar. Bu yenilemeyi yaparak, inaktif hale gelen herhangi bir cihazın tekrar aktif hale geldiğinde kaydını yenilemesini de sağlamış olursunuz. Yenilemeyi haftalıktan daha sık yapmanın hiçbir faydası yoktur.

Konulardan eski belirteçlerin aboneliğini iptal et

Eski kayıt belirteçlerini kaldırmak için konu aboneliklerini yönetmek başka bir husustur. İki adım içerir:

  1. Uygulamanız, konulara ayda bir kez ve/veya kayıt jetonu her değiştiğinde yeniden abone olmalıdır. Bu, bir uygulama tekrar aktif hale geldiğinde aboneliklerin otomatik olarak yeniden göründüğü kendi kendini iyileştiren bir çözüm oluşturur.
  2. Bir uygulama örneği 2 ay boyunca boşta kalırsa (veya kendi eskime pencereniz), belirteç/konu eşlemesini FCM arka ucundan silmek için Firebase Admin SDK'sını kullanarak konuların aboneliğinden çıkmalısınız.

Bu iki adımın avantajı, yayılacak daha az eski jeton olduğundan yayınlarınızın daha hızlı gerçekleşmesi ve eski uygulama örnekleriniz tekrar etkin olduklarında otomatik olarak yeniden abone olmalarıdır.

Teslimat başarısını ölçme

Genel olarak, aktif olarak kullanılan uygulama örneklerinden gözlemlenen veya yakalanan eylemlere dayalı olarak mesajları hedeflemenizi öneririz. Bu, özellikle çok sayıda abonesi olan konulara düzenli olarak mesaj gönderiyorsanız önemlidir; bu abonelerin bir kısmı gerçekten etkin değilse, yayın istatistikleriniz üzerindeki etki zaman içinde önemli olabilir.

İletileri bir simgeye hedeflemeden önce şunları göz önünde bulundurun:

  • Google Analytics, BigQuery'de yakalanan veriler veya diğer izleme sinyalleri jetonun etkin olduğunu gösteriyor mu?
  • Önceki teslimat girişimleri belirli bir süre boyunca sürekli olarak başarısız oldu mu?
  • Son iki ay içinde sunucularınızda kayıt jetonu güncellendi mi?
  • Android cihazlar için, FCM Data API , droppedDeviceInactive nedeniyle yüksek oranda mesaj teslim hatası bildiriyor mu?

İletim hakkında daha fazla bilgi için, bkz. İleti teslimini anlama .