هدفنا هو دائمًا تسليم كل رسالة يتم إرسالها باستخدام ميزة "المراسلة عبر السحابة الإلكترونية من Firebase". ومع ذلك، قد يؤدي عرض كل رسالة في بعض الأحيان إلى تقديم تجربة سيئة للمستخدم بشكل عام. في حالات أخرى، نحتاج إلى وضع حدود لضمان توفير FCM خدمة قابلة للتوسّع لجميع المُرسِلين. تساعدنا أنواع الحدود والحصص الموضّحة في هذا القسم في تحقيق التوازن بين هذه العوامل المهمة.
الحدّ من عدد الرسائل الواردة
قدّمت واجهة برمجة التطبيقات HTTP v1 حصصًا لكل مشروع في الدقيقة للرسائل الواردة. تغطي الحصة التلقائية البالغة 600 ألف رسالة في الدقيقة أكثر من% 99 من FCMالمطوّرين، مع الحفاظ على استقرار النظام وتقليل تأثير المشاريع التي تشهد ارتفاعًا مفاجئًا في عدد الرسائل.
يمكن أن تؤدي أنماط حركة المرور الحادة إلى حدوث أخطاء تجاوز الحصة. في حال تجاوز الحصة المحدّدة، يعرض النظام رمز حالة HTTP 429 (QUOTA_EXCEEDED) إلى أن تتم إعادة تعبئة الحصة في الدقيقة التالية. قد يتم أيضًا عرض الردود 429 في حالات التحميل الزائد، لذا ننصحك بشدة بالتعامل مع الردود 429 وفقًا للتوصيات المنشورة.
يُرجى ملاحظة ما يلي:
- تقيس الحصة المتاحة للتنزيل الرسائل، وليس الطلبات.
- يتم احتساب أخطاء العميل (رمز حالة HTTP من 400 إلى 499) (باستثناء 429).
- تكون الحصص لكل دقيقة، ولكن لا تتم محاذاة هذه الدقائق مع الساعة.
حصة المراقبة
يمكنك الاطّلاع على الحصة والاستخدام والأخطاء في Google Cloud Console:
- انتقِل إلى وحدة تحكّم Google Cloud
- اختَر واجهات برمجة التطبيقات والخدمات.
- من قائمة الجداول، اختَر Firebase Cloud Messaging API.
- اختَر الحصة ونظام الحدود.
ملاحظة: لا تتطابق هذه الرسومات البيانية بدقة مع دقائق الحصة، ما يعني أنّه قد يتم عرض أخطاء 429 عندما يبدو أنّ عدد الزيارات أقل من الحصة.
طلب زيادة الحصة
قبل طلب زيادة الحصة، تأكَّد ممّا يلي:
- أن يكون معدّل استخدامك ≥% 80 من الحصة لمدة 5 دقائق متتالية على الأقل في اليوم.
- يجب أن تكون نسبة أخطاء العميل أقل من% 5، خاصةً خلال ذروة عدد الزيارات.
- يجب الالتزام بأفضل الممارسات لإرسال الرسائل على نطاق واسع.
إذا استوفيت هذه المعايير، يمكنك إرسال طلب لزيادة الحصة بنسبة تصل إلى +25%، وسيبذل فريق FCM كل جهد ممكن لتلبية الطلب (لا يمكن ضمان أي زيادة).
إذا كنت بحاجة إلى المزيد من حصة الرسائل الواردة بسبب إطلاق وشيك أو حدث مؤقت، يُرجى طلب الحصة قبل 15 يومًا على الأقل لمنحنا وقتًا كافيًا للتعامل مع الطلب. بالنسبة إلى الطلبات الكبيرة (أكثر من 18 مليون رسالة في الدقيقة)، يجب تقديم إشعار قبل 30 يومًا على الأقل. ستظل طلبات عمليات الإطلاق والفعاليات الخاصة خاضعة لنسبة أخطاء العميل ومتطلبات أفضل الممارسات.
راجِع أيضًا الأسئلة الشائعة حول حصص FCM.
الحد الأقصى لعدد الرسائل المتعلقة بموضوع معيّن
يقتصر معدّل إضافة الاشتراكات في المواضيع أو إزالتها على 3,000 طلب في الثانية لكل مشروع.
لمعرفة معدّلات إرسال الرسائل، يُرجى الاطّلاع على الحدّ من عدد الرسائل المتزامنة.
تقييد التوزيع الموسَّع
تتم عملية إرسال الرسائل إلى أجهزة متعددة عند استهداف مواضيع ومجموعات، أو عند استخدام أداة إنشاء الإشعارات لاستهداف شرائح الجمهور أو شرائح المستخدمين.
لا يتم إرسال الرسائل إلى عدة وجهات بشكل فوري، لذا قد تحدث أحيانًا عمليات إرسال متعددة إلى عدة وجهات في الوقت نفسه. نحصر عدد عمليات إرسال الرسائل المتزامنة لكل مشروع بـ 1,000 عملية. بعد ذلك، قد نرفض طلبات إرسال إضافية أو نؤجّل إرسال الطلبات إلى أن يكتمل بعض عمليات الإرسال الجارية.
يتأثر معدل التوزيع الفعلي الذي يمكن تحقيقه بعدد المشاريع التي تطلب عمليات توزيع في الوقت نفسه. من الشائع أن يبلغ معدّل النشر 10,000 طلب في الثانية لمشروع فردي، ولكن هذا الرقم ليس مضمونًا وهو نتيجة إجمالي الحمل على النظام. يُرجى العِلم أنّ سعة النشر المتاحة يتم تقسيمها بين المشاريع وليس بين طلبات النشر. لذا، إذا كان مشروعك يتضمّن عمليتَي توسيع نطاق قيد التقدّم، ستشهد كل عملية توسيع نطاق نصف معدّل التوسيع المتاح فقط. الطريقة المقترَحة لتحقيق أقصى سرعة في عملية التوزيع هي أن يكون لديك عملية توزيع نشطة واحدة فقط قيد التقدّم في كل مرة.
الحدّ من عدد الرسائل القابلة للتصغير
كما هو موضّح في الرسائل القابلة للتصغير، الرسائل القابلة للتصغير هي إشعارات لا تتضمّن محتوًى ومصمّمة ليتم تصغيرها فوق بعضها البعض. في حال تكرار المطوّر للرسالة نفسها إلى أحد التطبيقات بشكل متكرر جدًا، نؤخّر الرسائل (نحدّ من عددها) للحدّ من تأثيرها على بطارية المستخدم.
على سبيل المثال، إذا أرسلت أعدادًا كبيرة من طلبات مزامنة البريد الإلكتروني الجديدة إلى جهاز واحد، قد نؤخّر طلب مزامنة البريد الإلكتروني التالي لبضع دقائق حتى يتمكّن الجهاز من المزامنة بمعدّل متوسط أقل. ويتم هذا التقييد بشكل صارم بهدف الحد من تأثير التطبيق في البطارية.
إذا كانت حالة الاستخدام تتطلّب أنماط إرسال عالية السرعة، قد تكون الرسائل غير القابلة للتصغير هي الخيار المناسب. بالنسبة إلى هذه الرسائل، احرص على تضمين المحتوى في هذه الرسائل من أجل تقليل استهلاك البطارية.
نحصر الرسائل القابلة للتصغير على مجموعة من 20 رسالة لكل تطبيق على كل جهاز، مع إعادة تعبئة رسالة واحدة كل 3 دقائق.
الحدّ الأقصى لمعدّل الرسائل إلى جهاز واحد
في نظام التشغيل Android، يمكنك إرسال ما يصل إلى 240 رسالة في الدقيقة و5,000 رسالة في الساعة إلى جهاز واحد. يهدف هذا الحدّ المرتفع إلى السماح بزيادة مؤقتة في عدد الزيارات، مثلاً عندما يتفاعل المستخدمون بسرعة عبر المحادثة. يمنع هذا الحدوث أخطاء في منطق الإرسال تؤدي إلى استنزاف البطارية بدون قصد على الجهاز.
بالنسبة إلى iOS، نعرض رسالة خطأ عندما يتجاوز المعدّل حدود APNs.