המטרה שלנו היא תמיד למסור כל הודעה שנשלחת באמצעות FCM. עם זאת, שליחת כל הודעה עלולה לפגוע בחוויית המשתמש הכוללת. במקרים אחרים, אנחנו צריכים להגדיר גבולות כדי להבטיח ש-FCM יספק שירות ניתן להרחבה לכל השולחים. המגבלות והמכסות שמתוארות בקטע הזה עוזרות לנו לאזן בין הגורמים החשובים האלה.
הגבלת קצב העברת הודעות במורד הזרם
ב-HTTP v1 API הוספנו מכסות לכל פרויקט ולכל דקה להעברת הודעות במורד הזרם. מכסת ברירת המחדל של 600,000 הודעות לדקה מכסה יותר מ-99% מהמפתחים, תוך שמירה על יציבות המערכת ומזעור ההשפעה של פרויקטים עם עליות חדות.FCM
דפוסי תנועה עם עליות חדות עלולים לגרום לשגיאות שקשורות לחריגה מהמכסה. במקרה של חריגה מהמכסה, המערכת מציגה את קוד הסטטוס 429 RESOURCE_EXHAUSTED HTTP (QUOTA_EXCEEDED) עד שהמכסה מתמלאת מחדש בדקה הבאה. יכול להיות שיוחזרו גם תגובות 429 במצבי עומס יתר, ולכן מומלץ מאוד לטפל בתגובות 429 בהתאם להמלצות שפורסמו.
חשוב לזכור:
- המכסה במורד הזרם מתייחס להודעות ולא לבקשות.
- שגיאות לקוח (קוד סטטוס של HTTP 400-499) נספרות (לא כולל 429).
- המכסות הן לדקה, אבל הדקות האלה לא תואמות לשעון.
מכסת המעקב
אפשר לראות את המכסות, השימוש והשגיאות במסוף Google Cloud באמצעות האפשרויות הבאות:
- עוברים אל מסוף Google Cloud.
- בוחרים באפשרות APIs & services.
- מרשימת הטבלאות, בוחרים באפשרות Firebase Cloud Messaging API.
- בוחרים באפשרות QUOTA & SYSTEM LIMITS (מכסות ומגבלות מערכת).
איך מבקשים להגדיל את המכסות
לפני שמבקשים להגדיל את המכסה, חשוב לוודא את הפרטים הבאים:
- השימוש שלכם הוא באופן קבוע ≥ 80% מהמכסה למשך 5 דקות רצופות לפחות בכל יום.
- שיעור שגיאות הלקוח נמוך מ-5%, במיוחד בזמן שיא התנועה.
- אתם פועלים לפי השיטות המומלצות לשליחת הודעות בהיקף גדול.
אם אתם עומדים בקריטריונים האלה, אתם יכולים לשלוח בקשה להגדלת המכסה בעד 25% +, ו-FCM יעשה כל מאמץ מעשי כדי למלא את הבקשה (אין ערובה להגדלה).
אם אתם צריכים מכסת הודעות גדולה יותר בגלל השקה קרובה או אירוע זמני, מומלץ לשלוח את הבקשה לפחות 15 ימים מראש כדי שיהיה מספיק זמן לטפל בה. לגבי בקשות גדולות (יותר מ-18 מיליון הודעות בדקה), נדרש לפחות 30 יום מראש. אנחנו יכולים לאשר רק 2 אירועים של מכסה זמנית בשנה. המשך הכולל של מכסת השימוש הזמנית במהלך השנה לא יכול להיות יותר מ-30 ימים. הדרישות לגבי יחס שגיאות הלקוח והשיטות המומלצות עדיין חלות על בקשות להשקות ולאירועים מיוחדים.
מידע נוסף זמין במאמר בנושא מכסות של FCM.
מגבלות על הודעות בנושאים וויסות של העברת הודעות
פרטים נוספים זמינים במאמר מכסות ומגבלות של הודעות בנושאים.
הגבלת קצב השליחה של הודעות שניתנות לכיווץ
כפי שמתואר במאמר בנושא הודעות שניתן לכווץ, הודעות שניתן לכווץ הן התראות ללא תוכן שנועדו להתקפל אחת על השנייה. אם מפתח חוזר על אותה הודעה באפליקציה בתדירות גבוהה מדי, אנחנו מעכבים את ההודעות כדי לצמצם את ההשפעה על הסוללה של המשתמש.
לדוגמה, אם אתם שולחים מספר גדול של בקשות חדשות לסנכרון אימייל למכשיר יחיד, יכול להיות שנעכב את הבקשה הבאה לסנכרון אימייל למשך כמה דקות כדי שהמכשיר יוכל לבצע סנכרון בקצב ממוצע נמוך יותר. ההגבלה הזו מתבצעת אך ורק כדי לצמצם את ההשפעה על הסוללה שהמשתמש חווה.
אם תרחיש השימוש שלכם דורש דפוסי שליחה של פרצי תנועה גבוהים, יכול להיות שהודעות לא מצטמצמות הן הבחירה הנכונה. בהודעות כאלה, חשוב לכלול את התוכן כדי להפחית את העלות של השימוש בסוללה.
אנחנו מגבילים את מספר ההודעות המתקפלות ל-20 הודעות לכל אפליקציה לכל מכשיר, עם מילוי מחדש של הודעה אחת כל 3 דקות.
קצב ההודעות המקסימלי למכשיר יחיד
ב-Android, אפשר לשלוח עד 240 הודעות בדקה ו-5,000 הודעות בשעה למכשיר אחד. הסף הגבוה הזה נועד לאפשר פרצי תנועה לטווח קצר, למשל כשמשתמשים מקיימים אינטראקציה מהירה בצ'אט. המגבלה הזו מונעת שגיאות בלוגיקת השליחה שעלולות לגרום לניקוז הסוללה במכשיר.
ב-iOS, אנחנו מחזירים שגיאה כשהקצב חורג מהמגבלות של APNs.