Mesaj önceliğini belirleme ve yönetme

Android'de yayın mesajlarına teslimat önceliği atamak için iki seçeneğiniz vardır: normal ve yüksek öncelik. Normal ve yüksek öncelikli iletilerin teslimatı şu şekilde işler:

  • Normal öncelik. Bu, veri mesajları için varsayılan önceliktir. Normal öncelikli mesajlar, cihaz uykuda değilken hemen teslim edilir. Cihaz Dinlenme modundayken cihaz dinlenme modundan çıkana kadar pil tasarrufu sağlamak için yayın geciktirilebilir. Yeni e-posta bildirimleri, kullanıcı arayüzünüzün senkronize tutulması veya uygulama verilerinin arka planda senkronize edilmesi gibi zamana duyarlı olmayan mesajlar için normal teslimat önceliğini seçin.

    Android'de uygulamanız için arka plan veri senkronizasyonu isteyen normal öncelikli bir mesaj aldığınızda, ağ kullanılabilir olduğunda bu işlemi gerçekleştirmesi için WorkManager ile bir görev planlayabilirsiniz.

  • Yüksek öncelik. FCM, yüksek öncelikli mesajları hemen yayınlamaya çalışır. Bu sayede FCM, gerektiğinde uyuyan bir cihazı uyandırabilir ve bazı sınırlı işlemler (çok sınırlı ağ erişimi dahil) gerçekleştirebilir. Yüksek öncelikli mesajlar genellikle kullanıcının uygulamanızla veya bildirimlerinizle etkileşime girmesine yol açmalıdır.

Android'de mesajları işleme ve öncelik verme

Android'deki yüksek öncelikli mesajlar, zamana duyarlı ve kullanıcı tarafından görülebilen içerikler içindir ve kullanıcılara yönelik bildirimlerle sonuçlanmalıdır. FCM, mesajların kullanıcılara yönelik bildirimlerle sonuçlanmadığı bir kalıp algılarsa mesajlarınızın önceliği normal önceliğe ayarlanabilir veya Google Play Hizmetleri tarafından işlenmesi için devre dışı bırakılabilir.

FCM, iletilerin önceliğini düşürüp düşürmeyeceğini veya iletileri proxy'den geçirip geçirmeyeceğini belirlerken 7 günlük ileti davranışını kullanır. Bu belirlemeyi, uygulamanızın her örneği için bağımsız olarak yapar. Yüksek öncelikli mesajlara yanıt olarak bildirimler kullanıcıya görünür olacak şekilde gösteriliyorsa gelecekteki yüksek öncelikli mesajlarınız etkilenmez.

Google Play Hizmetleri ile bildirim yetkilendirme

Belirli ölçütleri karşılayan yüksek öncelikli bildirim mesajları (veri mesajları değil), önceliği düşürülmek yerine Google Play Hizmetleri tarafından proxy'lenir. Bu, bildirimlerin uygulamayı başlatmaya gerek kalmadan uygulama adına Google Play Hizmetleri tarafından gösterildiği anlamına gelir. Bu, Android cihazlarda daha iyi bir genel kullanıcı deneyimi sunmak için yapılır.

Proxy'lenmiş bildirim mesajlarının, alınan mesajlarla ilgili analizlerin raporlanma biçiminde değişiklikler yaptığını unutmayın:

  • Proxy'lenmiş bildirimlerin analizlerinin raporlanabilmesi için uygulamanızın 24.0.0 veya sonraki bir FCM SDK sürümünü kullanması gerekir.
  • Proxy'li bildirimlerin kullanıma sunulmasından önceki duruma kıyasla, alınan mesaj sayısında gecikme veya düşüş fark edebilirsiniz. Bunun nedeni, proxy'nin kullanıldığı bildirimler için analizlerin yalnızca uygulamanız çalıştıktan sonra raporlanması ve bildirim uygulamanın açılmasına neden olmazsa hiç raporlanmamasıdır.

Bildirim mesajlarının bu şekilde proxy'lenmesi, Android Q ve sonraki sürümleri ile Google Play Hizmetleri 19054000 veya sonraki sürümlerini kullanan uygulamalar için varsayılan davranıştır. HTTP v1 API üzerinden gönderilen mesajlar proxy'den geçirilir ancak Firebase Konsolu veya eski API'ler üzerinden gönderilen mesajlar proxy'den geçirilmez. Bu özelliğin şu anda beta sürümünde olduğunu ve değişiklik yapılabileceğini lütfen unutmayın.

Cihazın pili ve belleği üzerindeki avantajları nedeniyle yetkilendirmeyi etkin durumda bırakmanızı önemle tavsiye ederiz. Ancak bu davranışı aşağıdaki yöntemlerden herhangi biriyle devre dışı bırakabilirsiniz:

  • Uygulama düzeyinde: Uygulama manifest dosyanıza <meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/> yönergesini ekleyin.
  • Uygulama örneği bazında: Uygulama örneği için, uygulamanızın kullanıcı arayüzü akışında belirli kullanım alanına bağlı olarak fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!> değerini ayarlayın.
  • Mesaj başına: Gönderme isteği için AndroidNotification nesnesinde proxy anahtarını DENY olarak ayarlayın.

Android'de mesajların önceliğini düşürme özelliğini ölçme

  • Tek tek iletiler. İleti teslim edilirken, getPriority() işlevinden elde edilen yayınlanma önceliğini getOriginalPriority() işlevinden elde edilen orijinal öncelikle karşılaştırarak bir iletinin önceliğinin düşürülüp düşürülmediğini belirleyebilirsiniz.

  • Tüm Mesajlar FCM Toplu Yayınlama Veri API'si, Android'e gönderdiğiniz tüm mesajların yüzde kaçının önceliği düşürüldüğünü bildirebilir. Bazı mesajlar toplu veri raporlarından çıkarılabilir ancak genel olarak bu raporlar, mesajların öncelik düzeyini düşürme oranlarına dair genel bir görünüm sunar. Daha fazla bilgi ve API'yi sorgulamaya yönelik örnek kod için toplu yayınlama verileri hakkındaki makalemizi inceleyin. Bu makaleyi API gezgininden de keşfedebilirsiniz.

  • Proxy uygulanan bildirimler. Proxy'ler aracılığıyla gönderilen bildirimler mevcut FCM veya GA yayınlama metriklerinde sayılmaz. Bu nedenle, bildirim yayınlama metriklerinde% 15'e varan bir düşüş yaşayabilirsiniz. Proxy'den gönderilen iletiler hakkında rapor oluşturmak için FCM Toplu Yayınlama Veri API'sini kullanın. ProxyNotificationInsightPercents, başarıyla proxy'lenmiş bildirimlerin yüzdesini ve başarıyla proxy'lenemeyen iletilerin ayrıntılarını raporlar.

Sorun giderme

  • Uygulama örneğinizde bildirimlerin etkinleştirildiğinden emin olun. Kullanıcı, uygulamanız için bildirim iznini devre dışı bıraktıysa bildirimlerinizin hiçbiri yayınlanmaz ve mesajlarınızın önceliği düşürülür. Bir uygulama örneğine yüksek öncelikli mesajlar göndermeden önce bildirimlerin etkinleştirildiğini doğrulamanız gerekir.

  • Bildirim yayınlamadan önce eve telefon etmeyin. Android mobil kullanıcılarının küçük bir kısmı yüksek gecikmeli ağlarda olduğundan, bildirim göstermeden önce sunucularınıza bağlantı açmaktan kaçının. İzin verilen işleme süresi sona ermeden önce sunucuyu geri çağırmanız, yüksek gecikmeli ağlardaki kullanıcılar için riskli olabilir. Bunun yerine, bildirim içeriğini FCM mesajına ekleyin ve hemen gösterin. Android'de ek uygulama içi içerik için senkronizasyon yapmanız gerekiyorsa bunu arka planda gerçekleştirmek üzere WorkManager ile bir görev planlayabilirsiniz.