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