يتوفّر لك خياران لتحديد أولوية التسليم للرسائل المرسَلة إلى تطبيقات Android: الأولوية العادية والأولوية العالية. يعمل تسليم الرسائل العادية وذات الأولوية العالية على النحو التالي:
أولوية عادية: هذه هي الأولوية التلقائية ل رسائل البيانات. يتم تسليم الرسائل ذات الأولوية العادية فورًا عندما يكون الجهاز غير في وضع السكون. عندما يكون الجهاز في وضع السكون، قد يتم تأخير الإرسال للحفاظ على شحن البطارية إلى أن يخرج الجهاز من وضع السكون. بالنسبة إلى الرسائل الأقل حساسية للوقت، مثل إشعارات الرسائل الإلكترونية الجديدة أو مزامنة واجهة المستخدم أو مزامنة بيانات التطبيق في الخلفية، اختَر الأولوية العادية للتسليم.
عند تلقّي رسالة ذات أولوية عادية على Android تطلب مزامنة البيانات في الخلفية لتطبيقك، يمكنك جدولة مهمة باستخدام WorkManager لمعالجتها عندما تكون الشبكة متاحة.
أولوية عالية: يحاول FCM إرسال الرسائل ذات الأولوية العالية على الفور، ما يسمح لـ FCM بإيقاظ جهاز في وضع السكون عند الضرورة وتنفيذ بعض المعالجة المحدودة (بما في ذلك الوصول المحدود جدًا إلى الشبكة). يجب أن تؤدي الرسائل ذات الأولوية العالية بشكل عام إلى تفاعل المستخدمين مع تطبيقك أو إشعاراته.
معالجة الرسائل وإلغاء تحديد الأولوية لها على Android
إنّ الرسائل ذات الأولوية العالية على Android مخصّصة للمحتوى الذي يتطلّب سرعة التفاعل ويظهر للمستخدمين، ومن المفترض أن تؤدي إلى إرسال إشعارات موجّهة للمستخدمين. إذا رصدت FCM نمطًا لا تؤدي فيه الرسائل إلى إرسال إشعارات موجّهة للمستخدمين، قد يتم خفض أولوية رسائلك إلى الأولوية العادية أو إسنادها إلى "خدمات Google Play" للتعامل معها.
يستخدِم FCM 7 أيام من سلوك الرسائل عند تحديد ما إذا كان سيتم خفض أولوية الرسائل أو توجيهها، ويحدِّد هذا الإجراء بشكل مستقل لكل مثيل من تطبيقك. إذا تم عرض الإشعارات بطريقة مرئية للمستخدم استجابةً للرسائل ذات الأولوية العالية، لن تتأثر رسائلك المستقبلية ذات الأولوية العالية.
تفويض الإشعارات باستخدام "خدمات Google Play"
إنّ رسائل الإشعارات ذات الأولوية القصوى (وليس رسائل البيانات) التي تستوفي معايير معيّنة يتم تمثيلها من خلال "خدمات Google Play" بدلاً من خفض أولويتها. وهذا يعني أنّ "خدمات Google Play" تعرِض الإشعارات بدلاً من التطبيق، بدون الحاجة إلى تشغيله. ويتم ذلك لتوفير تجربة مستخدم أفضل بشكل عام على أجهزة Android.
يُرجى العِلم أنّ رسائل الإشعارات التي يتمّ تمثيلها تُجري تغييرات في كيفية إعداد تقارير الإحصاءات المرتبطة بالرسائل التي يتمّ تلقّيها:
- لكي يتم تسجيل الإحصاءات للإشعارات التي يتم تمثيلها، يجب أن يستخدم تطبيقك الإصدار 24.0.0 أو إصدارًا أحدث من حزمة تطوير البرامج (SDK) لنظام إرسال الرسائل الفورية من Google.
- قد تلاحظ تأخيرات أو انخفاضًا في عدد الرسائل التي يتم استلامها مقارنةً بعدد الرسائل قبل طرح الإشعارات المُشفَّرة. ويعود ذلك إلى أنّه لا يتم تسجيل إحصاءات الإشعارات التي يتم عرضها بالنيابة إلا بعد بدء تطبيقك، وقد لا يتم تسجيلها على الإطلاق إذا لم يؤدّي الإشعار إلى فتح التطبيق.
إنّ استخدام الوكيل لرسائل الإشعارات بهذه الطريقة هو السلوك التلقائي للتطبيقات التي تستخدم الإصدار 19054000 من نظام التشغيل Android Q والإصدارات الأحدث من "خدمات Google Play". يتمّ تمثيل الرسائل المُرسَلة من خلال واجهة برمجة التطبيقات HTTP v1، ولكن لن يتمّ تمثيل الرسائل المُرسَلة من خلال وحدة تحكّم Firebase أو واجهات برمجة التطبيقات القديمة. يُرجى العلم أنّ هذه الميزة متوفرة في الإصدار التجريبي حاليًا، وهي قابلة للتغيير.
على الرغم من أنّنا ننصحك بشدة بإبقاء التفويض مفعّلاً بسبب مزاياه التي تعود على بطارية الجهاز وذاكرته، يمكنك إيقاف هذا السلوك بأي من يلي:
- على مستوى التطبيق: أضِف التوجيه
<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 لتنفيذ ذلك في الخلفية.