أفضل الممارسات لإدارة الرمز المميز لتسجيل FCM

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

أفضل الممارسات الأساسية

هناك بعض الممارسات الأساسية التي يجب عليك اتباعها في أي تطبيق يستخدم واجهات برمجة تطبيقات FCM لإنشاء طلبات الإرسال برمجيًا. أفضل الممارسات الرئيسية هي:

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

استرجاع وتخزين الرموز المميزة للتسجيل

عند بدء التشغيل الأولي لتطبيقك ، تنشئ FCM SDK رمزًا مميزًا للتسجيل لمثيل تطبيق العميل. هذا هو الرمز المميز الذي يجب عليك تضمينه في طلبات الإرسال المستهدفة من واجهة برمجة التطبيقات ، أو إضافته إلى اشتراكات الموضوعات لمواضيع الاستهداف.

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

من المهم أيضًا حفظ الرمز المميز على الخادم وتحديث الطابع الزمني متى تغير ، مثل عندما:

  • تمت استعادة التطبيق على جهاز جديد
  • يقوم المستخدم بإلغاء تثبيت / إعادة تثبيت التطبيق
  • يمسح المستخدم بيانات التطبيق.

كشف استجابات الرموز غير الصالحة من الواجهة الخلفية لـ FCM

تأكد من اكتشاف استجابات الرمز المميز غير الصالحة من FCM والرد عن طريق حذف أي رموز مميزة للتسجيل من نظامك يُعرف أنها غير صالحة. باستخدام واجهة برمجة تطبيقات HTTP v1 ، قد تشير رسائل الخطأ هذه إلى أن طلب الإرسال الخاص بك يستهدف الرموز المميزة التي لا معنى لها أو غير الصالحة:

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

انظر أكواد الخطأ لمزيد من المعلومات.

إذا تلقيت أيًا من هذه الاستجابات لرمز مستهدف ، فمن الآمن حذف السجل الخاص بك من هذا الرمز المميز ، لأنه لن يكون صالحًا مرة أخرى. ومع ذلك ، ضع في اعتبارك أنه ستظل هناك حالات يكون فيها الرمز المميز غير صالح في الواقع ، ولكن لا يوجد ما يشير إليه. على سبيل المثال ، في بعض الأحيان لا تستطيع الواجهة الخلفية FCM التحقق مما إذا كان الجهاز قد توقف بشكل دائم أم لا.

ضمان حداثة رمز التسجيل

لا يعد تحديد ما إذا كان الرمز المميز حديثًا أم قديمًا أمرًا سهلاً دائمًا. لتغطية جميع الحالات ، يجب عليك اعتماد حد عند اعتبار الرموز التي لا معنى لها ؛ توصيتنا شهرين. من المحتمل أن يكون أي رمز مضى عليه أكثر من شهرين جهازًا غير نشط ؛ كان الجهاز النشط قد قام بتحديث رمزه المميز.

تحديث الرموز على أساس منتظم

نوصي باسترداد وتحديث كافة رموز التسجيل على الخادم الخاص بك بشكل دوري. هذا يتطلب منك:

  • أضف منطق التطبيق في تطبيق العميل الخاص بك لاسترداد الرمز المميز الحالي باستخدام استدعاء API المناسب (مثل token(completion): لأنظمة Apple أو getToken() لنظام Android) ثم أرسل الرمز المميز الحالي إلى خادم التطبيق الخاص بك للتخزين (مع طابع زمني ). قد تكون هذه وظيفة شهرية تم تكوينها لتغطية جميع العملاء / الرموز المميزة.
  • أضف منطق الخادم لتحديث الطابع الزمني للرمز المميز على فترات منتظمة ، بغض النظر عما إذا كان الرمز المميز قد تغير أم لا.

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

إلغاء الاشتراك في الرموز التي لا معنى لها من الموضوعات

تعد إدارة اشتراكات الموضوعات لإزالة رموز التسجيل التي لا معنى لها أحد الاعتبارات الأخرى. يتضمن خطوتين:

  1. يجب أن يشترك تطبيقك في الموضوعات مرة واحدة شهريًا و / أو كلما تغير رمز التسجيل. هذا يشكل حلاً ذاتي الإصلاح ، حيث تظهر الاشتراكات تلقائيًا عندما يصبح التطبيق نشطًا مرة أخرى.
  2. إذا كان مثيل التطبيق خاملاً لمدة شهرين (أو نافذة التوقف الخاصة بك) ، فيجب عليك إلغاء اشتراكه من الموضوعات التي تستخدم Firebase Admin SDK لحذف تعيين الرمز المميز / الموضوع من الواجهة الخلفية لـ FCM.

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

قياس نجاح التسليم

بشكل عام ، ننصح باستهداف الرسائل بناءً على الإجراءات التي تمت ملاحظتها أو التقاطها من مثيلات التطبيق المستخدمة بشكل نشط. هذا مهم بشكل خاص إذا كنت ترسل رسائل بانتظام إلى مواضيع بها أعداد كبيرة من المشتركين ؛ إذا كان جزء من هؤلاء المشتركين غير نشطين بالفعل ، فقد يكون التأثير على إحصائيات التسليم لديك كبيرًا بمرور الوقت.

قبل توجيه الرسائل إلى رمز مميز ، ضع في اعتبارك:

  • هل تشير Google Analytics أو البيانات الملتقطة في BigQuery أو إشارات التتبع الأخرى إلى أن الرمز المميز نشط؟
  • هل فشلت محاولات التسليم السابقة باستمرار على مدار فترة زمنية؟
  • هل تم تحديث رمز التسجيل على خوادمك في الشهرين الماضيين؟
  • بالنسبة لأجهزة Android ، هل تبلغ واجهة برمجة تطبيقات بيانات FCM عن نسبة عالية من حالات فشل تسليم الرسائل بسبب droppedDeviceInactive ؟

لمزيد من المعلومات حول التسليم ، راجع فهم تسليم الرسائل .