প্রস্তুত হচ্ছে

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

একটি গুগল প্লে ডেভেলপার অ্যাকাউন্ট তৈরি করুন

গুগল প্লে-তে আপনার অ্যাপ ও গেম প্রকাশ করতে গুগল প্লে কনসোল ব্যবহার করুন। এছাড়াও, আপনার বিলিং-সম্পর্কিত পণ্য ও সেটিংস পরিচালনা করতেও আপনি গুগল প্লে কনসোল ব্যবহার করেন।

গুগল প্লে কনসোল অ্যাক্সেস করতে, আপনাকে একটি গুগল প্লে ডেভেলপার অ্যাকাউন্ট তৈরি করতে হবে।

Google Play-তে পেইড অ্যাপ এবং ইন-অ্যাপ পারচেজ বিক্রি করার জন্য, আপনাকে অবশ্যই Google Payments Center- এ একটি প্রোফাইল তৈরি করতে হবে এবং তারপর সেই প্রোফাইলটি আপনার Google Play ডেভেলপার অ্যাকাউন্টের সাথে লিঙ্ক করতে হবে। আপনার প্রোফাইলটি আপনার অ্যাকাউন্টের সাথে কীভাবে লিঙ্ক করবেন, অথবা আপনার আগে থেকেই একটি লিঙ্ক করা অ্যাকাউন্ট এবং প্রোফাইল আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জানতে “আপনার পেমেন্ট প্রোফাইলের সাথে একটি Google Play ডেভেলপার অ্যাকাউন্ট লিঙ্ক করুন” দেখুন।

গুগল প্লে কনসোলে বিলিং-সম্পর্কিত বৈশিষ্ট্যগুলি সক্রিয় করুন

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

লাইব্রেরি নির্ভরতা যোগ করুন

গুগল প্লে-এর বিলিং সিস্টেম ইন্টিগ্রেট করতে, প্রথমে আপনার অ্যাপে গুগল প্লে বিলিং লাইব্রেরির একটি ডিপেন্ডেন্সি যোগ করুন। এই লাইব্রেরিটি অ্যান্ড্রয়েড এপিআই-গুলোতে অ্যাক্সেস দেয়, যা আপনাকে গুগল প্লে-এর সাথে সংযুক্ত করে। সেখান থেকে, আপনি কেনাকাটার তথ্য অ্যাক্সেস করতে, কেনাকাটা সংক্রান্ত আপডেটের জন্য জিজ্ঞাসা করতে, ব্যবহারকারীকে নতুন কেনাকাটা করার জন্য অনুরোধ করতে এবং আরও অনেক কিছু করতে পারবেন।

গুগল প্লে বিলিং লাইব্রেরিটি গুগলের ম্যাভেন রিপোজিটরি থেকে পাওয়া যায়। দেখানো অনুযায়ী আপনার অ্যাপের build.gradle ফাইলে ডিপেন্ডেন্সিটি যোগ করুন:

গ্রোভি

dependencies {
    def billing_version = "8.3.0"

    implementation "com.android.billingclient:billing:$billing_version"
}

কোটলিন

dependencies {
    val billing_version = "8.3.0"

    implementation("com.android.billingclient:billing:$billing_version")
}

আপনি যদি কোটলিন ব্যবহার করেন, তাহলে প্লে বিলিং লাইব্রেরি KTX মডিউলটিতে কোটলিন এক্সটেনশন এবং কো-রুটিন সাপোর্ট রয়েছে, যা আপনাকে গুগল প্লে-এর বিলিং সিস্টেম ব্যবহার করার সময় প্রচলিত কোটলিন কোড লিখতে সক্ষম করে। আপনার প্রোজেক্টে এই এক্সটেনশনগুলো অন্তর্ভুক্ত করতে, দেখানো অনুযায়ী আপনার অ্যাপের build.gradle ফাইলে নিম্নলিখিত ডিপেন্ডেন্সিটি যোগ করুন:

গ্রোভি

dependencies {
    def billing_version = "8.3.0"

    implementation "com.android.billingclient:billing-ktx:$billing_version"
}

কোটলিন

dependencies {
    val billing_version = "8.3.0"

    implementation("com.android.billingclient:billing-ktx:$billing_version")
}

এই পৃষ্ঠায় থাকা কোটলিন কোডের উদাহরণগুলোতে যথাসম্ভব KTX ব্যবহার করা হয়েছে।

আপনার অ্যাপ আপলোড করুন

আপনার অ্যাপে লাইব্রেরিটি যুক্ত করার পর, অ্যাপটি বিল্ড ও পাবলিশ করুন। এই ধাপের জন্য, আপনার অ্যাপটি তৈরি করুন এবং তারপর ইন্টারনাল টেস্ট ট্র্যাক সহ যেকোনো ট্র্যাকে পাবলিশ করুন।

আপনার পণ্য তৈরি ও কনফিগার করুন

আপনার অ্যাপের জন্য গুগল প্লে বিলিং ফিচার চালু করার পর, বিক্রির জন্য আপনাকে প্রোডাক্টগুলো কনফিগার করতে হবে।

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

গুগল প্লে কনসোল একটি ওয়েব ইন্টারফেস প্রদান করে, যা ব্যবহার করে আপনি আপনার প্রোডাক্টগুলো পরিচালনা করতে পারেন।

ওয়েব ইন্টারফেসের বিকল্প হিসেবে, আপনি গুগল প্লে ডেভেলপার এপিআই-তে ইন-অ্যাপ প্রোডাক্টের জন্য inappproducts REST রিসোর্স এবং সাবস্ক্রিপশন প্রোডাক্টের জন্য monetization.subscriptions REST রিসোর্স ব্যবহার করেও আপনার প্রোডাক্টগুলো পরিচালনা করতে পারেন।

গুগল প্লে ডেভেলপার এপিআই কনফিগার করুন

গুগল প্লে ডেভেলপার এপিআই হলো একটি সার্ভার-টু-সার্ভার এপিআই যা অ্যান্ড্রয়েডের গুগল প্লে বিলিং লাইব্রেরির পরিপূরক হিসেবে কাজ করে। এই এপিআই এমন কিছু কার্যকারিতা প্রদান করে যা গুগল প্লে বিলিং লাইব্রেরিতে নেই, যেমন—নিরাপদে কেনাকাটা যাচাই করা এবং আপনার ব্যবহারকারীদের অর্থ ফেরত দেওয়া।

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

একবার আপনি Google Play Developer API-তে অ্যাক্সেস কনফিগার করে ফেললে, নিশ্চিত করুন যে আপনি ‘View financial data’ পারমিশনটি দিয়েছেন, যা বিলিং-সম্পর্কিত কার্যকারিতা অ্যাক্সেস করার জন্য প্রয়োজন। সর্বোত্তম অনুশীলন এবং পারমিশন কনফিগার করার বিষয়ে আরও তথ্যের জন্য, ‘Add developer account users and manage permissions’ দেখুন।

রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তি কনফিগার করুন

রিয়েল-টাইম ডেভেলপার নোটিফিকেশন (RTDN) হলো এমন একটি ব্যবস্থা, যার মাধ্যমে আপনার অ্যাপের মধ্যে কোনো ব্যবহারকারীর এনটাইটেলমেন্টে পরিবর্তন হলেই আপনি গুগল থেকে নোটিফিকেশন পাবেন। RTDN, গুগল ক্লাউড পাব/সাব (Google Cloud Pub/Sub) ব্যবহার করে, যা আপনাকে এমন ডেটা গ্রহণ করার সুযোগ দেয় যা হয় আপনার সেট করা কোনো ইউআরএল-এ পুশ করা হয় অথবা একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করে পোল করা হয়। এই নোটিফিকেশনগুলো আপনাকে সাবস্ক্রিপশনের অবস্থার পরিবর্তনে তাৎক্ষণিকভাবে প্রতিক্রিয়া জানাতে সাহায্য করে, যার ফলে গুগল প্লে ডেভেলপার এপিআই (Google Play Developer API) পোল করার প্রয়োজন হয় না। উল্লেখ্য যে, গুগল প্লে ডেভেলপার এপিআই-এর অদক্ষ ব্যবহারের ফলে এপিআই কোটা সীমাবদ্ধতা দেখা দিতে পারে।

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

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

মূল্য নির্ধারণ ও কোটা নির্ধারণ করুন

মূল্য নির্ধারণ এবং কোটা সম্পর্কিত বিস্তারিত তথ্যের জন্য, মূল্য নির্ধারণ এবং কোটা দেখুন।

ডেটা ব্যবহারের অনুমান

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

ক্লাউড পাব/সাব সেটআপ করুন

রিয়েল-টাইম ডেভেলপার নোটিফিকেশন চালু করতে, আপনাকে প্রথমে আপনার নিজস্ব গুগল ক্লাউড প্ল্যাটফর্ম (GCP) প্রজেক্ট ব্যবহার করে ক্লাউড পাব/সাব সেট আপ করতে হবে এবং তারপরে আপনার অ্যাপের জন্য নোটিফিকেশন চালু করতে হবে।

Cloud Pub/Sub ব্যবহার করার জন্য, আপনার একটি GCP প্রজেক্ট থাকতে হবে যেখানে Cloud Pub/Sub API সক্রিয় করা আছে। আপনি যদি GCP এবং Cloud Pub/Sub সম্পর্কে পরিচিত না হন, তাহলে কুইকস্টার্ট গাইডটি দেখুন।

একটি বিষয় তৈরি করুন

নোটিফিকেশন পেতে শুরু করতে, আপনাকে একটি টপিক তৈরি করতে হবে যেখানে গুগল প্লে নোটিফিকেশনগুলো প্রকাশ করবে। টপিক তৈরি করতে, ‘টপিক তৈরি করুন’ অংশে দেওয়া নির্দেশাবলী অনুসরণ করুন।

একটি পাব/সাব সাবস্ক্রিপশন তৈরি করুন

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

  1. সাবস্ক্রিপশনটি পুশ সাবস্ক্রিপশন নাকি পুল সাবস্ক্রিপশন হিসেবে কনফিগার করবেন, তা নির্ধারণ করতে ক্লাউড পাব/সাব সাবস্ক্রাইবার গাইডটি পড়ুন।
    • একটি পুশ সাবস্ক্রিপশন ক্লাউড পাব/সাব-কে HTTPS অনুরোধ পাঠানোর মাধ্যমে আপনার সুরক্ষিত ব্যাকএন্ডে নোটিফিকেশন পাঠাতে সক্ষম করে।
    • একটি পুল সাবস্ক্রিপশনের জন্য আপনার সুরক্ষিত ব্যাকএন্ড সার্ভারকে মেসেজ পুনরুদ্ধার করতে ক্লাউড পাব/সাব সার্ভারে অনুরোধ পাঠাতে হয়।
  2. একটি সাবস্ক্রিপশন তৈরি করতে ‘অ্যাড আ সাবস্ক্রিপশন’ (Add a subscription) এর নির্দেশাবলী অনুসরণ করুন।

আপনার বিষয়ে প্রকাশের অধিকার প্রদান করুন

আপনার টপিকে নোটিফিকেশন প্রকাশ করার জন্য Cloud Pub/Sub-কে Google Play-কে অনুমতি প্রদান করতে হবে।

  1. গুগল ক্লাউড কনসোল খুলুন।
  2. আপনার প্রজেক্টটি নির্বাচন করুন, এবং তারপর বাম দিকের নেভিগেশনে থাকা Pub/Sub- এ ক্লিক করুন।
  3. আপনার বিষয়টি খুঁজুন এবং অনুমতির বিবরণ খুলুন।

    অনুমতি বিষয়ের জন্য কনফিগারেশন অ্যাক্সেস করা হচ্ছে
    চিত্র ১. পারমিশন টপিকের কনফিগারেশন অ্যাক্সেস করা।
  4. google-play-developer-notifications@system.gserviceaccount.com সার্ভিস অ্যাকাউন্টটি যোগ করুন এবং এটিকে পাব/সাব পাবলিশার (Pub/Sub Publisher) এর ভূমিকা প্রদান করুন।

    পাব/সাব পাবলিশার হিসেবে গুগল প্লে সার্ভিস অ্যাকাউন্ট যোগ করা
    চিত্র ২. পাব/সাব প্রকাশক হিসেবে গুগল প্লে সার্ভিস অ্যাকাউন্ট যুক্ত করা।
  5. টপিক সেটআপ সম্পন্ন করতে সেভ-এ ক্লিক করুন।

    একটি কনফিগার করা বিষয়
    চিত্র ৩. একটি কনফিগার করা টপিক।

আপনার অ্যাপের জন্য রিয়েল-টাইম ডেভেলপার নোটিফিকেশন চালু করুন।

আপনার অ্যাপের জন্য রিয়েল-টাইম ডেভেলপার নোটিফিকেশন চালু করতে, নিম্নলিখিতগুলি করুন:

  1. গুগল প্লে কনসোল খুলুন।
  2. আপনার অ্যাপটি নির্বাচন করুন।
  3. Monetize > Monetization setup- এ যান।
  4. পৃষ্ঠার শীর্ষে থাকা রিয়েল-টাইম ডেভেলপার নোটিফিকেশন বিভাগে স্ক্রোল করুন।

    রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তি বিভাগ
    চিত্র ৪. রিয়েল-টাইম ডেভেলপার নোটিফিকেশন সেকশন।
  5. রিয়েল-টাইম নোটিফিকেশন সক্ষম করুন বিকল্পটি চেক করুন।

  6. 'টপিক নেম' ফিল্ডে, পূর্বে কনফিগার করা সম্পূর্ণ ক্লাউড পাব/সাব টপিক নামটি লিখুন। টপিক নামটি projects/{project_id}/topics/{topic_name} ফরম্যাটে হতে হবে, যেখানে project_id হলো আপনার প্রজেক্টের অনন্য শনাক্তকারী এবং topic_name হলো পূর্বে তৈরি করা টপিকের নাম।

  7. একটি পরীক্ষামূলক বার্তা পাঠাতে 'Send Test Message'-এ ক্লিক করুন। একটি পরীক্ষামূলক প্রকাশনা সম্পাদন করা নিশ্চিত করতে সাহায্য করে যে সবকিছু সঠিকভাবে সেট আপ এবং কনফিগার করা হয়েছে। যদি পরীক্ষামূলক প্রকাশনা সফল হয়, তাহলে একটি বার্তা প্রদর্শিত হবে যেখানে বলা থাকবে যে পরীক্ষামূলক প্রকাশনাটি সফল হয়েছে। আপনি যদি এই টপিকের জন্য একটি সাবস্ক্রিপশন সংযুক্ত করে থাকেন, তাহলে আপনি পরীক্ষামূলক বার্তাটি পাবেন।

    পুল সাবস্ক্রিপশনের জন্য, ক্লাউড কনসোলে সাবস্ক্রিপশনটিতে যান, 'ভিউ মেসেজেস' (View Messages) -এ ক্লিক করুন এবং মেসেজ পুল করতে এগিয়ে যান। ক্লাউড পাব/সাব (Cloud Pub/Sub) দ্বারা বারবার ডেলিভারি এড়াতে আপনার পুল করা প্রতিটি মেসেজের স্বীকৃতি (acknowledge) দেওয়া উচিত। পুশ সাবস্ক্রিপশনের জন্য, পরীক্ষা করুন যে টেস্ট মেসেজটি আপনার পুশ এন্ডপয়েন্টে পৌঁছেছে কিনা। একটি সফল রেসপন্স কোডই মেসেজের স্বীকৃতি হিসেবে কাজ করবে।

    প্রকাশ করা ব্যর্থ হলে একটি ত্রুটি দেখানো হয়। নিশ্চিত করুন যে টপিকের নামটি সঠিক এবং google-play-developer-notifications@system.gserviceaccount.com সার্ভিস অ্যাকাউন্টটির টপিকটিতে পাব/সাব পাবলিশার অ্যাক্সেস রয়েছে।

  8. আপনি কোন ধরনের বিজ্ঞপ্তি পেতে চান তা বেছে নিন।

    • সাবস্ক্রিপশন এবং বাতিল হওয়া সমস্ত কেনাকাটার জন্য বিজ্ঞপ্তি পান - সাবস্ক্রিপশন এবং বাতিল হওয়া কেনাকাটা সম্পর্কিত রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তি গ্রহণ করুন। এককালীন পণ্য কেনাকাটার জন্য আপনি কোনো বিজ্ঞপ্তি পাবেন না।
    • সাবস্ক্রিপশন এবং এককালীন পণ্যের জন্য সমস্ত বিজ্ঞপ্তি পান - সমস্ত সাবস্ক্রিপশন এবং বাতিল হওয়া ক্রয় ইভেন্টের জন্য বিজ্ঞপ্তি গ্রহণ করুন। আপনি এককালীন পণ্য ক্রয়ের ইভেন্টগুলিও পাবেন, যেমন ONE_TIME_PRODUCT_PURCHASED এবং ONE_TIME_PRODUCT_CANCELED । এই ক্রয় ইভেন্টগুলি সম্পর্কে আরও জানতে এককালীন ক্রয়ের জীবনচক্র দেখুন।
  9. পরিবর্তনগুলি সংরক্ষণ করুন -এ ক্লিক করুন।

আপনার কনফিগারেশন যাচাই করা হচ্ছে

রিয়েল-টাইম ডেভেলপার নোটিফিকেশন পেতে, আপনার ক্লাউড পাব/সাব টপিকে পাঠানো মেসেজগুলো গ্রহণ করার জন্য একটি সুরক্ষিত ব্যাকএন্ড সার্ভার তৈরি করা উচিত।

পূর্ববর্তী বিভাগে বর্ণিত পদ্ধতি অনুযায়ী, আপনি গুগল প্লে কনসোলে থাকা 'Send Test Message' বাটনটি ব্যবহার করে আপনার কনফিগারেশন পরীক্ষা করতে পারেন। যদি আপনি নোটিফিকেশন গ্রহণ করার জন্য কোনো ব্যাকএন্ড সার্ভার কনফিগার না করে থাকেন, তাহলে কনফিগারেশনটি যাচাই করার জন্য আপনি gcloud কমান্ড লাইন টুলটি ব্যবহার করতে পারেন। gcloud ব্যবহার করে মেসেজ প্রসেস করার নির্দেশাবলীর জন্য, 'Pull the message from the subscription ' দেখুন।

পরবর্তী পদক্ষেপ