আমাদের লক্ষ্য হলো FCM ব্যবহার করে পাঠানো প্রতিটি বার্তা সর্বদা পৌঁছে দেওয়া। তবে, প্রতিটি বার্তা পৌঁছে দেওয়ার ফলে কখনও কখনও ব্যবহারকারীর সামগ্রিক অভিজ্ঞতা খারাপ হয়। অন্য ক্ষেত্রে, FCM যেন সকল প্রেরকের জন্য একটি পরিবর্ধনযোগ্য পরিষেবা প্রদান করে, তা নিশ্চিত করতে আমাদের কিছু সীমা নির্ধারণ করতে হয়। এই বিভাগে বর্ণিত বিভিন্ন ধরনের সীমা ও কোটা আমাদের এই গুরুত্বপূর্ণ বিষয়গুলোর মধ্যে ভারসাম্য বজায় রাখতে সাহায্য করে।
ডাউনস্ট্রিম বার্তা থ্রটলিং
HTTP v1 API ডাউনস্ট্রিম মেসেজিংয়ের জন্য প্রজেক্ট-ভিত্তিক ও মিনিট-ভিত্তিক কোটা চালু করেছে। প্রতি মিনিটে ৬ লক্ষ মেসেজের ডিফল্ট কোটা ৯৯%-এরও বেশি FCM ডেভেলপারকে পরিষেবা দেয়, একই সাথে সিস্টেমের স্থিতিশীলতা রক্ষা করে এবং স্পাইকি প্রজেক্টের প্রভাব কমিয়ে আনে।
ট্র্যাফিকের আকস্মিক বৃদ্ধি বা আকস্মিকতার কারণে কোটা অতিক্রম করার ত্রুটি দেখা দিতে পারে। কোটা অতিক্রম করার পরিস্থিতিতে, পরবর্তী মিনিটে কোটা পুনরায় পূরণ না হওয়া পর্যন্ত সিস্টেমটি HTTP স্ট্যাটাস কোড 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") প্রদর্শন করে। ওভারলোডের পরিস্থিতিতেও 429 প্রতিক্রিয়া আসতে পারে, তাই প্রকাশিত সুপারিশ অনুযায়ী 429 প্রতিক্রিয়াগুলো পরিচালনা করার জন্য আপনাকে দৃঢ়ভাবে উৎসাহিত করা হচ্ছে।
মনে রাখবেন:
- ডাউনস্ট্রিম কোটা মেসেজ পরিমাপ করে, রিকোয়েস্ট নয়।
- ক্লায়েন্ট ত্রুটি (HTTP স্ট্যাটাস কোড 400-499) গণনা করা হয় (429 বাদে)।
- কোটা মিনিট-ভিত্তিক, কিন্তু এই মিনিটগুলো ঘড়ির সাথে মেলানো নেই।
পর্যবেক্ষণ কোটা
আপনি Google Cloud কনসোলে কোটা, ব্যবহার এবং ত্রুটি দেখতে পারেন:
Google Cloud কনসোলে যান।
এপিআই ও পরিষেবাগুলো নির্বাচন করুন।
টেবিলের তালিকা থেকে Firebase Cloud Messaging API নির্বাচন করুন।
কোটা ও সিস্টেম সীমা নির্বাচন করুন।
কোটা বৃদ্ধির জন্য অনুরোধ করুন
কোটা বৃদ্ধির অনুরোধ করার আগে নিশ্চিত করুন যে:
- আপনার ব্যবহার প্রতিদিন কমপক্ষে একটানা ৫ মিনিট ধরে নিয়মিতভাবে কোটার ৮০% বা তার বেশি থাকে।
- আপনার ক্লায়েন্ট ত্রুটির হার ৫%-এরও কম, বিশেষ করে সর্বোচ্চ ট্র্যাফিকের সময়।
- আপনি বৃহৎ পরিসরে বার্তা পাঠানোর জন্য সর্বোত্তম পদ্ধতিগুলো মেনে চলেন।
আপনি যদি এই শর্তগুলো পূরণ করেন, তাহলে নিম্নলিখিত পদ্ধতি ব্যবহার করে গুগল ক্লাউড কনসোলে সর্বোচ্চ +২৫% পর্যন্ত কোটা বৃদ্ধির জন্য অনুরোধ জমা দিতে পারেন:
- কোটা ও সিস্টেম সীমা- তে যান।
- টেবিল থেকে, 'প্রতি মিনিটে অনুরোধ পাঠান' সারিটি নির্বাচন করুন।
- এডিট বাটনটিতে ক্লিক করুন।
- আপনার অনুরোধটি করার জন্য নির্দেশাবলী অনুসরণ করুন।
FCM অনুরোধটি পূরণ করার জন্য সর্বাত্মক চেষ্টা করবে (তবে বৃদ্ধির কোনো নিশ্চয়তা দেওয়া সম্ভব নয়)।
যদি কোনো আসন্ন লঞ্চ বা সাময়িক ইভেন্টের কারণে আপনার আরও ডাউনস্ট্রিম মেসেজিং কোটার প্রয়োজন হয়, তবে আপনাকে অবশ্যই ফায়ারবেস সাপোর্টের মাধ্যমে আপনার কোটা বৃদ্ধির অনুরোধ করতে হবে। অনুরোধটি পরিচালনা করার জন্য পর্যাপ্ত সময় দিতে, কমপক্ষে ১৫ দিন আগে আপনার কোটার জন্য অনুরোধ করুন। বড় অনুরোধের ক্ষেত্রে (প্রতি মিনিটে >১৮ মিলিয়ন মেসেজ), কমপক্ষে ৩০ দিনের নোটিশ প্রয়োজন। আমরা প্রতি বছর শুধুমাত্র ২টি অস্থায়ী কোটা ইভেন্ট অনুমোদন করতে পারি। সারা বছর জুড়ে অস্থায়ী কোটার মোট সময়কাল ৩০ দিনের বেশি হওয়া উচিত নয়। লঞ্চ এবং বিশেষ ইভেন্টের অনুরোধগুলো ক্লায়েন্ট এরর রেশিও এবং বেস্ট প্র্যাকটিসেস-এর প্রয়োজনীয়তার অধীন থাকবে।
আরও জানতে, FCM কোটা দেখুন।
টপিক মেসেজ সীমা এবং ফ্যানআউট থ্রটলিং
আরও বিস্তারিত তথ্যের জন্য টপিক মেসেজিং কোটা এবং সীমা দেখুন।
সংকোচনযোগ্য বার্তা থ্রটলিং
"সংকোচনযোগ্য বার্তা" -তে যেমন বর্ণনা করা হয়েছে, সংকোচনযোগ্য বার্তা হলো বিষয়বস্তুবিহীন নোটিফিকেশন যা একটির উপর আরেকটি ভাঁজ হয়ে যাওয়ার জন্য ডিজাইন করা হয়েছে। যদি কোনো ডেভেলপার একটি অ্যাপে একই বার্তা খুব ঘন ঘন পাঠান, তাহলে ব্যবহারকারীর ব্যাটারির উপর প্রভাব কমাতে আমরা বার্তাগুলো পাঠাতে দেরি করি।
উদাহরণস্বরূপ, আপনি যদি একটি ডিভাইসে প্রচুর পরিমাণে নতুন ইমেল সিঙ্ক করার অনুরোধ পাঠান, তাহলে আমরা পরবর্তী ইমেল সিঙ্ক করার অনুরোধটি কয়েক মিনিটের জন্য বিলম্বিত করতে পারি, যাতে ডিভাইসটি কম গড় হারে সিঙ্ক করতে পারে। ব্যবহারকারীর ব্যাটারির উপর প্রভাব সীমিত রাখার জন্যই এই গতি কমানো হয়।
যদি আপনার ব্যবহারের ক্ষেত্রে ঘন ঘন বার্তা পাঠানোর প্রয়োজন হয়, তাহলে অসংকোচনযোগ্য বার্তাগুলোই সঠিক বিকল্প হতে পারে। এই ধরনের বার্তাগুলোর ক্ষেত্রে, ব্যাটারির খরচ কমাতে সেগুলোর ভেতরে বিষয়বস্তু অন্তর্ভুক্ত করা নিশ্চিত করুন।
আমরা প্রতিটি ডিভাইসের প্রতিটি অ্যাপের জন্য একবারে ২০টি সংকুচিতযোগ্য বার্তা পাঠানোর সুযোগ সীমাবদ্ধ রেখেছি, এবং প্রতি ৩ মিনিটে ১টি করে বার্তা পুনরায় পূর্ণ হয়।
একটি ডিভাইসে সর্বোচ্চ বার্তা পাঠানোর হার
For Android, you can send up to 240 messages per minute and 5,000 messages per hour to a single device. This high threshold is meant to allow for short term bursts of traffic, such as when users are interacting rapidly over chat. This limit prevents errors in sending logic from inadvertently draining the battery on a device.
iOS-এর ক্ষেত্রে, রেট APNs সীমা অতিক্রম করলে আমরা একটি ত্রুটি দেখাই।