ضبط أولوية الرسائل وإدارتها

يتوفّر لك خياران لتحديد أولوية التسليم للرسائل المرسَلة إلى تطبيقات أخرى على Android: الأولوية العادية والأولوية العالية. يعمل تسليم الرسائل العادية وذات الأولوية العالية على النحو التالي:

  • أولوية عادية: هذه هي الأولوية التلقائية ل رسائل البيانات. يتم تسليم الرسائل ذات الأولوية العادية على الفور عندما لا يكون الجهاز في وضع السكون. عندما يكون الجهاز في وضع "الاستراحة"، قد يتم تأخير الإرسال للحفاظ على شحن البطارية إلى أن يخرج الجهاز من وضع "الاستراحة". بالنسبة إلى الرسائل الأقل حساسية للوقت، مثل إشعارات الرسائل الإلكترونية الجديدة أو مزامنة واجهة المستخدم أو مزامنة بيانات التطبيق في الخلفية، اختَر الأولوية العادية للتسليم.

    عند تلقّي رسالة ذات أولوية عادية على Android تطلب مزامنة البيانات في الخلفية لتطبيقك، يمكنك جدولة مهمة باستخدام WorkManager لمعالجتها عندما تكون الشبكة متاحة.

  • أولوية عالية: يحاول FCM إرسال الرسائل ذات الأولوية العالية على الفور، ما يسمح لـ FCM بإيقاظ جهاز في وضع السكون عند الضرورة وتنفيذ بعض المعالجة المحدودة (بما في ذلك الوصول المحدود جدًا إلى الشبكة). يجب أن تؤدي الرسائل ذات الأولوية العالية بشكل عام إلى تفاعل المستخدمين مع تطبيقك أو إشعاراته.

معالجة الرسائل وإلغاء تحديد الأولوية لها على Android

إنّ الرسائل ذات الأولوية العالية على Android مخصّصة للمحتوى الذي يتطلّب سرعة التفاعل ويظهر للمستخدمين، ومن المفترض أن تؤدي إلى ظهور إشعارات موجّهة للمستخدمين. إذا رصدت FCM نمطًا لا تؤدي فيه الرسائل إلى إرسال إشعارات موجّهة للمستخدمين، قد يتم خفض أولوية رسائلك إلى الأولوية العادية أو إسنادها إلى "خدمات Google Play" للتعامل معها.

يستخدم FCM سلوك الرسائل لمدة 7 أيام عند تحديد ما إذا كان سيتم خفض أولوية الرسائل أو الخادم الوكيل، ويحدّد ذلك بشكل مستقل لكل مثيل من تطبيقك. إذا تم عرض الإشعارات بطريقة مرئية للمستخدم استجابةً للرسائل ذات الأولوية العالية، لن تتأثر رسائلك المستقبلية ذات الأولوية العالية.

تفويض الإشعارات باستخدام "خدمات Google Play"

إنّ رسائل الإشعارات ذات الأولوية القصوى (وليس رسائل البيانات) التي تستوفي معايير معيّنة يتم تمثيلها من خلال "خدمات Google Play" بدلاً من خفض أولويتها. وهذا يعني أنّ "خدمات Google Play" تعرِض الإشعارات بدلاً من التطبيق، بدون الحاجة إلى تشغيله. ويتم ذلك لتوفير تجربة مستخدم أفضل بشكل عام على أجهزة Android.

يُرجى العِلم أنّ رسائل الإشعارات التي يتمّ تمثيلها تُجري تغييرات في كيفية إعداد تقارير الإحصاءات المرتبطة بالرسائل التي يتمّ تلقّيها:

  • لكي يتم تسجيل الإحصاءات للإشعارات التي يتمّ تمثيلها، يجب أن يستخدم تطبيقك الإصدار 24.0.0 أو إصدارًا أحدث من حزمة تطوير البرامج (SDK) لنظام إرسال الرسائل الفورية من Google.
  • قد تلاحظ تأخيرات أو انخفاضًا في عدد الرسائل التي يتم استلامها مقارنةً بعدد الرسائل قبل طرح الإشعارات المُشفَّرة. ويعود ذلك إلى أنّه لا يتم تسجيل إحصاءات الإشعارات التي يتم عرضها باستخدام وكيل إلا بعد بدء تطبيقك، وقد لا يتم تسجيلها على الإطلاق إذا لم يؤدّي الإشعار إلى فتح التطبيق.

ويكون إنشاء خوادم وكيلة لرسائل الإشعارات بهذه الطريقة هو السلوك التلقائي للتطبيقات التي تستخدم Android Q+ والإصدار 19054000 أو الإصدارات الأحدث من خدمات Google Play. يتم إنشاء خادم وكيل للرسائل المُرسَلة من خلال HTTP v1 API، ولكن لن يتم إنشاء خادم وكيل للرسائل المُرسَلة من خلال "وحدة تحكُّم Firebase" أو واجهات برمجة التطبيقات القديمة. تجدر الإشارة إلى أنّ هذه الميزة متوفّرة حاليًا في إصدار تجريبي، وهي قابلة للتغيير.

على الرغم من أنّنا ننصحك بشدة بإبقاء التفويض مفعّلاً بسبب المزايا التي يقدّمها لbatery وذاكرة الجهاز، يمكنك إيقاف هذا السلوك بأي من هذه الطرق:

  • على مستوى التطبيق: أضِف التوجيه <meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/> في بيان التطبيق.
  • على أساس مثيل التطبيق: على مثيل التطبيق، اضبط fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!> في مسار واجهة المستخدم لتطبيقك، بناءً على حالة الاستخدام المحددة.
  • على أساس كل رسالة: اضبط مفتاح proxy على DENY في كائن AndroidNotification لطلب الإرسال.

قياس خفض أولوية الرسائل على Android

  • الرسائل الفردية: عند التسليم، يمكنك معرفة ما إذا تم إزالة الأولوية من رسالة فردية أم لا من خلال مقارنة الأولوية التي تم تسليمها من getPriority()‎ بالأولوية الأصلية من getOriginalPriority()‎.

  • كل الرسائل: يمكن FCM Aggregate Delivery Data API الإبلاغ عن النسبة المئوية لجميع رسائلك المُرسَلة إلى Android التي يتم خفض أولويتها. قد يتم حذف بعض الرسائل من تقارير البيانات المجمّعة، ولكن يجب أن توفّر بشكل عام نظرة عامة على معدلات خفض أولوية الرسائل. يمكنك الاطّلاع على المقالة حول بيانات العرض المجمَّعة للحصول على مزيد من المعلومات والاطّلاع على رمز نموذجي لإرسال طلبات بحث عن واجهة برمجة التطبيقات. ويمكنك أيضًا الاطّلاع على هذه المقالة من خلال مستكشف واجهات برمجة التطبيقات.

  • الإشعارات المستندة إلى خادم وكيل: لن يتم احتساب الإشعارات التي يتم إرسالها باستخدام وكيل في مقاييس الإرسال الحالية في "المراسلة من خلال السحابة الإلكترونية من Firebase" أو "إحصاءات Google"، لذلك قد تلاحظ انخفاضًا يصل إلى% 15 في مقاييس إرسال الإشعارات. لإعداد تقارير عن الرسائل التي تمّ تسليمها باستخدام وكيل، استخدِم FCM Aggregate Delivery Data API. يُبلغ ProxyNotificationInsightPercents عن النسبة المئوية للإشعارات التي تم توجيهها بنجاح، بالإضافة إلى تفاصيل الرسائل التي تعذّر توجيهها بنجاح.

تحديد المشاكل وحلّها

  • تأكَّد من أنّه تم تفعيل الإشعارات في مثيل تطبيقك. إذا أوقف المستخدم إذن الإشعارات لتطبيقك، لن يتم نشر أي من إشعاراتك، ونتيجةً لذلك، سيتم إزالة الأولوية من رسائلك. يجب التحقُّق من تفعيل الإشعارات قبل إرسال الرسائل ذات الأولوية العالية إلى مثيل التطبيق.

  • لا تتصل بالمنزل قبل نشر إشعار. بما أنّ جزءًا صغيرًا من مستخدمي أجهزة Android الجوّالة يستخدمون شبكات ذات وقت استجابة مرتفع، تجنَّب فتح اتصال بخوادمك قبل عرض إشعار. وقد يمثل معاودة الاتصال بالخادم قبل انتهاء مدة المعالجة المسموح بها خطرًا على المستخدمين الذين يستخدمون شبكات ذات وقت استجابة طويل. بدلاً من ذلك، يمكنك تضمين محتوى الإشعار في رسالة FCM وعرضه على الفور. إذا كنت بحاجة إلى المزامنة للحصول على محتوى إضافي داخل التطبيق على Android، يمكنك جدولة مهمة باستخدام WorkManager لتنفيذ ذلك في الخلفية.