পুরস্কার প্রদানকারী প্রোডাক্ট-নির্দিষ্ট ফিচার যোগ করা

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

এই ডকুমেন্টে পুরস্কার প্রদানকারী প্রোডাক্টের জন্য নির্দিষ্ট ফাংশনালিটি কীভাবে প্রয়োগ করতে হয় তা ব্যাখ্যা করা হয়েছে। এই পৃষ্ঠার ওয়ার্কফ্লো ডায়াগ্রাম বিভাগে এই প্রক্রিয়াটি ব্যাখ্যা করা হয়েছে।

আপনার অ্যাপের পুরস্কার প্রদানকারী প্রোডাক্ট শনাক্ত করা

পুরস্কারপ্রাপ্ত প্রোডাক্টের SkuType INAPP। ব্যবহারকারীরা যাতে একাধিক বিজ্ঞাপন দেখতে এবং একাধিক পুরস্কার পেতে পারেন তা নিশ্চিত করতে, প্রোডাক্টগুলি ব্যবহার করতে হবে।

ব্যবহারকারীকে পুরস্কার পাওয়ার উপযুক্ত প্রোডাক্ট অফার করার আগে, আপনাকে অবশ্যই প্রোডাক্টের জন্য SkuDetails পেতে হবে। এটি করতে, প্রোডাক্টের ধরন হিসেবে SkuType.INAPP সহ querySkuDetailsAsync()-এ কল করুন।

বয়স-উপযুক্ত বিজ্ঞাপন ঘোষণা করা

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

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

নিচে দেওয়া কোড স্নিপেট থেকে বোঝা যায় যে কীভাবে ভিডিও বিজ্ঞাপনকে বাচ্চাদের জন্য বা সম্মতি দেওয়ার উপযুক্ত বয়সের চেয়ে কম বয়সী ব্যবহারকারীদের জন্য উপযুক্ত হিসেবে ঘোষণা করতে হয়:

Kotlin

val billingClient = BillingClient.newBuilder(context)
        .setListener(this)
        .setChildDirected(ChildDirected.CHILD_DIRECTED)
        .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT)
        .build()

জাভা

BillingClient billingClient =
    BillingClient.newBuilder(context)
        .setListener(this)
        .setChildDirected(ChildDirected.CHILD_DIRECTED)
        .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT)
        .build();

ভিডিও বিজ্ঞাপন লোড করা

পুরস্কার প্রদানকারী প্রোডাক্ট পাওয়ার জন্য ভিডিও বিজ্ঞাপন দেখার বিকল্প ব্যবহারকারীকে দেখানোর আগে, আপনাকে ভিডিওটি লোড করতে হবে। এটি করতে, একটি RewardLoadParams অবজেক্ট তৈরি করুন, এটিকে SkuDetails অবজেক্টের সাথে যুক্ত করুন যা পুরস্কার প্রদানকারী প্রোডাক্টকে উপস্থাপন করে। তারপরে, আপনার বিলিং ক্লায়েন্টের loadRewardedSku() পদ্ধতিকে কল করুন, RewardLoadParams অবজেক্ট এবং একটি RewardResponseListener অবজেক্ট পাস করুন।

ভিডিও লোড করা হয়ে গেলে RewardResponseListener লিসনারকে বিজ্ঞপ্তি পাঠানো হয় । ভিডিওটি উপলভ্য না থাকলে বা সার্ভার টাইম-আউটের মতো অন্য কোনও সমস্যা হলে, লিসনারকেও তা জানানো হয়।

আপনার অ্যাপের পুরস্কার প্রদানকারী প্রোডাক্টের সাথে যুক্ত ভিডিও লোড করার সময় ডিভাইসের পারফর্ম্যান্স বজায় রাখতে, নিম্নলিখিত পেশাদার পদ্ধতিগুলি মাথায় রাখুন:

  • একবারে সর্বাধিক তিনটি পুরস্কার পাওয়ার উপযুক্ত প্রোডাক্ট SKU লোড করুন।
  • ব্যবহারকারী আপনার অ্যাপে প্রবেশ করলেই ভিডিও লোড করার চেষ্টা করুন। এই ধাপটি আপনাকে ভিডিও এখনও লোড করা আছে কিনা এবং উপলভ্য কিনা তা চেক করতে সাহায্য করে।
  • কখন ভিডিও লোড করবেন তা ঠিক করার সময়, আপনার ব্যবহারের ক্ষেত্রে সবচেয়ে ভাল কাজ করে এমন ব্যান্ডউইথ ব্যবহার ও অ্যাপের রেসপন্সিভনেস সংক্রান্ত ব্যালেন্স বেছে নিন:

    • যত তাড়াতাড়ি সম্ভব, getSkuDetails() কল করার পরে সংশ্লিষ্ট পুরস্কার প্রদানকারী প্রোডাক্টের ভিডিও লোড করুন। আপনার অ্যাপ খুব দ্রুত রেসপন্স করে, কিন্তু আপনি এমন ভিডিও লোড করার জন্য নেটওয়ার্ক ডেটা নষ্ট করতে পারেন যা ব্যবহারকারী কখনই দেখেন না।
    • ব্যবহারকারী সেই পৃষ্ঠায় নেভিগেট করলে, যেখানে ভিডিওটি দেখানো হবে, সেখানে ভিডিওটি সর্বশেষ লোড করুন। এই ক্ষেত্রে আপনার অ্যাপ খুব কমই ব্যান্ডউইথ নষ্ট করে, কিন্তু ভিডিও দেখার বোতামটি ক্লিক করার মতো হওয়ার আগে ব্যবহারকারীকে কিছুক্ষণ অপেক্ষা করতে হতে পারে।

ব্যবহারকারী পুরস্কার পাওয়ার আগে চালানো যায় এমন ভিডিও বিজ্ঞাপন লোড করার প্রক্রিয়া নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

Kotlin

if (skuDetails.isRewarded()) {
    val params = RewardLoadParams.Builder()
            .setSkuDetails(skuDetails)
            .build()
    mBillingClient.loadRewardedSku(params.build(),
            object : RewardResponseListener {
        override fun onRewardResponse(@BillingResponse responseCode : Int) {
            if (responseCode == BillingResponse.OK) {
                // Enable the reward product, or make
                // any necessary updates to the UI.
            }
        }
    })
}

জাভা

if (skuDetails.isRewarded()) {
    RewardLoadParams.Builder params = RewardLoadParams.newBuilder();
    params.setSkuDetails(skuDetails);
    mBillingClient.loadRewardedSku(params.build(),
        new RewardResponseListener() {
            @Override
            public void onRewardResponse(int responseCode) {
                if (responseCode == BillingResponse.OK) {
                      // Enable the reward product, or make
                      // any necessary updates to the UI.
                  }
            }
        });
}

ব্যবহারকারীদের পুরস্কার প্রদানকারী কেনাকাটা করার সুবিধা দেওয়া

Google Play Billing Library যদি পুরস্কার প্রদানকারী প্রোডাক্টের সাথে যুক্ত ভিডিওটি সফলভাবে লোড করে—অর্থাৎ, যদি RewardResponseListener responseCode-এর BillingResponse.OK পায়—তাহলে আপনি বিলিং ফ্লো লঞ্চ করতে পারবেন।

আপনি অন্যান্য সব ধরনের ইন-অ্যাপ প্রোডাক্টের মতো launchBillingFlow() কল করে পুরস্কার প্রদানকারী প্রোডাক্টের জন্য বিজ্ঞাপন চালানো শুরু করেন। ব্যবহারকারী সরাসরি কোনও কেনাকাটা না করলেও, পুরস্কৃত প্রোডাক্ট পাওয়ার জন্য আপনাকে বিলিং ফ্লো চালু করতে হবে যাতে ব্যবহারকারী প্রোডাক্টটি পেতে ও ব্যবহার করতে পারেন।

কেনাকাটা সম্পূর্ণ করা

কোনও ব্যবহারকারী যে পুরস্কার প্রদানকারী প্রোডাক্ট পেয়েছেন ও ব্যবহার করেছেন, তা আপনার বিলিং ক্লায়েন্টকে জানাতে, আপনার বিলিং ক্লায়েন্ট লিসনারের onPurchasesUpdated() পদ্ধতিতে কেনাকাটা হ্যান্ডেল করুন। মনে রাখবেন, পুরস্কার প্রদানকারী কেনাকাটা ব্যবহার করতে হবে।

আপনার পুরস্কার প্রদানকারী প্রোডাক্ট পরীক্ষা করা

আপনার অ্যাপ কীভাবে ভিডিও বিজ্ঞাপন লোড করে এবং ব্যবহারকারীদের পুরস্কার প্রদানকারী প্রোডাক্ট দেয় তা পরীক্ষা করতে, লাইসেন্সপ্রাপ্ত পরীক্ষক ব্যবহার করুন, যারা ডিফল্ট হিসেবে আসল বিজ্ঞাপনের পরিবর্তে টেস্ট বিজ্ঞাপন পান। এইসব পরীক্ষকের জন্য কীভাবে অ্যাকাউন্ট সেট-আপ করতে হয় তা জানতে, Google Play বিলিং অ্যাপের ব্যবহারকারী-পরীক্ষা করুন দেখুন।

পরীক্ষা করার আরেকটি পদ্ধতি হল, আপনাকে android.test.reward প্রোডাক্ট আইডি ব্যবহার করতে হবে। এই নির্দিষ্ট প্রোডাক্টের নাম Google Play বিলিংয়ে সংরক্ষিত আছে, তাই আপনাকে Play Console-এ ইন-অ্যাপ প্রোডাক্টের তালিকায় এটি যোগ করতে হবে না।

সতর্কতা: আপনার অ্যাপের পুরস্কার প্রদানকারী প্রোডাক্ট পরীক্ষা করার সময়, আসল প্রোডাক্ট ব্যবহার করবেন না; তা না হলে, আপনার অ্যাকাউন্ট স্প্যাম বা প্রতারণামূলক অ্যাকাউন্ট হিসেবে ফ্ল্যাগ করা হতে পারে।

তবে, টেস্টিং হয়ে গেলে, এন্ড-ইউজারদের কাছে প্রোডাকশন অ্যাপ ডিপ্লয় করার আগে, আপনার আসল পুরস্কার প্রদানকারী প্রোডাক্টের প্রোডাক্ট আইডির সাথে android.test.reward বদল করতে ভুলবেন না।

পুরস্কার প্রদানকারী প্রোডাক্ট ওয়ার্কফ্লোর ডায়াগ্রাম

নিচের সিকোয়েন্স ডায়াগ্রাম থেকে বোঝা যায় যে কীভাবে কোনও ভিডিও বিজ্ঞাপন দেখাতে এবং পুরস্কার প্রদানকারী প্রোডাক্টে ব্যবহারকারীকে অ্যাক্সেস দিতে, ব্যবহারকারী, আপনার অ্যাপ এবং Google Play Billing Library একসাথে কাজ করে:

পুরস্কার হিসেবে দেওয়া প্রোডাক্টের প্রোটোকল দেখানো সিকোয়েন্স ডায়াগ্রাম
ছবি ১. Google Play Billing ব্যবহার করে পুরস্কার পাওয়ার উপযুক্ত প্রোডাক্ট কেনার ধাপ