আপনার পণ্য ক্যাটালগ পরিচালনা করুন

এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে, কীভাবে গুগল প্লে ডেভেলপার এপিআই ব্যবহার করে আপনার প্লে অ্যাপের জন্য একটি প্রোডাক্ট ক্যাটালগ তৈরি ও পরিচালনা করতে হয়।

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

ক্যাটালগ ম্যানেজমেন্ট এপিআই

গুগল প্লে-এর বিলিং সিস্টেম ব্যবহার করে আপনি যে বিভিন্ন ধরণের পণ্য বিক্রি করতে পারেন, সে সম্পর্কে জানতে ‘ইন-অ্যাপ পণ্যের প্রকারভেদ এবং ক্যাটালগ সংক্রান্ত বিবেচ্য বিষয়সমূহ বুঝুন ’ পড়ুন। গুগল প্লে-তে ক্যাটালগ ব্যবস্থাপনার জন্য দুটি প্রধান এপিআই সেট অফার করে, যা দুটি প্রধান পণ্যের বিভাগের সাথে সঙ্গতিপূর্ণ:

  • এককালীন পণ্য
  • সাবস্ক্রিপশন পণ্য

এককালীন পণ্য

ওয়ান-টাইম প্রোডাক্টগুলো (যা পূর্বে ইন-অ্যাপ প্রোডাক্ট নামে পরিচিত ছিল) ওয়ান-টাইম প্রোডাক্ট অবজেক্ট মডেল ব্যবহার করে, যা আপনাকে আপনার ওয়ান-টাইম প্রোডাক্টগুলোর জন্য একাধিক ক্রয়ের বিকল্প এবং অফার কনফিগার করার সুযোগ দেয়। ওয়ান-টাইম প্রোডাক্ট অবজেক্ট মডেল আপনাকে পণ্য বিক্রির পদ্ধতিতে অধিকতর নমনীয়তা প্রদান করে এবং এগুলোর ব্যবস্থাপনার জটিলতা হ্রাস করে। আপনার বিদ্যমান ইন-অ্যাপ প্রোডাক্টগুলো ওয়ান-টাইম প্রোডাক্ট অবজেক্ট মডেলে মাইগ্রেট করা হবে। আরও তথ্যের জন্য ‘ইন-অ্যাপ প্রোডাক্টের মাইগ্রেশন’ দেখুন।

monetization.onetimeproducts এবং inappproducts এন্ডপয়েন্টগুলো আপনাকে আপনার ব্যাকএন্ড থেকে ওয়ান-টাইম প্রোডাক্টগুলো পরিচালনা করতে দেয়। এর মধ্যে রয়েছে প্রোডাক্ট তৈরি, আপডেট এবং ডিলিট করা, এবং মূল্য ও প্রাপ্যতা পরিচালনা করা। আপনি ওয়ান-টাইম প্রোডাক্টের কেনাকাটা কীভাবে পরিচালনা করেন তার উপর নির্ভর করে, আপনি কনজিউমেবল প্রোডাক্ট (যা যতবার ইচ্ছা কেনা যাবে) অথবা পার্মানেন্ট এনটাইটেলমেন্ট (যা একই ব্যবহারকারী দুবার করতে পারবে না) মডেল করবেন। কোন ওয়ান-টাইম প্রোডাক্টগুলো কনজিউমেবল হবে বা হবে না, তা আপনিই নির্ধারণ করতে পারেন।

সাবস্ক্রিপশন পণ্য

monetization.subscriptions এন্ডপয়েন্টটি আপনাকে আপনার ডেভেলপার ব্যাকএন্ড থেকে সাবস্ক্রিপশন প্রোডাক্টগুলো পরিচালনা করতে সাহায্য করে। আপনি সাবস্ক্রিপশন তৈরি, আপডেট এবং ডিলিট করার মতো কাজ করতে পারেন, অথবা সেগুলোর আঞ্চলিক প্রাপ্যতা এবং মূল্য নিয়ন্ত্রণ করতে পারেন। monetization.subscriptions এন্ডপয়েন্টটি ছাড়াও, আমরা যথাক্রমে সাবস্ক্রিপশনের বেস প্ল্যান এবং অফারগুলো পরিচালনা করার জন্য monetization.subscriptions.basePlans এবং monetization.subscriptions.basePlans.offers এন্ডপয়েন্টও প্রদান করি।

ব্যাচ পদ্ধতি

onetimeproducts , inappproducts , এবং monetization.subscriptions এন্ডপয়েন্টগুলো বেশ কিছু ব্যাচ মেথড প্রদান করে, যার মাধ্যমে একই অ্যাপের অধীনে থাকা ১০০টি পর্যন্ত এনটিটি একই সময়ে পুনরুদ্ধার বা পরিচালনা করা যায়।

ল্যাটেন্সি টলারেন্স সক্রিয় রেখে ব্যবহার করা হলে ব্যাচ মেথডগুলো উচ্চতর থ্রুপুট প্রদান করে এবং বৃহৎ ক্যাটালগ ডেভেলপারদের জন্য প্রাথমিক ক্যাটালগ তৈরি বা ক্যাটালগ সমন্বয়ের ক্ষেত্রে বিশেষভাবে উপযোগী।

আপডেট প্রচারের বিলম্ব বনাম থ্রুপুট

একটি পণ্য তৈরি বা পরিবর্তনের অনুরোধ সম্পন্ন হওয়ার পরে, নেটওয়ার্ক বা ব্যাকএন্ড প্রক্রিয়াকরণের বিলম্বের কারণে পরিবর্তনগুলি শেষ ব্যবহারকারীদের ডিভাইসে সঙ্গে সঙ্গে দৃশ্যমান নাও হতে পারে। ডিফল্টরূপে, সমস্ত পণ্য পরিবর্তনের অনুরোধ ল্যাটেন্সি-সংবেদনশীল। এর মানে হল, এগুলি ব্যাকএন্ড সিস্টেমের মাধ্যমে দ্রুত প্রচারের জন্য অপ্টিমাইজ করা হয়েছে, যা সাধারণত কয়েক মিনিটের মধ্যে শেষ ব্যবহারকারীর ডিভাইসে প্রতিফলিত হয়। তবে, এই ধরনের পরিবর্তনের অনুরোধের সংখ্যার উপর ঘণ্টায় একটি সীমা রয়েছে। যেসব ক্ষেত্রে আপনাকে অনেক পণ্য তৈরি বা আপডেট করতে হবে (উদাহরণস্বরূপ, প্রাথমিক বড় ক্যাটালগ তৈরির সময়), আপনি ব্যাচ পদ্ধতি ব্যবহার করতে পারেন যেখানে latencyTolerance ফিল্ডটি PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT এ সেট করা থাকবে। এটি আপডেটের থ্রুপুট উল্লেখযোগ্যভাবে বৃদ্ধি করবে। ল্যাটেন্সি-সহনশীল আপডেটগুলি শেষ ব্যবহারকারীর ডিভাইসে পৌঁছাতে ২৪ ঘণ্টা পর্যন্ত সময় নেবে।

কোটা কনফিগারেশন

আপনার প্রোডাক্ট ক্যাটালগ পরিচালনা করার জন্য প্লে ডেভেলপার এপিআই ব্যবহার করার সময় কয়েকটি কোটা সীমা সম্পর্কে আপনার সচেতন থাকা উচিত:

  1. গুগল প্লে ডেভেলপার এপিআই-গুলো বাকেট নামক বিভিন্ন ক্যাটাগরিতে বিভক্ত, যেখানে প্রতিটি বাকেটের নিজস্ব মিনিট-প্রতি কোটা সীমা রয়েছে। আরও তথ্যের জন্য, কোটা দেখুন।
  2. প্রোডাক্ট মডিফিকেশন এন্ডপয়েন্টগুলো প্রতি ঘন্টায় ৭,২০০টি কোয়েরির একটি সীমাও প্রয়োগ করে। এই সীমাটি ওয়ান-টাইম প্রোডাক্ট ও সাবস্ক্রিপশন উভয়ের ক্ষেত্রেই এবং তৈরি, আপডেট, অ্যাক্টিভেট ও ডিলিট সহ সমস্ত মডিফিকেশন রিকোয়েস্টের জন্য প্রযোজ্য। এই কোটার ক্ষেত্রে, ব্যাচ মডিফিকেশন মেথড কলগুলোকে একটি কোয়েরি হিসেবে গণ্য করা হয়, তাতে অন্তর্ভুক্ত স্বতন্ত্র রিকোয়েস্টের সংখ্যা বা সেগুলোর ল্যাটেন্সি সংবেদনশীলতা যাই হোক না কেন।
  3. লেটেন্সি-সংবেদনশীল পরিবর্তনের ক্ষেত্রেও প্রতি ঘন্টায় ৭,২০০টি পরিবর্তনের একটি সীমা রয়েছে। ব্যাচ পদ্ধতির জন্য, এই কোটার উদ্দেশ্যে প্রতিটি নেস্টেড পরিবর্তনের অনুরোধ আলাদাভাবে গণনা করা হয়। এই কোটাটির বাস্তব প্রভাব শুধুমাত্র সেইসব ব্যাচ এপিআই ব্যবহারকারীদের উপর পড়ে যারা লেটেন্সি-সংবেদনশীল আপডেট সম্পাদন করেন, কারণ অন্যান্য ক্ষেত্রে এই কোটার আগে বা একই সময়ে কোটা ২ শেষ হয়ে যাবে।

বিভিন্ন অনুরোধের কোটা ব্যবহার বোঝার জন্য এখানে কয়েকটি দৃষ্টান্তমূলক উদাহরণ দেওয়া হলো:

  • একটি আইটেম আনার জন্য get একটিমাত্র গেট রিকোয়েস্ট কোটা ১-এর ১টি টোকেন ব্যবহার করবে এবং কোটা ২ ও ৩-এর কোনো টোকেন ব্যবহার করবে না (কারণ এগুলো শুধুমাত্র পরিবর্তনের এন্ডপয়েন্টের সাথে সম্পর্কিত)।
  • ১০০টি পর্যন্ত আইটেম আনার জন্য একটি ব্যাচ গেট রিকোয়েস্ট get কোটা ১-এর ১টি টোকেন ব্যবহৃত হবে এবং কোটা ২ ও ৩-এর কোনো টোকেন ব্যবহৃত হবে না।
  • একটি আইটেমের জন্য একটিমাত্র modification অনুরোধের জন্য কোটা ১-এর ১টি টোকেন এবং কোটা ২-এর ১টি টোকেন ব্যবহৃত হবে। যদি অনুরোধটি লেটেন্সি-সংবেদনশীল হয়, তবে এর জন্য কোটা ৩-এর ১টি টোকেনও ব্যবহৃত হবে। যেহেতু কোটা C-এর সীমা কোটা ২-এর সমান, তাই শুধুমাত্র একক পরিবর্তন পদ্ধতি ব্যবহারকারী उपनारদের জন্য এর কোনো বাস্তব প্রভাব নেই।
  • ১০০টি ল্যাটেন্সি টলারেন্ট আইটেমের একটি ব্যাচ modification রিকোয়েস্টের জন্য কোটা ১-এর ১টি টোকেন এবং কোটা ২-এর ১টি টোকেন ব্যবহৃত হবে। এই কোটা সেটআপটি আপনার ক্যাটালগ আপডেট রাখার জন্য পর্যাপ্ত মার্জিন দেবে, কিন্তু যদি আপনার অ্যালগরিদম এই কোটা সম্পর্কে সচেতন না থাকে এবং এই হার অতিক্রম করে, তাহলে প্রতিটি অতিরিক্ত কলের জন্য আপনি একটি এরর পেতে পারেন।
  • ১০০টি ল্যাটেন্সি সংবেদনশীল আইটেমের জন্য একটি ব্যাচ modification অনুরোধ কোটা ১-এর ১টি টোকেন, কোটা ২-এর ১টি টোকেন এবং কোটা ৩-এর ১০০টি টোকেন ব্যবহার করবে।

ক্যাটালগ ম্যানেজমেন্ট এপিআই ব্যবহারের সুপারিশ

এই নির্দেশিকাগুলো মেনে চলার মাধ্যমে, আপনি এপিআই-এর সাথে আপনার মিথস্ক্রিয়াকে সর্বোত্তম করে তোলেন, যা একটি মসৃণ এবং কার্যকর ক্যাটালগ ব্যবস্থাপনার অভিজ্ঞতা নিশ্চিত করে।

আপনার ব্যবহার নিরীক্ষণ করুন

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

এপিআই কোটা ব্যবহার অপ্টিমাইজ করুন

এপিআই ত্রুটির সম্ভাবনা কমানোর জন্য রেট কনসাম্পশন অপ্টিমাইজ করার জন্য জোরালোভাবে সুপারিশ করা হয়। এটি কার্যকরভাবে বাস্তবায়ন করতে, আমরা আপনাকে নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করার পরামর্শ দিই:

  • সঠিক ক্যাটালগ ম্যানেজমেন্ট কৌশল বেছে নিন। এপিআই কোটা বুঝে গেলে, আপনার ক্যাটালগ ম্যানেজমেন্টের লক্ষ্যগুলো দক্ষতার সাথে অর্জন করার জন্য অ্যাপ্লিকেশনটির জন্য সঠিক কৌশল বেছে নিতে হবে।
  • আপনার পরিবর্তনগুলো প্রতিফলিত করার জন্য শুধুমাত্র ন্যূনতম সংখ্যক কল করুন।
  • এপিআই-গুলোতে অপ্রয়োজনীয় বা অতিরিক্ত পরিবর্তনের কল পাঠাবেন না। এর জন্য আপনার ব্যাকএন্ড ক্যাটালগে একটি চেঞ্জলগ রাখার প্রয়োজন হতে পারে।
  • পণ্য পরিবর্তনের জন্য প্রতি ঘণ্টায় নির্ধারিত ৭,২০০ কোয়েরির সীমার মধ্যে থাকুন। আপনি এমন সিঙ্ক প্রসেস তৈরি করতে চাইতে পারেন, যেখানে অল্প সময়ের মধ্যে প্রচুর পরিমাণে পণ্য পরিবর্তনের প্রয়োজন হয় (উদাহরণস্বরূপ, একটি প্রাথমিক ক্যাটালগ তৈরি)। যদি আপনার মনে হয় যে এই প্রসেসগুলো প্রতি ঘণ্টার সীমা অতিক্রম করবে, তবে ব্যবহারকে একটি নিরাপদ স্তরে ধীর করার জন্য প্রয়োজন অনুযায়ী ওয়েট (wait) প্রয়োগ করুন। উচ্চতর থ্রুপুট অর্জনের জন্য ল্যাটেন্সি টলারেন্ট আপডেটসহ ব্যাচ পদ্ধতি ব্যবহারের কথা বিবেচনা করুন।
  • স্কেল করার জন্য আগে থেকেই প্রস্তুতি নিন। আপনার অ্যাপ্লিকেশন বড় হওয়ার সাথে সাথে, আপনাকে এপিআই এবং বিভিন্ন এন্ডপয়েন্টের ব্যবহার বাড়াতে হতে পারে। সর্বোচ্চ ব্যবহারের কাছাকাছি পৌঁছানোর পর কীভাবে আপনার কোটা বাড়াবেন, সে সম্পর্কে বিস্তারিত জানতে গুগল প্লে ডেভেলপার এপিআই কোটা ডকুমেন্টেশন পড়ুন।
  • কৌশলগতভাবে ভারী প্রক্রিয়াগুলির সময় নির্ধারণ করুন। আপনার ভারী ক্যাটালগ প্রক্রিয়াগুলিকে ব্যবহারের সর্বোচ্চ সময়ের আশেপাশে নির্ধারণ করার চেষ্টা করুন, উদাহরণস্বরূপ, আপনি সপ্তাহের সর্বোচ্চ বিক্রির সময়গুলিতে সম্পূর্ণ ক্যাটালগ সিঙ্ক চালানো এড়াতে পারেন।

কোটা ত্রুটি পরিচালনা লজিক যোগ করুন

আপনি আপনার ক্যাটালগ ম্যানেজমেন্ট লজিক যতই দক্ষতার সাথে তৈরি করুন না কেন, এটিকে অপ্রত্যাশিত কোটা সীমার বিরুদ্ধে সহনশীল করে তোলা উচিত, কারণ আপনার ইন্টিগ্রেশনের স্বাধীন মডিউলগুলিতে ব্যবহৃত এন্ডপয়েন্টগুলির মধ্যে দৈনিক কোটা ভাগ করা থাকে। আপনার এরর হ্যান্ডলিং-এ কোটা থ্রটলিং এরর অন্তর্ভুক্ত করা এবং যথাযথ ওয়েট (wait) প্রয়োগ করা নিশ্চিত করুন। গুগল প্লে ডেভেলপার এপিআই-তে করা প্রতিটি কল একটি রেসপন্স তৈরি করবে। কোনো কল ব্যর্থ হলে, আপনি একটি ফেইলর রেসপন্স পাবেন, যাতে একটি HTTP রেসপন্স স্ট্যাটাস কোড এবং একটি errors অবজেক্ট থাকবে। এই অবজেক্টটি এরর ডোমেইন এবং একটি ডিবাগ মেসেজ সম্পর্কে আরও বিস্তারিত তথ্য প্রদান করবে। উদাহরণস্বরূপ, আপনি যদি আপনার দৈনিক সীমা অতিক্রম করেন, তাহলে আপনি নিম্নলিখিতটির মতো একটি এররের সম্মুখীন হতে পারেন:

{
  "code" : 403,
  "errors" : [ {
    "domain" : "usageLimits",
    "message" : "Daily Limit Exceeded. The quota will be reset at midnight Pacific Time (PT). You may monitor your quota usage and adjust limits in the API
  Console: https://console.developers.google.com/apis/api/androidpublisher.googleapis.com/quotas?project=xxxxxxx",
  "reason" : "dailyLimitExceeded",
  "extendedHelp" : "https://console.developers.google.com/apis/api/androidpublisher.googleapis.com/quotas?project=xxxxxx"
  } ],
}

ক্যাটালগ ব্যবস্থাপনা বাস্তবায়ন

ডেভেলপাররা তাদের ব্যাকএন্ড এবং গুগল প্লে-এর মধ্যে ক্যাটালগ সিঙ্ক্রোনাইজড রাখতে গুগল প্লে ডেভেলপার এপিআই প্রোডাক্ট পাবলিশিং এন্ডপয়েন্ট ব্যবহার করেন। আপনার ব্যাকএন্ডের ক্যাটালগের সর্বশেষ তথ্যের সাথে আপনার গুগল প্লে ক্যাটালগ সর্বদা হালনাগাদ রাখা একটি উন্নত ব্যবহারকারী অভিজ্ঞতা তৈরিতে সহায়ক। উদাহরণস্বরূপ:

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

গুগল প্লে-তে আপনার প্রোডাক্ট ক্যাটালগ তৈরি করার সময় কিছু নির্দিষ্ট সীমাবদ্ধতা এবং বিবেচ্য বিষয় রয়েছে যা আপনার মনে রাখা উচিত। একবার আপনি এই সীমাবদ্ধতাগুলো বুঝে গেলে এবং আপনার ক্যাটালগটি কীভাবে সাজাতে চান তা জেনে গেলে, আপনার সিঙ্ক্রোনাইজেশন কৌশল নির্ধারণ করার সময় আসবে।

ক্যাটালগ সিঙ্ক্রোনাইজেশন কৌশল

Google Play Developer API-এর পাবলিশিং এন্ডপয়েন্টগুলো আপনাকে পরিবর্তন ঘটার সাথে সাথে আপনার ক্যাটালগ আপডেট করার সুযোগ দেয়। মাঝে মাঝে, আপনার একটি পর্যায়ক্রমিক আপডেট পদ্ধতি অবলম্বন করার প্রয়োজন হতে পারে, যেখানে আপনি একই প্রক্রিয়ায় একসাথে অনেকগুলো পরিবর্তন পাঠান। প্রতিটি পদ্ধতির জন্য ভিন্ন ভিন্ন ডিজাইন পছন্দ প্রয়োজন। প্রতিটি সিনক্রোনাইজেশন কৌশল কিছু ব্যবহারের ক্ষেত্রে অন্যগুলোর চেয়ে বেশি উপযুক্ত হবে, এবং পরিস্থিতি অনুযায়ী আপনার এমন কিছু প্রয়োজন থাকতে পারে যার জন্য উভয়েরই প্রয়োজন হয়। কখনও কখনও আপনি কোনো নতুন পরিবর্তন সম্পর্কে জানার সাথে সাথেই একটি পণ্য আপডেট করতে চাইতে পারেন, উদাহরণস্বরূপ একটি জরুরি পণ্য আপডেট প্রক্রিয়া করার জন্য (যেমন একটি ভুল মূল্য যত তাড়াতাড়ি সম্ভব সংশোধন করা প্রয়োজন)। অন্য সময়ে আপনি আপনার ব্যাকএন্ড এবং প্লে ক্যাটালগগুলো সর্বদা সামঞ্জস্যপূর্ণ রাখতে একটি পর্যায়ক্রমিক ব্যাকগ্রাউন্ড সিঙ্ক ব্যবহার করতে পারেন। এই বিভিন্ন ক্যাটালগ ম্যানেজমেন্ট কৌশলগুলো প্রয়োগ করার প্রয়োজন হতে পারে এমন কিছু সাধারণ ব্যবহারের ক্ষেত্র সম্পর্কে পড়ুন।

আপনার স্থানীয় ক্যাটালগ পরিবর্তন হলে কখন আপডেট পাঠাতে হবে

অসঙ্গতি কমানোর জন্য, আপনার ব্যাকএন্ডের প্রোডাক্ট ক্যাটালগে কোনো পরিবর্তন হওয়ার সাথে সাথেই আপডেট করা উচিত।

এই ধরনের আপডেটগুলি একটি ভালো বিকল্প যখন:

  • আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনার পণ্যগুলো সর্বদা হালনাগাদ থাকে।
  • আপনাকে প্রতিদিন আপনার পণ্যগুলিতে কিছু পরিবর্তন আনতে হবে।
  • আপনাকে ইতিমধ্যে উৎপাদনে থাকা এবং বিক্রি হওয়া পণ্যগুলো আপডেট করতে হবে।

এই পদ্ধতিটি প্রয়োগ করা সহজতর, এবং এটি আপনাকে সর্বনিম্ন অমিলের পরিসরে আপনার ক্যাটালগ সিঙ্ক করে রাখতে সাহায্য করে।

কখন পর্যায়ক্রমিক আপডেট ব্যবহার করবেন

আপনার ব্যাকএন্ডে প্রোডাক্ট এডিশনে পর্যায়ক্রমিক আপডেটগুলি অ্যাসিঙ্ক্রোনাসভাবে চালানো হয়, এবং নিম্নলিখিত ক্ষেত্রে এগুলি একটি ভালো বিকল্প:

  • আপনাকে স্বল্প সময়ের নোটিশে আপনার পণ্যগুলো আপডেট করার বিষয়টি নিশ্চিত করতে হবে না।
  • আপনাকে এককালীন হালনাগাদ বা মীমাংসা প্রক্রিয়ার পরিকল্পনা করতে হবে।
  • আপনার ডিজিটাল পণ্যগুলো পরিচালনা করার জন্য আপনার কাছে ইতিমধ্যেই একটি কন্টেন্ট বা ক্যাটালগ ম্যানেজমেন্ট সিস্টেম রয়েছে, যা আপনার ক্যাটালগকে ক্রমাগত আপডেট করে।

বৃহৎ ক্যাটালগের ক্ষেত্রে, সর্বোচ্চ থ্রুপুট অর্জনের জন্য লেটেন্সি টলারেন্ট আপডেটসহ ব্যাচ পদ্ধতি ব্যবহারের কথা বিবেচনা করুন।

আপনার পণ্যের ক্যাটালগ তৈরি করুন

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

এককালীন পণ্য তৈরি করুন

প্রাথমিক এককালীন প্রোডাক্ট ক্যাটালগ তৈরির জন্য, আমরা monetization.onetimeproducts.batchUpdate অথবা inapp_products.insert মেথডটি ব্যবহার করার পরামর্শ দিই, যেখানে allowMissing ফিল্ডটি true এবং latencyTolerance ফিল্ডটি PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT এ সেট করা থাকবে। এর ফলে কোটার সীমার মধ্যে ক্যাটালগ তৈরির সময় ন্যূনতম হবে।

সাবস্ক্রিপশন পণ্য তৈরি করুন

প্রাথমিক সাবস্ক্রিপশনের জন্য বড় ক্যাটালগ তৈরির ক্ষেত্রে, আমরা monetization.subscriptions.batchUpdate মেথডটি ব্যবহার করার পরামর্শ দিই, যেখানে allowMissing ফিল্ডটি true এবং latencyTolerance ফিল্ডটি PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT এ সেট করা থাকবে। এর ফলে কোটার সীমার মধ্যে ক্যাটালগ তৈরির সময় ন্যূনতম হবে।

ছোট সাবস্ক্রিপশন ক্যাটালগের জন্য প্লে ডেভেলপার এপিআই monetization.subscriptions.create মেথডটি প্রদান করে। বিকল্পভাবে, প্রোডাক্ট আপডেট বিভাগে বর্ণিত allowMissing প্যারামিটার সহ monetization.subscriptions.patch মেথড ব্যবহার করে আপনি সাবস্ক্রিপশন তৈরি করতে পারেন।

পূর্ববর্তী সমস্ত পদ্ধতি সাবস্ক্রিপশন অবজেক্টের মধ্যে থাকা বেস প্ল্যান সহ সাবস্ক্রিপশন তৈরি করে। এই বেস প্ল্যানগুলো প্রাথমিকভাবে নিষ্ক্রিয় থাকে। বেস প্ল্যানগুলোর অবস্থা পরিচালনা করতে, আপনি monetization.subscriptions.basePlans এন্ডপয়েন্টটি ব্যবহার করতে পারেন, যার মধ্যে একটি বেস প্ল্যান সক্রিয় করে সেটিকে কেনার জন্য উপলব্ধ করাও অন্তর্ভুক্ত। এছাড়াও, monetization.subscriptions.basePlans.offers এন্ডপয়েন্টটি আপনাকে অফার তৈরি এবং পরিচালনা করার সুযোগ দেয়।

পণ্যের আপডেট

নিম্নলিখিত পদ্ধতিগুলো আপনাকে আপনার বিদ্যমান পণ্যগুলোকে দক্ষতার সাথে পরিবর্তন করতে সক্ষম করে, যা নিশ্চিত করে যে আপনার প্রদত্ত সামগ্রীগুলো আপনার সর্বশেষ সমন্বয়ের সাথে সামঞ্জস্যপূর্ণ থাকে।

এককালীন পণ্য আপডেট করুন

বিদ্যমান এককালীন পণ্যগুলো আপডেট করতে আপনাকে সাহায্য করার জন্য নিম্নলিখিত পদ্ধতিগুলো উপলব্ধ রয়েছে।

  • নগদীকরণ.এককালীনপণ্য.ব্যাচআপডেট
  • inappproducts.patch : patch এন্ডপয়েন্টটি কোনো রিসোর্সকে আংশিকভাবে আপডেট করতে ব্যবহৃত হয়। এর মানে হলো, আপনি রিকোয়েস্ট বডিতে নির্দিষ্ট করে দেওয়া ফিল্ডগুলো আপডেট করতে পারেন। patch এন্ডপয়েন্টটি সাধারণত তখনই ব্যবহার করা হয়, যখন কোনো রিসোর্সের শুধুমাত্র কয়েকটি ফিল্ড আপডেট করার প্রয়োজন হয়।
  • inappproducts.update : কোনো রিসোর্সকে সম্পূর্ণরূপে আপডেট করার জন্য আপডেট এন্ডপয়েন্টটি ব্যবহৃত হয়। এর মানে হলো, আপনাকে রিকোয়েস্ট বডিতে সম্পূর্ণ রিসোর্স অবজেক্টটি পাঠাতে হবে। সাধারণত যখন কোনো রিসোর্সের সমস্ত ফিল্ড আপডেট করার প্রয়োজন হয়, তখন আপডেট এন্ডপয়েন্টটি ব্যবহার করা হয়। যখন allowMissing প্যারামিটারটি true তে সেট করা থাকে এবং প্রদত্ত প্রোডাক্ট আইডিটি আগে থেকে বিদ্যমান না থাকে, তখন এন্ডপয়েন্টটি ব্যর্থ না হয়ে প্রোডাক্টটি ইনসার্ট করে দেবে।
  • inappproducts.batchUpdate : এটি আপডেট এন্ডপয়েন্টের একটি ব্যাচ সংস্করণ, যা আপনাকে একটিমাত্র কোয়েরির মাধ্যমে একাধিক প্রোডাক্ট পরিবর্তন করার সুযোগ দেয়। উচ্চতর থ্রুপুট অর্জনের জন্য, latencyTolerance ফিল্ডটিকে PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT এ সেট করে এটি ব্যবহার করুন।

সাবস্ক্রিপশন পণ্য আপডেট করুন

বিদ্যমান সাবস্ক্রিপশনগুলো আপডেট করতে, আপনি monetization.subscriptions.patch মেথডটি ব্যবহার করতে পারেন। এই মেথডটি নিম্নলিখিত প্রয়োজনীয় প্যারামিটারগুলো গ্রহণ করে:

  • packageName : অ্যাপটির প্যাকেজ নাম, যেটির সাবস্ক্রিপশনটি অন্তর্ভুক্ত।
    • productId : সাবস্ক্রিপশনটির অনন্য প্রোডাক্ট আইডি।
  • regionsVersion : অঞ্চলের কনফিগারেশন সংস্করণ

যদি আপনি ` allowMissing প্যারামিটার ব্যবহার করে নতুন সাবস্ক্রিপশন তৈরি না করেন, তাহলে আপনাকে অবশ্যই ` updateMask প্যারামিটারটি প্রদান করতে হবে। এই প্যারামিটারটি হলো কমা দ্বারা পৃথক করা সেইসব ফিল্ডের একটি তালিকা, যেগুলো আপনি আপডেট করতে চান।

উদাহরণস্বরূপ, যদি আপনি শুধুমাত্র একটি সাবস্ক্রিপশন পণ্যের তালিকা আপডেট করতে চান, তাহলে আপনাকে updateMask প্যারামিটারে listings ফিল্ডটি নির্দিষ্ট করতে হবে।

আপনি একই সময়ে একাধিক সাবস্ক্রিপশন আপডেট করতে monetization.subscriptions.batchUpdate ব্যবহার করতে পারেন। উচ্চতর থ্রুপুট অর্জনের জন্য, latencyTolerance ফিল্ডটিকে PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT এ সেট করে এর সাথে এটি ব্যবহার করুন।

বেস প্ল্যান সক্রিয়, নিষ্ক্রিয় বা মুছে ফেলতে অথবা গ্রাহকদের সর্বশেষ বেস প্ল্যান মূল্যের সংস্করণে স্থানান্তরিত করতে monetization.subscriptions.basePlans এন্ডপয়েন্টটি ব্যবহার করুন।

এছাড়াও, আপনি monetization.subscriptions.basePlans.offers.patch মেথডটি ব্যবহার করে আপনার বেস প্ল্যানগুলোর অফার আপডেট করতে পারেন।

ক্যাটালগ সমন্বয়

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

দীর্ঘ সময় ধরে অমিলের সমস্যা এড়াতে আপনি একটি ক্যাটালগ সমন্বয় প্রক্রিয়া তৈরি করতে পারেন।

সিস্টেম বিবেচনার পার্থক্য

অসামঞ্জস্য শনাক্ত করতে এবং দুটি সিস্টেমের মধ্যে সামঞ্জস্য বিধান করতে আমরা একটি ডিফারেন্স সিস্টেম তৈরির পরামর্শ দিই। আপনার ক্যাটালগগুলোকে সিঙ্কে রাখতে একটি ডিফারেন্স সিস্টেম তৈরি করার সময় এখানে কিছু বিষয় বিবেচনা করতে হবে:

  • ডেটা মডেলগুলো বুঝুন: প্রথম ধাপ হলো ডেভেলপার সিএমএস (CMS) এবং গুগল প্লে ডেভেলপার এপিআই (Google Play Developer API)-এর ডেটা মডেলগুলো বোঝা। এর মধ্যে অন্তর্ভুক্ত রয়েছে প্রতিটি সিস্টেমে সংরক্ষিত বিভিন্ন ধরণের ডেটা এবং বিভিন্ন ডেটা উপাদানগুলো কীভাবে একে অপরের সাথে সম্পর্কিত, তা জানা।
  • পার্থক্য নির্ণয়ের নিয়মগুলো নির্ধারণ করুন: ডেটা মডেলগুলো বুঝে গেলে, আপনাকে পার্থক্য নির্ণয়ের নিয়মগুলো নির্ধারণ করতে হবে। এই নিয়মগুলো নির্ধারণ করবে যে দুটি সিস্টেমের ডেটা কীভাবে তুলনা করা হবে। উদাহরণস্বরূপ, আপনি প্রোডাক্ট আইডিগুলো মেলাতে এবং সাবস্ক্রিপশন ও এর সাথে যুক্ত বেস প্ল্যান ও অফারগুলোর মূল বৈশিষ্ট্যগুলো তুলনা করতে চাইতে পারেন।
  • একটি ডিফারেন্স অ্যালগরিদম প্রয়োগ করুন: একবার আপনি ডিফারেন্স নিয়মগুলো সংজ্ঞায়িত করে ফেললে, আপনাকে ডিফারেন্স অ্যালগরিদমটি প্রয়োগ করতে হবে। এই অ্যালগরিদমটি দুটি সিস্টেম থেকে ডেটা নেবে এবং আপনার সংজ্ঞায়িত নিয়ম অনুসারে সেগুলোর তুলনা করবে। গুগল প্লে থেকে ক্যাটালগ ডেটা পেতে, আপনি monetization.onetimeproducts.list , monetization.onetimeproducts.batchGet , inappproducts.list , inappproducts.batchGet , monetization.subscriptions.list এবং monetization.subscriptions.batchGet মেথডগুলো ব্যবহার করতে পারেন।
  • পার্থক্য প্রতিবেদন তৈরি করুন: পার্থক্য অ্যালগরিদম একটি পার্থক্য প্রতিবেদন তৈরি করবে। এই প্রতিবেদনে উভয় সিস্টেমের মধ্যেকার পার্থক্যগুলো দেখানো হবে।
  • অমিলগুলো সমন্বয় করুন: একবার আপনি ডিফারেন্স রিপোর্ট তৈরি করে ফেললে, আপনাকে অমিলগুলো সমাধান করতে হবে। আপনি সাধারণত যেভাবে আপনার ক্যাটালগ আপডেট করেন, তার উপর নির্ভর করে এর জন্য আপনার CMS-এ ডেটা আপডেট করার প্রয়োজন হতে পারে, অথবা ডেভেলপার এপিআই ক্যাটালগ ম্যানেজমেন্ট এন্ডপয়েন্ট ব্যবহার করে গুগল প্লে-এর দিক থেকে ডেটা আপডেট করতে হতে পারে। অসামঞ্জস্য থাকা প্রোডাক্টগুলো সমন্বয় করতে, 'প্রোডাক্ট আপডেট' বিভাগে বর্ণিত আপডেট এন্ডপয়েন্টগুলো ব্যবহার করুন।

পণ্যের অবমূল্যায়ন

আপনার প্রোডাক্টগুলো বাতিল করতে সাহায্য করার জন্য গুগল প্লে ডেভেলপার এপিআই নিম্নলিখিত পদ্ধতিগুলো প্রদান করে:

এককালীন পণ্যের ক্ষেত্রে:

সাবস্ক্রিপশন পণ্যগুলির জন্য:

  • সাবস্ক্রিপশন মুছে ফেলার জন্য monetization.subscriptions.delete ব্যবহার করুন। একবার অন্তত একটি বেস প্ল্যান সক্রিয় হয়ে গেলে, সাবস্ক্রিপশনটি আর সরানো যাবে না।

বিভিন্ন পরিস্থিতিতে একটি পণ্য বাতিল করা প্রয়োজনীয় হতে পারে, যেমন:

  • ভুলবশত সৃষ্টি।
  • কোনো বৈশিষ্ট্য বা পরিষেবা বন্ধ করা।

আমরা আপনার ক্যাটালগ ব্যবস্থাপনা কৌশলে পণ্য অবচয় অন্তর্ভুক্ত করার সুপারিশ করছি।