পুরস্কৃত বিজ্ঞাপন


পুরস্কৃত বিজ্ঞাপনগুলি ব্যবহারকারীদের অ্যাপ-মধ্যস্থ পুরস্কারের বিনিময়ে তাদের সাথে ইন্টারঅ্যাক্ট করার বিকল্প দেয়। Google মোবাইল বিজ্ঞাপন C++ SDK ব্যবহার করে Android এবং iOS অ্যাপে পুরস্কৃত বিজ্ঞাপনগুলিকে কীভাবে একীভূত করতে হয় এই নির্দেশিকাটি আপনাকে দেখায়।

কিছু গ্রাহকের সাফল্যের গল্প পড়ুন: কেস স্টাডি 1 , কেস স্টাডি 2

পূর্বশর্ত

সর্বদা পরীক্ষার বিজ্ঞাপন দিয়ে পরীক্ষা করুন

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

পরীক্ষার বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল পুরস্কৃত বিজ্ঞাপনের জন্য আমাদের ডেডিকেটেড টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা, যা ডিভাইস প্ল্যাটফর্ম অনুসারে পরিবর্তিত হয়:

  • অ্যান্ড্রয়েড: ca-app-pub-3940256099942544/5224354917
  • iOS: ca-app-pub-3940256099942544/1712485313

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

মোবাইল বিজ্ঞাপন SDK-এর পরীক্ষার বিজ্ঞাপনগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পরীক্ষা বিজ্ঞাপনগুলি দেখুন।

বাস্তবায়ন

পুরস্কৃত বিজ্ঞাপনগুলিকে সংহত করার প্রধান পদক্ষেপগুলি হল:

  1. একটি বিজ্ঞাপন লোড করুন.
  2. কলব্যাকের জন্য নিবন্ধন করুন।
  3. বিজ্ঞাপন প্রদর্শন করুন এবং পুরস্কার ইভেন্ট পরিচালনা করুন.

একটি RewardedAd কনফিগার করুন

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

  1. আপনার অ্যাপের C++ কোডে নিম্নলিখিত হেডার যোগ করুন:

     #include "firebase/gma/rewarded_ad.h"

  2. একটি RewardedAd অবজেক্ট ঘোষণা করুন এবং তাৎক্ষণিক করুন:

     firebase::gma::RewardedAd* rewarded_ad;
     rewarded_ad = new firebase::gma::RewardedAd();

  3. একটি AdParent প্রকারে আপনার অভিভাবক ভিউ কাস্ট ব্যবহার করে RewardedAd ইনস্ট্যান্স শুরু করুন। প্যারেন্ট ভিউ হল একটি অ্যান্ড্রয়েড Activity জন্য একটি JNI jobject রেফারেন্স বা একটি iOS UIView এর একটি পয়েন্টার।

    // my_ad_parent is a jobject reference to an Android Activity or
    // a pointer to an iOS UIView.
    firebase::gma::AdParent ad_parent =
      static_cast<firebase::gma::AdParent>(my_ad_parent);
    firebase::Future<void> result = rewarded_ad->Initialize(ad_parent);
    
  4. ভেরিয়েবল হিসেবে ভবিষ্যৎ ধরে রাখার বিকল্প হিসেবে, আপনি RewardedAd অবজেক্টে InitializeLastResult() ব্যবহার করে পর্যায়ক্রমে ইনিশিয়ালাইজেশন অপারেশনের স্থিতি পরীক্ষা করতে পারেন। এটি আপনার গ্লোবাল গেম লুপে প্রারম্ভিক প্রক্রিয়ার ট্র্যাক রাখার জন্য সহায়ক হতে পারে।

    // Monitor the status of the future in your game loop:
    firebase::Future<void> result = rewarded_ad->InitializeLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      // Initialization completed.
      if(future.error() == firebase::gma::kAdErrorCodeNone) {
        // Initialization successful.
      } else {
        // An error has occurred.
      }
    } else {
      // Initialization on-going.
    }
    

firebase::Future সাথে কাজ করার বিষয়ে আরও তথ্যের জন্য, পদ্ধতি কলের সমাপ্তির স্থিতি নিরীক্ষণ করতে ফিউচার ব্যবহার করুন দেখুন।

একটি বিজ্ঞাপন লোড করুন

RewardedAd অবজেক্টে LoadAd() পদ্ধতি ব্যবহার করে একটি বিজ্ঞাপন লোড করা হয়। লোড পদ্ধতির জন্য প্রয়োজন যে আপনি RewardedAd অবজেক্ট শুরু করেছেন এবং আপনার বিজ্ঞাপন ইউনিট আইডি এবং একটি AdRequest অবজেক্ট আছে। একটি firebase::Future ফেরত দেওয়া হয় যা আপনি লোড অপারেশনের অবস্থা এবং ফলাফল নিরীক্ষণ করতে ব্যবহার করতে পারেন।

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

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = rewarded_ad->LoadAd(rewarded_ad_unit_id, ad_request);

কলব্যাকের জন্য নিবন্ধন করুন

পুরস্কৃত বিজ্ঞাপন উপস্থাপনা এবং লাইফসাইকেল ইভেন্টগুলির বিজ্ঞপ্তি পেতে আপনাকে অবশ্যই FullScreenContentListener ক্লাস প্রসারিত করতে হবে। আপনার কাস্টম FullScreenContentListener সাবক্লাস RewardedAd::SetFullScreenContentListener() পদ্ধতির মাধ্যমে নিবন্ধিত হতে পারে, এবং যখন বিজ্ঞাপনটি সফলভাবে বা অসফলভাবে উপস্থাপন করা হয় এবং সেইসাথে এটি বাতিল করা হয় তখন এটি কলব্যাক পাবে।

নিম্নলিখিত কোডটি দেখায় যে কীভাবে ক্লাসটি প্রসারিত করতে হয় এবং এটি বিজ্ঞাপনে বরাদ্দ করতে হয়:

  class ExampleFullScreenContentListener
      : public firebase::gma::FullScreenContentListener {

   public:
    ExampleFullScreenContentListener() {}

    void OnAdClicked() override {
      // This method is invoked when the user clicks the ad.
    }

    void OnAdDismissedFullScreenContent() override {
     // This method is invoked when the ad dismisses full screen content.
    }

    void OnAdFailedToShowFullScreenContent(const AdError& error) override {
      // This method is invoked when the ad failed to show full screen content.
      // Details about the error are contained within the AdError parameter.
    }

    void OnAdImpression() override {
      // This method is invoked when an impression is recorded for an ad.
    }

    void OnAdShowedFullScreenContent() override {
      // This method is invoked when the ad showed its full screen content.
    }
  };

  ExampleFullScreenContentListener* example_full_screen_content_listener =
    new ExampleFullScreenContentListener();
  rewarded_ad->SetFullScreenContentListener(example_full_screen_content_listener);

RewardedAd হল এক-বার ব্যবহার করা বস্তু। এর অর্থ হল একটি পুরস্কৃত বিজ্ঞাপন একবার দেখানো হলে তা আর দেখানো যাবে না। একটি সর্বোত্তম অনুশীলন হল আপনার FullScreenContentListener এর OnAdDismissedFullScreenContent() পদ্ধতিতে অন্য একটি পুরস্কৃত বিজ্ঞাপন লোড করা যাতে আগেরটি খারিজ হওয়ার সাথে সাথে পরবর্তী পুরস্কৃত বিজ্ঞাপনটি লোড হতে শুরু করে।

বিজ্ঞাপন দেখান এবং পুরস্কার ইভেন্ট পরিচালনা করুন

ব্যবহারকারীদের কাছে একটি পুরস্কৃত বিজ্ঞাপন প্রদর্শন করার আগে, আপনাকে অবশ্যই ব্যবহারকারীকে একটি পুরষ্কারের বিনিময়ে পুরস্কৃত বিজ্ঞাপন সামগ্রী দেখার জন্য একটি স্পষ্ট পছন্দ উপস্থাপন করতে হবে। পুরস্কৃত বিজ্ঞাপন সর্বদা একটি অপ্ট-ইন অভিজ্ঞতা হতে হবে।

আপনার বিজ্ঞাপনটি উপস্থাপন করার সময়, ব্যবহারকারীর জন্য পুরস্কার পরিচালনা করার জন্য আপনাকে অবশ্যই একটি UserEarnedReward অবজেক্ট প্রদান করতে হবে।

নিম্নলিখিত কোডটি দেখায় কিভাবে একটি RewardedAd প্রদর্শন করতে হয়:

// A simple listener track UserEarnedReward events.
class ExampleUserEarnedRewardListener :
    public firebase::gma::UserEarnedRewardListener {
 public:
   ExampleUserEarnedRewardListener() { }

  void OnUserEarnedReward(const firebase::gma::AdReward& reward) override {
    // Reward the user!
  }
};

ExampleUserEarnedRewardListener* user_earned_reward_listener =
  new ExampleUserEarnedRewardListener();
firebase::Future<void> result = rewarded_ad->Show(user_earned_reward_listener);

FAQ

আরম্ভ কলের জন্য একটি সময়সীমা আছে?
10 সেকেন্ডের পরে, Google মোবাইল বিজ্ঞাপন C++ SDK Firebase:: Initialize() দ্বারা ফেরত দেওয়া firebase::Future সম্পন্ন করে, এমনকি যদি একটি মধ্যস্থতা নেটওয়ার্ক এখনও শুরু না করে থাকে।
আমি যখন ইনিশিয়ালাইজেশন কলব্যাক পাই তখন কিছু মধ্যস্থতা নেটওয়ার্ক প্রস্তুত না হলে কী হবে?

SDK প্রারম্ভিকতা সম্পূর্ণ হওয়ার পরে বিজ্ঞাপন লোড করা একটি সর্বোত্তম অভ্যাস। এমনকি একটি মধ্যস্থতা নেটওয়ার্ক প্রস্তুত না হলেও, Google মোবাইল বিজ্ঞাপন C++ SDK এখনও সেই নেটওয়ার্কটিকে একটি বিজ্ঞাপনের জন্য জিজ্ঞাসা করবে৷ তাই যদি একটি মধ্যস্থতা নেটওয়ার্ক টাইমআউটের পরে আরম্ভ করা শেষ করে, তবে এটি এখনও সেই সেশনে ভবিষ্যতের বিজ্ঞাপনের অনুরোধগুলিকে পরিষেবা দিতে পারে।

আপনি GetInitializationStatus() কল করে আপনার অ্যাপ সেশন জুড়ে সমস্ত অ্যাডাপ্টারের প্রারম্ভিক অবস্থা পোল চালিয়ে যেতে পারেন।

একটি নির্দিষ্ট মধ্যস্থতা নেটওয়ার্ক কেন প্রস্তুত নয় তা আমি কীভাবে খুঁজে পাব?

AdapterStatus.description() বর্ণনা করে যে কেন একটি অ্যাডাপ্টার বিজ্ঞাপনের অনুরোধের জন্য প্রস্তুত নয়। লগিং মধ্যস্থতা অ্যাডাপ্টারের স্থিতির উদাহরণের জন্য গিটহাবে আমাদের উদাহরণ কুইকস্টার্ট অ্যাপের উত্স কোডটি দেখুন৷

অতিরিক্ত সম্পদ

গিটহাবের উদাহরণ