SDK মাইগ্রেশন

এই পৃষ্ঠাটি বর্তমান এবং পূর্ববর্তী সংস্করণগুলির জন্য মাইগ্রেশন কভার করে৷

SDK v21-এ স্থানান্তর করুন

Google মোবাইল বিজ্ঞাপন SDK (2022 সালের প্রথম দিকে প্রকাশের জন্য নির্ধারিত) সংস্করণ 21.0.0 এর সাথে সম্ভাব্য বিল্ড ব্যর্থতা এড়াতে, এই গাইডে প্রবর্তিত চেক এবং নির্দেশিকা অনুসরণ করুন।

19 বা উচ্চতর minSdkVersion আপডেট করুন

21.0.0 সংস্করণ থেকে শুরু করে, Google মোবাইল বিজ্ঞাপন SDK-এর জন্য সমস্ত অ্যাপগুলি চালানোর জন্য সর্বনিম্ন Android API স্তর 19-এ থাকা প্রয়োজন৷ API স্তর সামঞ্জস্য করতে, আপনার অ্যাপের বিল্ড ফাইলে minSdkVersion এর মান 19 বা তার বেশি পরিবর্তন করুন।

কঠোর শূন্যতা প্রয়োগ করুন

কঠোর শূন্যতা কার্যকর করার প্রস্তুতির জন্য, @NonNull টীকাগুলি সমস্ত API-তে যোগ করা হয়েছে যেগুলি পূর্বে শূন্যতাকে স্পষ্টভাবে সংজ্ঞায়িত করেনি।

এই পরিবর্তনটি কোটলিন অ্যাপস এবং অ্যাপগুলিকে ভেঙে দিতে পারে যেগুলি জাভা নাল চেকিং ফ্রেমওয়ার্ক ব্যবহার করে যদি নাল নিরাপত্তা লঙ্ঘন থাকে এবং পূর্বে null মানগুলি নিরাপদ উপায়ে পরিচালনা না করে থাকে ( নাল-নিরাপত্তা সংক্রান্ত কোটলিন ডকুমেন্টেশন দেখুন)।

addNetworkExtras() পদ্ধতি অপসারণ

addNetworkExtras() পদ্ধতি যেটি একটি নির্দিষ্ট বিজ্ঞাপন নেটওয়ার্ক অ্যাডাপ্টারে একটি NetworkExtras উদাহরণ হিসাবে অতিরিক্ত প্যারামিটার পাস করে SDK সংস্করণ 20.3.0-এ বাতিল করা হয়েছে এবং 21.0.0 সংস্করণে সরিয়ে দেওয়া হবে। পরিবর্তে একই AdRequest.Builder ক্লাস থেকে addNetworkExtrasBundle() পদ্ধতি ব্যবহার করুন।

অবস্থান পদ্ধতি অপসারণ

নিম্নলিখিত অবস্থান পদ্ধতিগুলি 21.0.0 সংস্করণে সরানো হবে:

  • AdRequest.Builder ক্লাসে setLocation(Location location) পদ্ধতি যা মধ্যস্থতা লক্ষ্য করার উদ্দেশ্যে ব্যবহারকারীর অবস্থান সেট করে।
  • AdRequest ক্লাসে getLocation() পদ্ধতি যা ব্যবহারকারীর লোকেশন টার্গেটিং তথ্য পূর্বে setLocation(Location location) পদ্ধতিতে পাস করা হয়।
  • MediationAdConfiguration ক্লাসে getLocation() পদ্ধতি যা AdRequest দ্বারা সংজ্ঞায়িত হলে ব্যবহারকারীর অবস্থান ফেরত দেয়।

লোকেশন ডেটা বিজ্ঞাপন টার্গেট করতে Google দ্বারা ব্যবহার করা হয় না। প্রয়োজনে তৃতীয় পক্ষের বিজ্ঞাপন নেটওয়ার্কে তথ্য প্রদান করতে আপনার তৃতীয় পক্ষের API ব্যবহার করা উচিত।

কাস্টম ইভেন্ট ইন্টারফেস অবচয়

কাস্টম ইভেন্টগুলি AdMobমধ্যস্থতা ব্যবহার করে প্রকাশকদেরকে একটি বিজ্ঞাপন নেটওয়ার্কের জন্য জলপ্রপাতের মধ্যস্থতা যোগ করতে সক্ষম করে যাAdMobএর সমর্থিত বিজ্ঞাপন নেটওয়ার্কগুলির মধ্যে একটি নয়৷

সমস্ত কাস্টম ইভেন্ট ইন্টারফেস Adapter ক্লাস এবং MediationAdLoadCallback ইন্টারফেসের পক্ষে অবচয় করা হয়েছে।

নীচের সারণীটি সংশ্লিষ্ট শ্রেণী বা ইন্টারফেসের তালিকা করে যা 21.0.0 সংস্করণ থেকে শুরু করে প্রতিটি কাস্টম ইভেন্ট ইন্টারফেসের জন্য ব্যবহার করা উচিত:

v20.0.0 ইন্টারফেস v21.0.0 ক্লাস/ ইন্টারফেস
কাস্টম ইভেন্ট অ্যাডাপ্টার
কাস্টম ইভেন্ট ব্যানার
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener অ্যাডাপ্টার , মধ্যস্থতাAdLoadCallback
CustomEventInterstitial Listener
কাস্টম ইভেন্ট লিসেনার
CustomEventNativeListener

SDK v20 এ স্থানান্তর করুন

20.0.0 সংস্করণে অনেক ব্রেকিং পরিবর্তন আসছে। সংস্করণ 19.7.0 অনেকগুলি নতুন API প্রবর্তন করেছে, এবং সংস্করণ 20.0.0-এর প্রস্তুতির জন্য অনেকগুলি ক্লাস অবমূল্যায়িত বা পুনঃনামকরণ করেছে। এই নির্দেশিকাটি 19.7.0 সংস্করণে এবং সেইসঙ্গে সংস্করণ 20.0.0 (2021 সালের প্রথম দিকে) এর জন্য কী আসছে তা তুলে ধরা হয়েছে।

পূর্ণ-স্ক্রীন বিন্যাস API আপডেট

সংস্করণ 20.0.0 দিয়ে শুরু করে, ইন্টারস্টিশিয়াল, পুরস্কৃত, পুরস্কৃত ইন্টারস্টিশিয়াল এবং অ্যাপ ওপেন বিজ্ঞাপন ফর্ম্যাটগুলি একটি সামঞ্জস্যপূর্ণ API ডিজাইন অনুসরণ করার জন্য প্রমিত করা হয়েছে।

সমস্ত পূর্ণ-স্ক্রীন বিন্যাস API নিম্নলিখিত নীতিগুলি ব্যবহার করে:

  • একটি স্ট্যাটিক লোড পদ্ধতি
  • একটি অনুরূপ লোড কলব্যাক বা হ্যান্ডলার প্রক্রিয়া
  • উপস্থাপনা কলব্যাকের জন্য FullScreenContentCallback ক্লাসের উপর নির্ভর করুন

লিগ্যাসি পুরস্কৃত VideoAd API অপসারণ

নতুন RewardedAd API প্রথম চালু করা হয়েছিল মার্চ 2019 সালে এবং এটি 18 মাসেরও বেশি সময় ধরে পছন্দের পুরস্কৃত API। এটিতে লিগ্যাসি RewardedVideoAd API-এর তুলনায় অনেক বেশি উন্নতি হয়েছে, যার মধ্যে এক সময়ে একাধিক পুরস্কৃত বিজ্ঞাপন লোড করার ক্ষমতা রয়েছে৷

লিগ্যাসি RewardedVideoAd API SDK সংস্করণ 20.0.0 থেকে সরানো হয়েছে।

অভিযোজিত ব্যানারের পক্ষে স্মার্ট ব্যানার অবচয়

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

জাভা

public class MyActivity extends AppCompatActivity {
  ...
  private AdSize getFullWidthAdaptiveSize() {
    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);

    float widthPixels = outMetrics.widthPixels;
    float density = outMetrics.density;

    int adWidth = (int) (widthPixels / density);
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
  }
}

কোটলিন

class MyActivity : AppCompatActivity() {
  ...
  private val adaptiveAdSize: AdSize
    get() {
      val display = windowManager.defaultDisplay
      val outMetrics = DisplayMetrics()
      display.getMetrics(outMetrics)

      val density = outMetrics.density

      var adWidthPixels = ad_view_container.width.toFloat()
      if (adWidthPixels == 0f) {
        adWidthPixels = outMetrics.widthPixels.toFloat()
      }

      val adWidth = (adWidthPixels / density).toInt()
      return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
    }
}

অ্যাপ্লিকেশন কলব্যাক অপসারণ ছেড়ে দিন

সমস্ত বিজ্ঞাপন ফর্ম্যাটের জন্য onAdLeftApplication কলব্যাক ProcessLifecycleOwner এর পক্ষে সরানো হয়েছে। একটি OS-স্তরের API ব্যবহার করলে ব্যবহারকারীরা যখনই আপনার অ্যাপটি ছেড়ে চলে যান, তখন তা বিজ্ঞাপনের ইন্টারঅ্যাকশনের কারণে হোক বা না হোক, আপনাকে সূচিত করে।

মনে রাখবেন যে onAdLeftApplication কলব্যাক কখনই একটি বিজ্ঞাপন ক্লিক হ্যান্ডলার হওয়ার উদ্দেশ্যে ছিল না, এবং ক্লিকগুলি রিপোর্ট করার জন্য এই কলব্যাকের উপর নির্ভর করা একটি সঠিক মেট্রিক তৈরি করেনি। উদাহরণস্বরূপ, একটি বহিরাগত ব্রাউজার চালু করা AdChoices আইকনে একটি ক্লিক কলব্যাককে আহ্বান করে কিন্তু একটি ক্লিক হিসাবে গণনা করেনি৷

ক্লাসের নাম পরিবর্তন করুন

নীচের সারণীতে নির্দিষ্ট শ্রেণীর নামগুলি তালিকাভুক্ত করা হয়েছে যা পরিবর্তিত হয়েছে বা সরানো হয়েছে। সংক্ষেপে:

  • NativeAd এর সাথে সম্পর্কিত বেশিরভাগ ক্লাসের নাম পরিবর্তন করে UnifiedNativeAd করা হয়েছে।
  • MobileAds.Settings , NativeExpressAdView , NativeAppInstallAd , NativeContentAd , এবং InstreamAd ক্লাস এবং ভিউগুলি সরানো হয়েছে৷
  • Publisher প্রিফিক্স সহ সমস্ত ক্লাস একটি AdManager উপসর্গ দিয়ে প্রতিস্থাপিত হয়েছে৷
  • InterstitialAd প্যাকেজের নাম পরিবর্তিত হয়েছে।
19.5.0 ক্লাস 20.0.0 ক্লাস
com.google.android.gms.ads. com.google.android.gms.ads.
পুরস্কার। পুরস্কৃত ভিডিও বিজ্ঞাপন পুরস্কৃত। পুরস্কারপ্রাপ্ত বিজ্ঞাপন
পুরস্কার। পুরস্কৃত ভিডিও অ্যাডলিস্টেনার rewarded.RewardedAdLoadCallback এবং FullScreenContentCallback
পুরস্কার। পুরস্কারের আইটেম পুরস্কৃত। পুরস্কার আইটেম
rewarded.RewardedAdCallback OnUserEarnedRewardListener
বিন্যাস।UnifiedNativeAdView Nativead.NativeAdView
ফরম্যাট।UnifiedNativeAd স্থানীয় বিজ্ঞাপন
বিন্যাস।UnifiedNativeAdAssetNames Nativead.NativeAdAssetNames
বিন্যাস।UnifiedNativeAd.OnUnifiedNativeAdLoadedListener Nativead.NativeAd.OnNativeAdLoaded Listener
ফরম্যাট।AdChoicesView নেটিভড.অ্যাডচয়েসভিউ
ফরম্যাট। নেটিভ অ্যাড। অ্যাডচয়েস ইনফো নেটিভ্যাড.নেটিভ অ্যাড.অ্যাড চয়েস ইনফো
ফরম্যাট।মিডিয়াভিউ নেটিভড.মিডিয়াভিউ
ফরম্যাট।NativeAdViewHolder Nativead.NativeAdViewHolder
ফরম্যাট। নেটিভ অ্যাডঅপশন Nativead.NativeAdOptions
formats.NativeCustomTemplateAd নেটিভড.নেটিভ কাস্টমফরম্যাট অ্যাড
ফরম্যাট। নেটিভ কাস্টম টেমপ্লেট অ্যাড। অন কাস্টম টেমপ্লেট অ্যাড লোডেড লিস্টেনার নেটিটিভ
MobileAds.Settings সরানো হয়েছে
doubleclick.PublisherAdRequest admanager.AdManagerAdRequest
doubleclick.PublisherAdView admanager.AdManagerAdView
ফরম্যাট।PublisherAdViewOptions ফরম্যাট।AdManagerAdViewOptions
doubleclick.Publisher InterstitialAd admanager.AdManagerInterstitialAd
ইন্টারস্টিশিয়াল অ্যাড interstitial.InterstitialAd
NativeExpressAdView সরানো হয়েছে
instream.InstreamAd সরানো হয়েছে
mediation.admob.AdMobExtras সরানো হয়েছে
সম্পর্কীয় সরানো হয়েছে
সন্ধান করুন।অনুসন্ধান করুন সরানো হয়েছে
ইন্টারফেস AdRequest.TagForUnderAgeOfConsent সরানো হয়েছে
ইন্টারফেস AdRequest.MaxAdContentRating সরানো হয়েছে
formats.NativeAppInstallAd নেটিভ।নেটিভ অ্যাড
formats.NativeAppInstallAdView নেটিভ।নেটিভ অ্যাডভিউ
mediation.NativeAppInstallAdMapper মধ্যস্থতা।UnifiedNativeAdMapper
ফরম্যাট। নেটিভ কনটেন্ট অ্যাড নেটিভ।নেটিভ অ্যাড
ফরম্যাট। নেটিভ কনটেন্ট অ্যাডভিউ নেটিভ।নেটিভ অ্যাডভিউ
মধ্যস্থতা।NativeContentAdMapper মধ্যস্থতা।UnifiedNativeAdMapper

পদ্ধতি সরানো/প্রতিস্থাপিত

নীচের সারণীটি 20.0.0 সংস্করণে নির্দিষ্ট পরিবর্তনগুলি তালিকাভুক্ত করে৷ সংক্ষেপে:

  • MobileAds ক্লাস থেকে পুরানো প্রারম্ভিক পদ্ধতিগুলি সরানো হয়েছে৷
  • AdRequest.Builder() ক্লাস থেকে কিছু পদ্ধতি হয় সরিয়ে দেওয়া হয়েছে বা RequestConfiguration ক্লাসে সরানো হয়েছে।
  • RewardedAd এবং InterstitialAd APIগুলি সমস্ত পূর্ণ-স্ক্রীন ফর্ম্যাটের সাথে সারিবদ্ধ করার জন্য আপডেট করা হয়েছে৷
  • সম্পর্কীয় বৈশিষ্ট্যগুলি সরানো হয়েছে৷
ক্লাস v19.5.0 API v20.0.0 API মন্তব্য
বিজ্ঞাপনের আকার getPortraitBanner AdSizeWithWidth() getPortraitAnchored AdaptiveBannerAdSize()
GetLandscapeBanner AdSizeWithWidth() getLandscapeAnchored AdaptiveBannerAdSize()
getCurrentOrientation BannerAdSizeWithWidth() getCurrentOrientationAnchored AdaptiveBannerAdSize()
মোবাইল বিজ্ঞাপন আরম্ভ করুন (প্রসঙ্গ, স্ট্রিং) MobileAds.initialize(প্রসঙ্গ, OnInitializationComplete Listener) অ্যাপ আইডি এখন AndroidManifest.xml-এ সেট করা আছে।
আরম্ভ করুন (প্রসঙ্গ, স্ট্রিং, মোবাইল বিজ্ঞাপন. সেটিংস) আরম্ভ করুন (প্রসঙ্গ, অন ইনিশিয়ালাইজেশন সম্পূর্ণ শ্রোতা) সেটিংস ক্লাস অবমূল্যায়ন করা হয়েছে।
RewardedVideo AdInstance() সরানো হয়েছে পরিবর্তে RewardedAd API ব্যবহার করুন।
অ্যাডলিসনার onAdFailedToLoad(int) onAd FailedToLoad(LoadAdError)
onAdLeftApplication() সরানো হয়েছে পূর্ণ-স্ক্রীন বিজ্ঞাপন ফর্ম্যাটগুলি AdListener-এর জায়গায় FullscreenContentCallback ব্যবহার করে এবং FullscreenContentCallback-এ কোন সমতুল্য পদ্ধতি নেই। AdListener থেকে পদ্ধতিটি সরানো হয়েছে।
ভিডিও কন্ট্রোলার getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() সরানো হয়েছে
জন্মদিন () সরানো হয়েছে
GetNetworkExtras() সরানো হয়েছে
সেট ম্যানুয়াল ইমপ্রেশন সক্রিয় () সরানো হয়েছে
আপডেট কোরিলেটর() সরানো হয়েছে বিজ্ঞাপন সামগ্রী ফিল্টারিং দেখুন।
AdRequest.Builder সেট জন্মদিন() সরানো হয়েছে
সেট জেন্ডার() সরানো হয়েছে
setIsDesignedForFamilies() সরানো হয়েছে গাইড দেখুন।
addTestDevice() অনুরোধ কনফিগারেশন .বিল্ডার .setTestDeviceIds() পরীক্ষা বিজ্ঞাপন সক্ষম করা দেখুন।
tagForChildDirected Treatment() অনুরোধ কনফিগারেশন .Builder.setTagFor ChildDirected Treatment() বিজ্ঞাপন সামগ্রী ফিল্টারিং দেখুন।
সেটট্যাগ ফর আন্ডারএজঅফ কনসেন্ট() Request Configuration .Builder.setTagFor UnderAgeOfConsent()
setMaxAdContentRating() অনুরোধ কনফিগারেশন .বিল্ডার .setMaxAdContentRating()
অ্যাডভিউ getMediationAdapter ClassName() প্রতিক্রিয়া তথ্য .getMediationAdapter ClassName() একটি ResponseInfo অবজেক্ট এখন AdView পদ্ধতি getResponseInfo() এর মাধ্যমে উপলব্ধ।
NativeAdoptions সেট ইমেজ ওরিয়েন্টেশন() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
পুরস্কারপ্রাপ্ত বিজ্ঞাপন loadAd(AdRequest, RewardedAdLoadCallback) RewardedAd.load(প্রসঙ্গ, স্ট্রিং, AdRequest, RewardedAdLoadCallback) RewardedAd এখন অন্যান্য পূর্ণ-স্ক্রীন ফর্ম্যাটের মতো একই স্ট্যাটিক লোড পদ্ধতি ব্যবহার করে।
loadAd(PublisherAdRequest, RewardedAdLoadCallback) RewardedAd.load(প্রসঙ্গ, স্ট্রিং, AdManagerAdRequest, RewardedAdLoadCallback)
isloaded() সরানো হয়েছে স্ট্যাটিক লোড পদ্ধতি থেকে কলব্যাক একটি বিজ্ঞাপন প্রদান করে যা ইতিমধ্যেই লোড হয়েছে৷
শো (ক্রিয়াকলাপ, পুরস্কারপ্রাপ্ত অ্যাডকলব্যাক) শো (ক্রিয়াকলাপ, OnUserEarnedReward Listener) এই শো পদ্ধতিটি বিস্তৃত পূর্ণ-স্ক্রীন বিন্যাস পদ্ধতিকে মেনে চলে।
পুরস্কারপ্রাপ্তAdLoadCallback onRewardedAd FailedToLoad(int) onAd FailedToLoad(LoadAdError)
onRewardedAd FailedToLoad(LoadAdError) onAd FailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdloaded(পুরস্কৃত বিজ্ঞাপন)
AppOpenAdLoadCallback onAppOpenAd FailedToLoad(int) onAd FailedToLoad(LoadAdError)
onAppOpenAd FailedToLoad(LoadAdError) onAd FailedToLoad(LoadAdError)
onAppOpenAd লোড হয়েছে(AppOpenAd) onAdLoaded(AppOpenAd)
পুরস্কারপ্রাপ্ত ইন্টারস্টিশিয়াল অ্যাডলোড কলব্যাক onRewardedInterstitialAd FailedToLoad(int) onAd FailedToLoad(LoadAdError)
onRewardedInterstitialAd FailedToLoad(LoadAdError) onAd FailedToLoad(LoadAdError)
onRewardedInterstitialAd লোড হয়েছে(পুরস্কারপ্রাপ্ত ইন্টারস্টিশিয়াল অ্যাড) অন-এড লোড (পুরস্কৃত ইন্টারস্টিশিয়াল অ্যাড)
InterstitialAd নতুন InterstitialAd() InterstitialAd.load(প্রসঙ্গ, স্ট্রিং, AdRequest, InterstitialAdLoadCallback) InterstitialAd এখন অন্যান্য পূর্ণ-স্ক্রীন বিন্যাসের মতো একই স্ট্যাটিক লোড পদ্ধতি ব্যবহার করে।
সেটAdListener()
DynamicHeightSearchAd অনুরোধ GetNetworkExtras() সরানো হয়েছে NetworkExtras ক্লাসটি অবহেলিত হয়েছে।
অ্যাডলোডার বিষয়বস্তু বিজ্ঞাপনের জন্য() সরানো হয়েছে
AppInstallAd() এর জন্য সরানো হয়েছে
সহসংযোগকারী() সরানো হয়েছে
getMediationAdapter ClassName() সরানো হয়েছে