Catch up on everthing we announced at this year's Firebase Summit. Learn more

এফসিএম নিবন্ধকরণ টোকেন পরিচালনার জন্য সেরা অনুশীলন

আপনি যদি প্রোগ্রামগতভাবে অনুরোধ পাঠানোর জন্য 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): অ্যাপল প্ল্যাটফর্মের বা getToken() Android এর জন্য) এবং তারপর বর্তমান টোকেনের টাইমস্ট্যাম্প সঙ্গে (সঞ্চয়ের জন্য আপনার app সার্ভারে পাঠাতে ) এটি সমস্ত ক্লায়েন্ট/টোকেন কভার করার জন্য কনফিগার করা একটি মাসিক কাজ হতে পারে।
  • টোকেন পরিবর্তিত হয়েছে কিনা তা নির্বিশেষে নিয়মিত বিরতিতে টোকেনের টাইমস্ট্যাম্প আপডেট করতে সার্ভার লজিক যোগ করুন।

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

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

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

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

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

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

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

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

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

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