Check out what’s new from Firebase at Google I/O 2022. Learn more

FCM রেজিস্ট্রেশন টোকেন ম্যানেজমেন্টের জন্য সর্বোত্তম অনুশীলন

আপনি যদি প্রোগ্রামগতভাবে অনুরোধ পাঠানোর জন্য FCM API ব্যবহার করেন, তাহলে আপনি দেখতে পাবেন যে, সময়ের সাথে সাথে, আপনি পুরানো রেজিস্ট্রেশন টোকেন সহ নিষ্ক্রিয় ডিভাইসগুলিতে বার্তা পাঠিয়ে সম্পদ নষ্ট করছেন। এই পরিস্থিতি Firebase কনসোলে রিপোর্ট করা মেসেজ ডেলিভারি ডেটা বা BigQuery-এ রপ্তানি করা ডেটাকে প্রভাবিত করতে পারে, ডেলিভারির হারে নাটকীয় (কিন্তু বাস্তবে বৈধ নয়) হিসাবে দেখা যাচ্ছে। দক্ষ বার্তা টার্গেটিং এবং বৈধ ডেলিভারি রিপোর্টিং নিশ্চিত করতে সাহায্য করার জন্য আপনি নিতে পারেন এমন কিছু ব্যবস্থা নিয়ে এই নির্দেশিকা আলোচনা করে।

মৌলিক সেরা অনুশীলন

এমন কিছু মৌলিক অনুশীলন রয়েছে যা আপনাকে যে কোনো অ্যাপে অনুসরণ করা উচিত যেটি প্রোগ্রামগতভাবে অনুরোধ পাঠানোর জন্য FCM API ব্যবহার করে। প্রধান সেরা অনুশীলন হল:

  • আপনার সার্ভারে রেজিস্ট্রেশন টোকেন সংরক্ষণ করুন। সার্ভারের জন্য একটি গুরুত্বপূর্ণ ভূমিকা হল প্রতিটি ক্লায়েন্টের টোকেনের ট্র্যাক রাখা এবং সক্রিয় টোকেনের একটি আপডেট তালিকা রাখা। আমরা দৃঢ়ভাবে আপনার কোড এবং আপনার সার্ভারে একটি টোকেন টাইমস্ট্যাম্প প্রয়োগ করার এবং নিয়মিত বিরতিতে এই টাইমস্ট্যাম্প আপডেট করার সুপারিশ করি৷
  • সঞ্চিত টোকেনগুলি সরান যা বাসি হয়ে গেছে । অবৈধ টোকেন প্রতিক্রিয়াগুলির সুস্পষ্ট ক্ষেত্রে টোকেনগুলি সরানোর পাশাপাশি, আপনাকে সম্ভবত অন্যান্য লক্ষণগুলি পর্যবেক্ষণ করতে হবে যে টোকেনটি পুরানো। এই গাইডটি এটি অর্জনের জন্য আপনার কিছু বিকল্প নিয়ে আলোচনা করে।

রেজিস্ট্রেশন টোকেন পুনরুদ্ধার করুন এবং সংরক্ষণ করুন

আপনার অ্যাপের প্রাথমিক স্টার্টআপে, FCM SDK ক্লায়েন্ট অ্যাপের উদাহরণের জন্য একটি রেজিস্ট্রেশন টোকেন তৈরি করে। এটি সেই টোকেন যা আপনাকে অবশ্যই API থেকে টার্গেটেড সেন্ড রিকোয়েস্টে অন্তর্ভুক্ত করতে হবে, অথবা টপিক টার্গেট করার জন্য টপিক সাবস্ক্রিপশনে যোগ করতে হবে।

আমাদের ক্লায়েন্ট সেটআপ নির্দেশিকাগুলিতে উল্লিখিত হিসাবে, আপনার অ্যাপকে প্রাথমিক স্টার্টআপে এই টোকেনটি পুনরুদ্ধার করা উচিত এবং একটি টাইমস্ট্যাম্পের সাথে আপনার অ্যাপ সার্ভারে সংরক্ষণ করা উচিত । এই টাইমস্ট্যাম্পটি আপনার কোড এবং আপনার সার্ভার দ্বারা প্রয়োগ করা আবশ্যক, কারণ এটি আপনার জন্য FCM SDK দ্বারা সরবরাহ করা হয় না।

এছাড়াও, সার্ভারে টোকেন সংরক্ষণ করা এবং টাইমস্ট্যাম্প আপডেট করা গুরুত্বপূর্ণ, যখনই এটি পরিবর্তন হয়, যেমন যখন:

  • অ্যাপটি একটি নতুন ডিভাইসে পুনরুদ্ধার করা হয়েছে
  • ব্যবহারকারী অ্যাপটি আনইনস্টল/পুনরায় ইনস্টল করে
  • ব্যবহারকারী অ্যাপ ডেটা সাফ করে।

FCM ব্যাকএন্ড থেকে অবৈধ টোকেন প্রতিক্রিয়া সনাক্ত করুন৷

FCM থেকে অবৈধ টোকেন প্রতিক্রিয়া শনাক্ত করা নিশ্চিত করুন এবং আপনার সিস্টেম থেকে অবৈধ বলে পরিচিত যে কোনো নিবন্ধন টোকেন মুছে ফেলার মাধ্যমে প্রতিক্রিয়া জানান৷ HTTP v1 API-এর সাথে, এই ত্রুটি বার্তাগুলি নির্দেশ করতে পারে যে আপনার পাঠানো অনুরোধটি লক্ষ্যবস্তু বা অবৈধ টোকেনগুলিকে লক্ষ্য করে:

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

আরো তথ্যের জন্য ErrorCodes দেখুন।

যদি আপনি একটি টার্গেটেড টোকেনের জন্য এই প্রতিক্রিয়াগুলির মধ্যে একটি পান তবে এই টোকেনের আপনার রেকর্ড মুছে ফেলা নিরাপদ, কারণ এটি আর কখনও বৈধ হবে না। যাইহোক, মনে রাখবেন যে এখনও এমন কিছু ক্ষেত্রে থাকবে যেখানে একটি টোকেন আসলে অবৈধ, কিন্তু এটির কোন ইঙ্গিত নেই। উদাহরণস্বরূপ, কখনও কখনও FCM ব্যাকএন্ড একটি ডিভাইস স্থায়ীভাবে অফলাইন হয়েছে কিনা তা যাচাই করতে পারে না।

নিবন্ধন টোকেন সতেজতা নিশ্চিত করা

একটি টোকেন তাজা বা বাসি কিনা তা নির্ধারণ করা সর্বদা সোজা নয়। সমস্ত ক্ষেত্রে কভার করার জন্য, আপনি যখন টোকেনগুলিকে বাসি মনে করেন তখন আপনার একটি থ্রেশহোল্ড গ্রহণ করা উচিত; আমাদের সুপারিশ দুই মাস। দুই মাসের বেশি পুরানো কোনো টোকেন একটি নিষ্ক্রিয় ডিভাইস হতে পারে; একটি সক্রিয় ডিভাইস অন্যথায় তার টোকেন রিফ্রেশ হবে.

নিয়মিত টোকেন আপডেট করুন

আমরা সুপারিশ করি যে আপনি পর্যায়ক্রমে আপনার সার্ভারে সমস্ত নিবন্ধন টোকেন পুনরুদ্ধার এবং আপডেট করুন৷ এর জন্য আপনার প্রয়োজন:

  • উপযুক্ত API কল ব্যবহার করে বর্তমান টোকেন পুনরুদ্ধার করতে আপনার ক্লায়েন্ট অ্যাপে অ্যাপ লজিক যোগ করুন (যেমন token(completion): Apple প্ল্যাটফর্মের জন্য বা Android এর জন্য getToken() ) এবং তারপর স্টোরেজের জন্য আপনার অ্যাপ সার্ভারে বর্তমান টোকেন পাঠান (টাইমস্ট্যাম্প সহ) ) এটি সমস্ত ক্লায়েন্ট/টোকেন কভার করার জন্য কনফিগার করা একটি মাসিক কাজ হতে পারে।
  • টোকেন পরিবর্তিত হয়েছে কিনা তা নির্বিশেষে নিয়মিত বিরতিতে টোকেনের টাইমস্ট্যাম্প আপডেট করতে সার্ভার লজিক যোগ করুন।

আপনি যে টাইমিং প্যাটার্ন অনুসরণ করুন না কেন, পর্যায়ক্রমে টোকেন আপডেট করতে ভুলবেন না। প্রতি মাসে একবার আপডেট ফ্রিকোয়েন্সি সম্ভবত ব্যাটারি প্রভাব বনাম নিষ্ক্রিয় নিবন্ধন টোকেন সনাক্তকরণের মধ্যে একটি ভাল ভারসাম্য সৃষ্টি করে। এই রিফ্রেশ করার মাধ্যমে, আপনি এটাও নিশ্চিত করেন যে নিষ্ক্রিয় হয়ে যাওয়া যেকোন ডিভাইস আবার সক্রিয় হয়ে গেলে তার রেজিস্ট্রেশন রিফ্রেশ করবে। সাপ্তাহিক থেকে বেশি ঘন ঘন রিফ্রেশ করার কোন সুবিধা নেই।

বিষয় থেকে বাসি টোকেন সদস্যতা ত্যাগ করুন

পুরানো রেজিস্ট্রেশন টোকেনগুলি সরাতে বিষয়ের সদস্যতাগুলি পরিচালনা করা আরেকটি বিবেচ্য বিষয়। এটি দুটি পদক্ষেপ জড়িত:

  1. আপনার অ্যাপটি প্রতি মাসে একবার এবং/অথবা যখনই নিবন্ধন টোকেন পরিবর্তন হয় তখন বিষয়গুলিতে পুনরায় সদস্যতা নেওয়া উচিত। এটি একটি স্ব-নিরাময় সমাধান গঠন করে, যেখানে একটি অ্যাপ আবার সক্রিয় হলে সদস্যতাগুলি স্বয়ংক্রিয়ভাবে পুনরায় উপস্থিত হয়।
  2. যদি একটি অ্যাপ ইন্সট্যান্স 2 মাস ধরে নিষ্ক্রিয় থাকে (বা আপনার নিজের অচলতা উইন্ডো) তাহলে আপনাকে FCM ব্যাকএন্ড থেকে টোকেন/টপিক ম্যাপিং মুছে ফেলতে Firebase অ্যাডমিন SDK ব্যবহার করে বিষয়গুলি থেকে সদস্যতা ত্যাগ করতে হবে।

এই দুটি পদক্ষেপের সুবিধা হল যে আপনার ফ্যানআউটগুলি দ্রুত ঘটবে কারণ ফ্যান আউট করার জন্য কম স্টল টোকেন রয়েছে এবং আপনার পুরানো অ্যাপের দৃষ্টান্তগুলি আবার সক্রিয় হয়ে গেলে স্বয়ংক্রিয়ভাবে পুনরায় সদস্যতা পাবে৷

বিতরণ সাফল্য পরিমাপ

সাধারণত, আমরা সক্রিয়ভাবে ব্যবহৃত অ্যাপ ইন্সট্যান্স থেকে দেখা বা ক্যাপচার করা ক্রিয়াগুলির উপর ভিত্তি করে বার্তাগুলিকে লক্ষ্য করার পরামর্শ দিই। এটি বিশেষ করে গুরুত্বপূর্ণ যদি আপনি নিয়মিতভাবে বিপুল সংখ্যক গ্রাহক সহ বিষয়গুলিতে বার্তা পাঠান; যদি সেই গ্রাহকদের একটি অংশ প্রকৃতপক্ষে নিষ্ক্রিয় থাকে, তবে আপনার বিতরণ পরিসংখ্যানের উপর প্রভাব সময়ের সাথে উল্লেখযোগ্য হতে পারে।

একটি টোকেন বার্তা লক্ষ্য করার আগে, বিবেচনা করুন:

  • Google Analytics, BigQuery-এ ক্যাপচার করা ডেটা বা অন্যান্য ট্র্যাকিং সিগন্যাল কি টোকেনটি সক্রিয় বলে ইঙ্গিত করে?
  • পূর্ববর্তী ডেলিভারি প্রচেষ্টা একটি নির্দিষ্ট সময়ের মধ্যে ধারাবাহিকভাবে ব্যর্থ হয়েছে?
  • গত দুই মাসে আপনার সার্ভারে নিবন্ধন টোকেন আপডেট করা হয়েছে?
  • অ্যান্ড্রয়েড ডিভাইসের জন্য, FCM ডেটা এপিআই কি droppedDeviceInactive কারণে বার্তা বিতরণ ব্যর্থতার একটি উচ্চ শতাংশ রিপোর্ট করে?

ডেলিভারি সম্পর্কে আরও তথ্যের জন্য, বার্তা বিতরণ বোঝা দেখুন।