আপনার ব্যবহারকারীদের জন্য অ্যাপ-মধ্যস্থ পণ্য এবং সুবিধাগুলি আনলক করার একটি পদ্ধতি হল পুরস্কৃত পণ্য বা আইটেমগুলি তৈরি করা যা ব্যবহারকারীরা একটি ভিডিও বিজ্ঞাপন দেখার পরে পান। পুরস্কৃত পণ্য প্রদান করে, আপনি ব্যবহারকারীদের সরাসরি কেনাকাটা না করেই অ্যাপ-মধ্যস্থ পুরষ্কার এবং সুবিধা পেতে অনুমতি দেন।
এই দস্তাবেজটি ব্যাখ্যা করে যে কীভাবে পুরস্কৃত পণ্যের জন্য নির্দিষ্ট কার্যকারিতা প্রয়োগ করতে হয়। এই পৃষ্ঠার ওয়ার্কফ্লো ডায়াগ্রাম বিভাগটি প্রক্রিয়াটি চিত্রিত করে।
আপনার অ্যাপের পুরস্কৃত পণ্য শনাক্ত করুন
পুরস্কৃত পণ্যের INAPP
এর একটি SkuType
আছে। ব্যবহারকারীরা একাধিক বিজ্ঞাপন দেখতে এবং একাধিক পুরষ্কার পেতে সক্ষম হয় তা নিশ্চিত করতে, পণ্যগুলি ব্যবহার করতে হবে।
আপনি একজন ব্যবহারকারীকে একটি পুরস্কৃত পণ্য অফার করার আগে, আপনাকে অবশ্যই পণ্যটির জন্য SkuDetails
পেতে হবে। এটি করার জন্য, পণ্যের ধরন হিসাবে SkuType.INAPP
এর সাথে querySkuDetailsAsync()
কল করুন।
বয়স-উপযুক্ত বিজ্ঞাপন ঘোষণা করুন
চিলড্রেনস অনলাইন প্রাইভেসি প্রোটেকশন অ্যাক্ট (COPPA) এবং জেনারেল ডেটা প্রোটেকশন রেগুলেশন (GDPR) সহ শিশুদের সম্পর্কিত আইনি বাধ্যবাধকতা এবং কম বয়সী ব্যবহারকারীদের মেনে চলার সুবিধার্থে, আপনার অ্যাপটি ঘোষণা করবে যে কোন বিজ্ঞাপনগুলিকে শিশু-নির্দেশিত হিসাবে বিবেচনা করা উচিত মার্কিন যুক্তরাষ্ট্র এবং কোন বিজ্ঞাপনগুলি তাদের দেশে সম্মতির প্রযোজ্য বয়সের কম ব্যবহারকারীদের জন্য নির্দেশিত। AdMob সহায়তা কেন্দ্র ব্যাখ্যা করে যে আপনি কখন শিশু-নির্দেশিত চিকিত্সার জন্য আপনার বিজ্ঞাপনের অনুরোধগুলিকে ট্যাগ করতে হবে এবং কখন আপনাকে সম্মতির কম বয়সী চিকিত্সার জন্য ট্যাগ করতে হবে, সেইসাথে এটি করার প্রভাবগুলি।
আপনি আপনার অ্যাপের বিলিং ক্লায়েন্ট তৈরি করার সময়, পুরস্কৃত বিজ্ঞাপনের অনুরোধগুলিকে শিশু-নির্দেশিত হিসাবে বিবেচনা করা উচিত বা সম্মতির বয়সের কম বয়সী ব্যবহারকারীদের দিকে পরিচালিত করা উচিত কিনা তা বিবেচনা করুন। যদি বিজ্ঞাপনের অনুরোধে এই বিধিনিষেধগুলি থাকা উচিত, তাহলে প্রতিটি পদ্ধতিতে উপযুক্ত মান দিয়ে setChildDirected()
এবং setUnderAgeOfConsent()
পদ্ধতিতে কল করুন।
নিম্নলিখিত কোড স্নিপেট দেখায় যে ভিডিও বিজ্ঞাপনগুলি শিশুদের জন্য বা সম্মতির কম বয়সী ব্যবহারকারীদের জন্য উপযুক্ত হওয়া উচিত বলে ঘোষণা করা যায়:
কোটলিন
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()
কল করার পরে ভিডিওগুলি লোড করুন। আপনার অ্যাপ্লিকেশানটি খুব প্রতিক্রিয়াশীল থাকে, তবে আপনি এমন একটি ভিডিও লোড করার জন্য নেটওয়ার্ক ডেটা নষ্ট করতে পারেন যা ব্যবহারকারী কখনই দেখে না। - সর্বশেষে, ভিডিওটি লোড করুন যখন ব্যবহারকারী সেই পৃষ্ঠায় নেভিগেট করে যেখানে ভিডিওটি প্রদর্শিত হবে৷ এই ক্ষেত্রে আপনার অ্যাপ খুব কমই ব্যান্ডউইথ নষ্ট করে, তবে ব্যবহারকারীকে ভিডিও দেখার বোতামটি ক্লিকযোগ্য হওয়ার আগে কয়েক মুহূর্ত অপেক্ষা করতে হতে পারে।
- যত তাড়াতাড়ি সম্ভব, সংশ্লিষ্ট পুরস্কৃত পণ্যের জন্য
নিম্নলিখিত কোড স্নিপেট একটি ভিডিও বিজ্ঞাপন লোড করার প্রক্রিয়া প্রদর্শন করে যা ব্যবহারকারী পুরস্কৃত পণ্যটি পাওয়ার আগে প্লে হয়:
কোটলিন
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 বিলিং লাইব্রেরি একটি পুরস্কৃত পণ্যের সাথে যুক্ত ভিডিওটি সফলভাবে লোড করে—অর্থাৎ, যদি RewardResponseListener
BillingResponse.OK
এর একটি responseCode
পায়—আপনি বিলিং ফ্লো চালু করতে পারেন।
আপনি launchBillingFlow()
কল করে একটি পুরস্কৃত পণ্যের বিজ্ঞাপন দেখাতে শুরু করেন, যেমনটি আপনি অন্য সব ধরনের অ্যাপ-মধ্যস্থ পণ্যের জন্য করেন। যদিও ব্যবহারকারী একটি পুরস্কৃত পণ্য পাওয়ার জন্য সরাসরি ক্রয় করছেন না, তবুও আপনাকে বিলিং ফ্লো সক্ষম করতে হবে যাতে ব্যবহারকারী পণ্যটি পেতে এবং ব্যবহার করতে সক্ষম হন।
ক্রয় গ্রাস
আপনার বিলিং ক্লায়েন্টকে জানানোর জন্য যে একজন ব্যবহারকারী একটি পুরস্কৃত পণ্য পেয়েছেন এবং গ্রহণ করেছেন, আপনার বিলিং ক্লায়েন্ট শ্রোতার onPurchasesUpdated()
পদ্ধতিতে কেনাকাটা পরিচালনা করুন । নোট করুন যে পুরস্কৃত ক্রয় গ্রাস করা প্রয়োজন ।
আপনার পুরস্কৃত পণ্য পরীক্ষা করুন
আপনার অ্যাপ কীভাবে ভিডিও বিজ্ঞাপন লোড করে এবং ব্যবহারকারীদের পুরস্কৃত পণ্য সরবরাহ করে তা পরীক্ষা করতে, লাইসেন্সপ্রাপ্ত পরীক্ষকদের ব্যবহার করুন, যারা ডিফল্টভাবে বাস্তবের পরিবর্তে পরীক্ষার বিজ্ঞাপন পান। এই পরীক্ষকদের জন্য কীভাবে অ্যাকাউন্ট সেট আপ করবেন তা জানতে, একটি Google Play বিলিং অ্যাপ ব্যবহারকারী-পরীক্ষা দেখুন।
পরীক্ষার আরেকটি পদ্ধতি হল আপনার android.test.reward
পণ্য আইডি ব্যবহার করা। এই নির্দিষ্ট পণ্যটি Google Play বিলিং-এ একটি সংরক্ষিত নাম, তাই Play Console-এ আপনার অ্যাপ-মধ্যস্থ পণ্যের তালিকায় এটি যোগ করার প্রয়োজন নেই।
সতর্কতা: আপনার অ্যাপের পুরস্কৃত পণ্য পরীক্ষা করার সময়, প্রকৃত পণ্য ব্যবহার করবেন না ; অন্যথায়, আপনার অ্যাকাউন্ট একটি স্প্যাম বা প্রতারণামূলক অ্যাকাউন্ট হিসাবে পতাকাঙ্কিত হতে পারে।
আপনার পরীক্ষা শেষ হয়ে গেলে, নিশ্চিত করুন যে আপনি শেষ ব্যবহারকারীদের জন্য আপনার প্রোডাকশন অ্যাপ স্থাপন করার আগে আপনার প্রকৃত পুরস্কৃত পণ্যগুলির জন্য android.test.reward
প্রোডাক্ট আইডি দিয়ে প্রতিস্থাপন করেছেন।
পুরস্কৃত পণ্য কর্মপ্রবাহের চিত্র
নিম্নলিখিত সিকোয়েন্স ডায়াগ্রামটি দেখায় কিভাবে ব্যবহারকারী, আপনার অ্যাপ এবং Google Play বিলিং লাইব্রেরি একটি ভিডিও বিজ্ঞাপন দেখানোর জন্য এবং ব্যবহারকারীকে একটি পুরস্কৃত পণ্যে অ্যাক্সেস দেওয়ার জন্য একসাথে কাজ করে: