নতুন Google মোবাইল বিজ্ঞাপন C++ SDK-এ স্থানান্তর করুন


Firebase C++ SDK v9.1.0 প্রকাশের সাথে একটি নতুন Google Mobile Ads C++ SDK চালু করা হয়েছে।

গুগল মোবাইল অ্যাডস সি++ এসডিকে হলো একটি নতুন এপিআই সারফেস, যা ২০২১ এবং ২০২২ সালে আইওএস এবং অ্যান্ড্রয়েডের জন্য ফায়ারবেস অ্যাডমব সি++ এসডিকে-তে করা বড় ধরনের পরিবর্তনগুলো অন্তর্ভুক্ত করে। এর মধ্যে রয়েছে ডেপ্রিকেটেড এপিআই অপসারণ এবং ফুল স্ক্রিন অ্যাড টাইপ নিয়ে কাজ করার জন্য একটি নতুন কার্যপ্রণালী।

পুরানো Firebase AdMob C++ SDK ( firebase::admob )-কে অপ্রচলিত (deprecated) হিসেবে চিহ্নিত করা হয়েছে এবং এখন থেকে এটিতে আর কোনো আপডেট বা বাগ ফিক্স করা হবে না।

ফায়ারবেস অ্যাডমব সি++ এসডিকে-এর অবলুপ্তির সময়কালে, নতুন গুগল মোবাইল অ্যাডস সি++ এসডিকে ( firebase::gma ) এবং পুরোনো ফায়ারবেস অ্যাডমব সি++ এসডিকে ( firebase::admob ) উভয়ই Firebase C++ ++ এসডিকে-এর বিল্ড আর্কাইভের অংশ হিসেবে থাকবে।

লিগ্যাসি এপিআই অপসারণ

নিম্নলিখিত API-গুলো Google Mobile Ads C++ SDK থেকে সম্পূর্ণরূপে সরিয়ে ফেলা হয়েছে।

RewardedVideoAd

AdMob-এর RewardedVideoAd নেমস্পেসটি RewardedAd ক্লাস দ্বারা প্রতিস্থাপিত হয়েছে। RewardedAd আচরণ InterstitialAd এর মতোই, তবে এতে আইটেম পুরস্কারের নোটিফিকেশন পাওয়ার জন্য একটি অতিরিক্ত RewardedAdListener অন্তর্ভুক্ত রয়েছে।

NativeExpressAds

প্রতিটি Firebase AdMob C++ SDK-তে AdMob-এর NativeExpressAd ইতিমধ্যেই অপ্রচলিত (deprecated) হিসেবে চিহ্নিত করা হয়েছে। তাই নতুন Google Mobile Ads C++ SDK-তে NativeExpressAd অন্তর্ভুক্ত করা হয়নি।

SDK নেমস্পেস পরিবর্তন

SDK-টি একটি নতুন নেমস্পেসে স্থানান্তরিত হয়েছে এবং এটির একটি নতুন ডিরেক্টরি কাঠামো রয়েছে:

নেমস্পেস firebase::gma

নতুন গুগল মোবাইল অ্যাডস সি++ এসডিকে-এর সোর্সগুলো firebase::gma নেমস্পেসে রয়েছে। পুরোনো firebase::admob নেমস্পেসটি ফায়ারবেস অ্যাডমব সি++ এসডিকে-এর সাথে সাথে অপ্রচলিত (deprecated) ঘোষণা করা হয়েছে।

ডিরেক্টরি কাঠামো

হেডার ফাইলগুলো বিল্ড আর্কাইভের ভিতরে একটি নতুন ডিরেক্টরিতে স্থানান্তরিত করা হয়েছে:

বাতিল ফায়ারবেস অ্যাডমব সি++ এসডিকে নতুন গুগল মোবাইল বিজ্ঞাপন C++ SDK
include/firebase/admob include/firebase/gma

লাইব্রেরি

Firebase AdMob C++ SDK-টি Firebase C++ SDK বিল্ড আর্কাইভের মধ্যে একটি স্ট্যাটিক লাইব্রেরি হিসেবে প্রদান করা হবে:

আইওএস

বাতিল ফায়ারবেস অ্যাডমব সি++ এসডিকে নতুন গুগল মোবাইল বিজ্ঞাপন C++ SDK
firebase_admob.xcframework firebase_gma.xcframework

অ্যান্ড্রয়েড

বাতিল ফায়ারবেস অ্যাডমব সি++ এসডিকে নতুন গুগল মোবাইল বিজ্ঞাপন C++ SDK
libfirebase_admob.a libfirebase_gma.a

ক্লাস, এনাম এবং স্ট্রাক্ট মাইগ্রেশন

নিচের সারণিতে সেইসব নির্দিষ্ট ক্লাস, এনাম এবং স্ট্রাক্ট-এর তালিকা দেওয়া হলো যেগুলো পরিবর্তিত হয়েছে বা সরিয়ে ফেলা হয়েছে। নিচে তার একটি সারসংক্ষেপ দেওয়া হলো:

  • BannerView নাম পরিবর্তন করে AdView রাখা হয়েছে।
  • NativeAdExpressView সরিয়ে ফেলা হয়েছে।
  • RewardedVideo নেমস্পেসটি RewardedAd ক্লাস দ্বারা প্রতিস্থাপিত হয়েছে।
  • PresentationState এনুমারেশন এবং লিসেনারগুলো সরিয়ে AdListener এবং FullScreenContent লিসেনার দ্বারা প্রতিস্থাপন করা হয়েছে।
  • AdRequests এ প্রতি-বিজ্ঞাপন কনফিগারেশন প্যারামিটার হিসেবে নিম্নলিখিত প্যারামিটারগুলো সরানো হয়েছে:

    • টেস্ট ডিভাইস আইডিগুলির কনফিগারেশন
    • বয়সের ভিত্তিতে বিজ্ঞাপনের লক্ষ্য নির্ধারণ

    এর পরিবর্তে, এই প্যারামিটারগুলো এখন RequestConfiguration এ কনফিগার করা যাবে, যা একটি গ্লোবাল সেটিং এবং এটি পরবর্তী সমস্ত বিজ্ঞাপন লোডকে প্রভাবিত করবে।

অপ্রচলিত firebase::admob namespace নতুন firebase::gma namespace
AdSizeType (enum) AdSize::Type (enum)
BannerView AdView
BannerView::Listener AdListener
AdViewBoundingBoxListener
PaidEventListener
BannerView::Position AdView::Position
BannerView::PresentationState অপসারণ করা হয়েছে
ChildDirectedTreatmentState RequestConfiguration::TagForChildDirectedTreatment
Gender (এনাম) অপসারণ করা হয়েছে
InterstitialAd::Listener FullScreenContentListener
PaidEventListener
KeyValuePair অপসারণ করা হয়েছে
NativeExpressAdView অপসারণ করা হয়েছে
PollableRewardListener অপসারণ করা হয়েছে
RewardItem AdReward
RewardedVideoAd (নেমস্পেস) RewardedAd (শ্রেণী)
RewardedVideoAd::Listener FullScreenContentListener
PaidEventListener
UserEarnedRewardListener
AdMobError (enum) AdErrorCode (enum)
RewardItem AdReward

SDK প্রারম্ভিককরণ

প্রতিটি গুগল মোবাইল অ্যাডস সি++ এসডিকে ইনিশিয়ালাইজেশন ফাংশন তাৎক্ষণিকভাবে দুটি স্ট্যাটাস ইন্ডিকেটর রিটার্ন করে:

  • একটি ঐচ্ছিক আউট প্যারামিটার জানায় যে প্রারম্ভিক প্রক্রিয়া শুরু হওয়ার আগে কোনো নির্ভরতা ত্রুটি ঘটেছে কিনা।

  • রিটার্ন প্যারামিটারটি হলো একটি firebase::Future এর রেফারেন্স। এই Future টিতে ডিভাইসে থাকা মিডিয়েশন অ্যাডাপ্টারগুলোর অ্যাসিঙ্ক্রোনাস ইনিশিয়ালাইজেশনের ফলাফল থাকে।

যদিও ইনিশিয়ালাইজেশন ফাংশনটি রিটার্ন করার সাথে সাথেই AdMob মাধ্যমে পরিবেশিত বিজ্ঞাপন লোড করার জন্য Google Mobile Ads C++ SDK চালু করা যেতে পারে, অন্যান্য বিজ্ঞাপন নেটওয়ার্কগুলো তাদের সংশ্লিষ্ট মিডিয়েশন অ্যাডাপ্টার সম্পূর্ণরূপে ইনিশিয়ালাইজ না হওয়া পর্যন্ত বিজ্ঞাপন পরিবেশন করবে না। এই প্রক্রিয়াটি অ্যাসিঙ্ক্রোনাসভাবে ঘটে। তাই, আপনি যদি আপনার অ্যাপ্লিকেশনে অ্যাড মিডিয়েশন ব্যবহার করেন, তাহলে আমরা সুপারিশ করি যে কোনো বিজ্ঞাপন লোড করার চেষ্টা করার আগে Future রিজলভ হওয়া পর্যন্ত অপেক্ষা করুন।

আগে

firebase::App* app = ::firebase::App::Create();
firebase::InitResult result = firebase::admob::Initialize(*app, kAdMobAppID);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing dependency.
  // Check the device logs for more information.
  return;
}

পরে

using firebase::App;
using firebase::Future;
using firebase::gma::AdapterInitializationStatus;

App* app = ::firebase::App::Create();
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(*app, &result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing dependency.
  // Check the device logs for more information.
  return;
}

// Poll the future to wait for its completion either in this
// thread, or as part of your game loop by calling
// firebase::gma::InitializeLastResult();
while (future.status() == firebase::kFutureStatusPending) {
  // Initialization on-going, continue to wait.
}

// future.status() is either kFutureStatusComplete or there’s an error

if (future.status() == firebase::kFutureStatusComplete &&
     future.error() == firebase::gma::AdErrorCodeNone) {
  AdapterInitializationStatus* status = future.result();
  // Check status for any mediation adapters you wish to use.
  // ..
} else {
  // Handle initialization error.
}

AdView এর মধ্যে AdSize এর পরিবর্তন

AdSize এখন প্রচলিত ব্যানার বিজ্ঞাপনের আকারগুলোর স্থির রূপ অন্তর্ভুক্ত রয়েছে এবং এটি AnchorAdaptiveInlineAdaptive বিজ্ঞাপনের আকারও সমর্থন করে, যেগুলোর উচ্চতা প্রদত্ত প্রস্থ এবং স্ক্রিনের বর্তমান অভিমুখের ওপর ভিত্তি করে পরিবর্তনশীল।

firebase::gma::AdSize এ স্ট্যাটিক AdSize কনস্ট্যান্ট যোগ করা হয়েছে

AdSize::kBanner

মোবাইল মার্কেটিং অ্যাসোসিয়েশন (এমএমএ) ব্যানার বিজ্ঞাপনের আকার (৩২০x৫০ ঘনত্ব-নিরপেক্ষ পিক্সেল)

AdSize::kFullBanner

ইন্টারেক্টিভ অ্যাডভার্টাইজিং ব্যুরো (IAB) পূর্ণ ব্যানার বিজ্ঞাপনের আকার (৪৬৮x৬০ ঘনত্ব-নিরপেক্ষ পিক্সেল)
AdSize::kLargeBanner kBanner এর লম্বা সংস্করণ, সাধারণত ৩২০x১০০

AdSize::kLeaderboard

ইন্টারঅ্যাকটিভ অ্যাডভার্টাইজিং ব্যুরো (IAB) লিডারবোর্ড বিজ্ঞাপনের আকার (৭২৮x৯০ ঘনত্ব-নিরপেক্ষ পিক্সেল)
AdSize::kMediumRectangle ইন্টারঅ্যাকটিভ অ্যাডভার্টাইজিং ব্যুরো (IAB) মাঝারি আয়তক্ষেত্রাকার বিজ্ঞাপনের আকার (৩০০x২৫০ ঘনত্ব-নিরপেক্ষ পিক্সেল)
firebase::gma::AdSize এর স্ট্যাটিক মেথডসমূহ যা AdSize এর ইনস্ট্যান্স তৈরি করতে সাহায্য করে।
GetLandscapeAnchoredAdaptiveBannerAdSize ল্যান্ডস্কেপ মোডে ব্যানার বিজ্ঞাপন তৈরি করার জন্য প্রদত্ত প্রস্থ এবং গুগল-অপ্টিমাইজড উচ্চতা সহ একটি AdSize তৈরি করে।
GetPortraitAnchoredAdaptiveBannerAdSize পোর্ট্রেট মোডে ব্যানার বিজ্ঞাপন তৈরি করার জন্য প্রদত্ত প্রস্থ এবং গুগল-অপ্টিমাইজড উচ্চতা সহ একটি AdSize তৈরি করে।
GetCurrentOrientationAnchoredAdaptiveBannerAdSize বর্তমান ওরিয়েন্টেশন অনুযায়ী একটি ব্যানার বিজ্ঞাপন তৈরি করার জন্য, প্রদত্ত প্রস্থ এবং গুগল-অপ্টিমাইজড উচ্চতা সহ একটি AdSize তৈরি করে।
GetInlineAdaptiveBannerAdSize একটি নির্দিষ্ট সর্বোচ্চ উচ্চতা দেওয়া থাকলে ব্যানার বিজ্ঞাপনের জন্য সবচেয়ে উপযুক্ত AdSize তৈরি করে।

এই AdSize গুগল সার্ভারকে একটি নির্দিষ্ট সর্বোচ্চ উচ্চতার সমান বা তার চেয়ে কম উচ্চতার একটি সর্বোত্তম বিজ্ঞাপনের আকার বেছে নিতে সাহায্য করে।

GetLandscapeInlineAdaptiveBannerAdSize প্রদত্ত প্রস্থ এবং ডিভাইসের ল্যান্ডস্কেপ উচ্চতা ব্যবহার করে একটি InlineAdaptive AdSize তৈরি করে।
GetPortraitInlineAdaptiveBannerAdSize প্রদত্ত প্রস্থ এবং ডিভাইসের পোর্ট্রেট উচ্চতা ব্যবহার করে একটি InlineAdaptive AdSize তৈরি করে।
GetCurrentOrientationInlineAdaptiveBannerAdSize একটি নির্দিষ্ট প্রস্থ দেওয়া থাকলে, বর্তমান ইন্টারফেস ওরিয়েন্টেশনের উপর ভিত্তি করে InlineAdaptive অ্যাডসাইজ (InlineAdaptive AdSize ফেরত দেওয়ার একটি সুবিধাজনক পদ্ধতি।

আগে

firebase::admob::BannerView* banner_view = new firebase::admob::BannerView();

firebase::admob::AdSize ad_size;
ad_size.ad_size_type = firebase::admob::kAdSizeStandard;
ad_size.width = 320;
ad_size.height = 50;

// ad_parent is a reference to an iOS UIView or an Android Activity.
// banner_ad_unit is your ad unit id for banner ads.
banner_view->Initialize(ad_parent, banner_ad_unit, ad_size);

পরে

firebase::gma::AdView* ad_view = new firebase::gma::AdView();

// ad_parent is a reference to an iOS UIView or an Android Activity.
// banner_ad_unit is your ad unit id for banner ads.
banner_view->Initialize(ad_parent, banner_ad_unit, firebase::gma::AdSize.kBanner);

AdRequest এবং গ্লোবাল কনফিগারেশন

টেস্ট ডিভাইস আইডি, TagForChildDirectedTreatment , এবং TagForUnderAgeOfConsent (যা পূর্বে বার্থডে দ্বারা নিয়ন্ত্রিত হতো) AdRequest থেকে সরিয়ে দেওয়া হয়েছে এবং এখন এগুলো একটি গ্লোবাল RequestConfiguration এর অংশ। অ্যাপ্লিকেশনগুলো তাদের লাইফসাইকেলের একেবারে শুরুতে firebase::gma::SetRequestConfiguration() কল করে এই মানগুলো কনফিগার করতে পারে। একবার কনফিগার করা হয়ে গেলে, পরবর্তী সমস্ত অ্যাড লোড অপারেশন এই সেটিংসগুলো মেনে চলবে।

firebase::gma::AdRequest এখনও বিদ্যমান, কারণ এটি বিজ্ঞাপন লোড করার জন্য প্রাসঙ্গিক তথ্য প্রদান করে, যার মধ্যে কীওয়ার্ড এবং একটি ঐচ্ছিক কন্টেন্ট ইউআরএল অন্তর্ভুক্ত থাকে।

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

AdRequest উল্লেখযোগ্য পরিবর্তনগুলো নিচে দেওয়া হলো:

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

আগে

firebase::admob::AdRequest request;

// Keywords to be used in targeting.
const char* keywords[] = {"GMA", "C++", "Fun"};
request.keyword_count = sizeof(keywords) / sizeof(keywords[0]);
request.keywords = keywords;

// "Extra" key value pairs.
static const firebase::admob::KeyValuePair extras[] = {
      {"extra_name", "extra_value"}};
request.extras_count = sizeof(extras) / sizeof(extras[0]);
request.extras = kRequestExtras;

// Devices that should be served test ads.
const char* test_device_ids[] ={ "123", "4567", "890" };
request.test_device_id_count =
      sizeof(test_device_ids) / sizeof(test_device_ids[0]);
request.test_device_ids = test_device_ids;

// Sample birthday to help determine the age of the user.
request.birthday_day = 10;
request.birthday_month = 11;
request.birthday_year = 1975;

// Load Ad with the AdRequest.

পরে

// Do once after Google Mobile Ads C++ SDK initialization.
// These settings will affect all Ad Load operations.
firebase::gma::RequestConfiguration configuration;
configuration.max_ad_content_rating =
      firebase::gma::RequestConfiguration::kMaxAdContentRatingPG;
configuration.tag_for_child_directed_treatment =
      firebase::gma::RequestConfiguration::kChildDirectedTreatmentTrue;
configuration.tag_for_under_age_of_consent =
      firebase::gma::RequestConfiguration::kUnderAgeOfConsentFalse;
configuration.test_device_ids.push_back("1234");
configuration.test_device_ids.push_back("4567");
configuration.test_device_ids.push_back("890");
firebase::gma::SetRequestConfiguration(configuration);

// Then, more information must be provided via an AdRequest when
// loading individual ads.
firebase::gma::AdRequest ad_request;

// "Extra" key value pairs.
ad_request.add_keyword("GMA");
ad_request.add_keyword("C++");
ad_request.add_keyword("Fun");

// Content URL.
ad_request.set_content_url("www.example.com");

// Mediation Adapter Extras.
#if defined(Android)
const char* ad_network_extras_class_name =
    "com/google/ads/mediation/admob/AdMobAdapter";
#else  // iOS
const char* ad_network_extras_class_name = "GADExtras";
#endif

ad_request.add_extra(ad_network_extras_class_name, "extra_name", "extra_value");

// Load Ad with the AdRequest. See next section.

AdResults

LoadAd এখন AdView , InterstitialAd , এবং RewardedAd সকল অ্যাড টাইপের জন্য একটি AdResult অবজেক্ট সম্বলিত একটি Future রিটার্ন করে। AdResult::is_successful মেথডটি অ্যাড রিকোয়েস্ট সফলভাবে সম্পন্ন হলে true , এবং না হলে false রিটার্ন করে।

ব্যর্থ হলে, AdResult এ একটি AdError অবজেক্ট থাকে, যাতে সমস্যাটি সম্পর্কে পরিষেবা-স্তরের তথ্য অন্তর্ভুক্ত থাকে, যেমন এরর কোড, এরর মেসেজ এবং ডোমেইন স্ট্রিং।

আগে

firebase::Future<AdResult> future;

void load_ad() {
  // Assume an already created AdRequest object.
  future = ad_view->LoadAd(ad_request);
}

void your_game_loop() {
  if (future.status() == firebase::kFutureStatusComplete) {
    if(future.error() != firebase::admob::kAdMobErrorNone) {
      // There was either an internal SDK issue that caused the Future to
      // fail its completion, or AdMob failed to fulfill the ad request.
      // Details are unknown other than the Future’s error code returned
      // from future.error().
    } else {
      // The ad loaded successfully.
    }
  }
}

পরে

firebase::Future<AdResult> future;

void load_ad() {
  // Assumes a previously created AdRequest object.
  // See "AdRequest and Global Configuration" above.
  future = ad_view->LoadAd(ad_request);
}

void your_game_loop() {
  // Check the future status in your game loop:
  if (future.status() == firebase::kFutureStatusComplete) {
    if(future.error() != firebase::admob::kAdErrorCodeNone) {
      // There was an internal SDK issue that caused the Future to fail.
    } else {
      // Future completed successfully.  Check the GMA result.
      const AdResult* ad_result = future.result();
      if ( ad_result->is_successful() != true ) {
        // GMA failed to serve an ad. Gather information about the error.
        const AdError& ad_error = ad_result->ad_error();
        AdErrorCode error_code = ad_error.code();
        const std::string error_domain = ad_error.domain();
        const std::string error_message = ad_error.message();
      } else {
        // The ad loaded successfully.
      }
    }
  }
}

AdView মধ্যে AdListener ইভেন্টগুলি

Google Mobile Ads C++ SDK-তে AdMob-এর BannerView::Listener ক্লাসটিকে দুটি স্বতন্ত্র লিসেনার ক্লাস দ্বারা প্রতিস্থাপন করা হয়েছে:

  • AdListener বিজ্ঞাপনের জীবনচক্র এবং ব্যবহারকারীর মিথস্ক্রিয়ার ঘটনাগুলো ট্র্যাক করে।
  • AdView আকার পরিবর্তন বা স্থানান্তরের সময় AdViewBoundingBoxListener সক্রিয় হয়।

AdMob OnPresentationStateChanged কলব্যাক Google Mobile Ads ম্যাপিং

` firebase::admob::BannerView::PresentationState এনুমারেটেড টাইপ এবং OnPresentationStateChanged লিসেনার মেথডটি নতুন গুগল মোবাইল অ্যাডস সি++ এসডিকে-তে অন্তর্ভুক্ত করা হয়নি।

একটি AdView এর জীবনচক্রে উপস্থাপনার অবস্থার পরিবর্তন শনাক্ত করার বিকল্প উপায়গুলো নিচে দেওয়া হলো:

firebase::admob::BannerView::Listener OnPresentationStateChanged ইভেন্ট firebase::gma::AdListener প্রতিরূপ
kPresentationStateHidden যখন AdListener::OnAdClosed কল করা হয়, অথবা যখন AdView::Hide() তার অ্যাসিঙ্ক্রোনাস অপারেশন সফলভাবে সম্পন্ন করে
kPresentationStateVisibleWithoutAd কোনোটিই নয়। আনলোডেড AdView-তে AdView AdView::Show() কল করার চেষ্টা করলে একটি ত্রুটি দেখা দেবে।
kPresentationStateVisibleWithAd যখন AdListener::OnAdOpened কল করা হয়, অথবা যখন AdView::Show() একটি বিজ্ঞাপনের সাথে তার অ্যাসিঙ্ক্রোনাস অপারেশন সফলভাবে সম্পন্ন করে
kPresentationStateOpenedPartialOverlay প্রদর্শিত বিজ্ঞাপনের আকার ও অবস্থান নির্ধারণ করতে AdListener::OnAdOpened() কল করার পর বাউন্ডিং বক্স কোয়েরি করুন। বিকল্পভাবে, AdView এর অবস্থান ও AdSize কোয়েরি করুন এবং/অথবা AdViewBoundingBoxListener মাধ্যমে বাউন্ডিং বক্স মনিটর করুন।
kPresentationStateCoveringUI উপরে kPresentationStateOpenedPartialOverlay দেখুন

RewardedAd এখন একটি ক্লাস

অপ্রচলিত Firebase AdMob C++ SDK-টি firebase::admob::rewarded_ad নেমস্পেসের একগুচ্ছ ফাংশনের মাধ্যমে রিওয়ার্ডেড অ্যাডের সুবিধা প্রদান করত। এই ফাংশনগুলোকে একত্রিত করে একটি নতুন RewardedAd ক্লাস তৈরি করা হয়েছে, যা InterstitialAd এর অনুরূপ API সারফেস ব্যবহার করে অ্যাড পরিবেশন করে (পরবর্তী বিভাগ দেখুন)।

InterstitialAd এবং RewardedAd শ্রোতারা

ইন্টারস্টিশিয়াল বিজ্ঞাপন এবং রিওয়ার্ডেড বিজ্ঞাপন উভয়কেই ফুল স্ক্রিন বিজ্ঞাপন হিসেবে গণ্য করা হয়। এই ধরনের বিজ্ঞাপনের লাইফ সাইকেল ইভেন্টগুলো শোনার জন্য একটি নতুন FullScreenContentListener ইনস্টল করা যেতে পারে, এবং AdMob পরিষেবা কখন একটি পেইড ইভেন্ট ঘটেছে বলে মনে করেছে তা ট্র্যাক করার জন্য একটি পৃথক PaidEventListener ইনস্টল করা যেতে পারে।

ব্যবহারকারীর অর্জিত পুরস্কারের ঘটনাগুলো নিরীক্ষণ করার জন্য RewardedAd একটি অতিরিক্ত লিসেনার রয়েছে।

নতুন পূর্ণ স্ক্রিন বিজ্ঞাপন কলব্যাক পদ্ধতি

FullScreenContentListener পদ্ধতিগুলি PaidEventListener পদ্ধতি UserEarnedRewardListener পদ্ধতিগুলি
OnAdClicked OnPaidEvent OnUserEarnedReward
OnAdDismissedFullScreenContent
OnAdFailedToShowFullScreenContent
OnAdImpression
OnAdShowedFullScreenContent

পদ্ধতি পরিবর্তন/অপসারণ/প্রতিস্থাপন করা হয়েছে

নিচের সারণিতে নতুন গুগল মোবাইল অ্যাডস সি++ এসডিকে-তে পরিবর্তিত নির্দিষ্ট মেথডগুলো তালিকাভুক্ত করা হয়েছে। তালিকাভুক্ত প্যারামিটারসহ মেথডগুলো অপরিবর্তিত রয়েছে, কিন্তু তাদের সিগনেচার পরিবর্তিত হয়েছে।

শ্রেণী ফায়ারবেস অ্যাডমব সি++ এসডিকে এপিআই গুগল মোবাইল বিজ্ঞাপন C++ SDK API নোট
BannerView MoveTo AdView::SetPosition
presentation_state অপসারণ করা হয়েছে AdViewListener ইভেন্ট এবং AdView::ShowAdView::Hide দ্বারা ভবিষ্যৎ ফলাফল নিয়ন্ত্রিত হয়।
SetListener AdView::SetAdListener
AdView::SetBoundingBoxListener
AdView::SetPaidEventListener
নতুন লিসেনার ডিজাইনটি AdView লাইফসাইকেল ইভেন্ট শনাক্তকরণের নির্ভুলতা বৃদ্ধি করে।
Listener::OnPresentationStateChanged অপসারণ করা হয়েছে উপরে BannerView::SetListener দেখুন।
Listener::OnBoundingBoxChanged AdViewBoundingBoxListener::OnBoundingBoxChanged
ইন্টারস্টিশিয়াল বিজ্ঞাপন Initialize(AdParent parent, const char* ad_unit_id) Initialize(AdParent parent) ad_unit_id প্যারামিটারটি এখন LoadAd অপারেশনের একটি অংশ।
LoadAd(const AdRequest& request) LoadAd(const char* ad_unit_id, const AdRequest& request)
presentation_state অপসারণ করা হয়েছে presentation_state এনুমারেশনটি সরিয়ে ফেলা হয়েছে। FullScreenContentListener ব্যবহার করুন।
SetListener SetFullScreenContentListener
SetPaidEventListener
Destroy অপসারণ করা হয়েছে রিসোর্স পরিষ্কার করা এখন RewardedAd ডেস্ট্রাক্টরের একটি অংশ।
RewardedAd
(আনুষ্ঠানিকভাবে)
RewardedVideoAd )
Initialize Initialize(AdParent parent) AdParent আগে Show তে পাস করা হতো, কিন্তু এখন এটি ইনিশিয়ালাইজেশনের অংশ।
presentation_state অপসারণ করা হয়েছে presentation_state এনুমারেশনটি সরিয়ে ফেলা হয়েছে। FullScreenContentListener ব্যবহার করুন।
SetListener SetFullScreenContentListener
SetPaidEventListener Show
একটি RewardedAd দেখানোর সময় একটি UserEarnedReward লিসেনারও সংজ্ঞায়িত করা হয়। নিচে দেখুন।
Show(AdParent parent) Show(UserEarnedRewardListener* listener)