Migrasi SDK

Halaman ini mencakup migrasi untuk versi saat ini dan sebelumnya.

Bermigrasi dari v20 ke v21

Bermigrasi dari v19 ke v20

Ada banyak perubahan yang dapat menyebabkan gangguan pada versi 20.0.0. Versi 19.7.0 memperkenalkan banyak API baru, dan menghentikan atau mengganti nama banyak class sebagai persiapan untuk versi 20.0.0. Panduan ini menyoroti perubahan utama dalam versi 20.0.0.

Update API format layar penuh

Mulai versi 20.0.0, format iklan interstisial, reward, interstisial reward, dan Layar Pembuka Aplikasi distandarisasi untuk mengikuti desain API yang konsisten.

Semua API format layar penuh menggunakan prinsip berikut:

  • Metode pemuatan statis
  • Mekanisme callback atau pengendali pemuatan yang serupa
  • Mengandalkan class FullScreenContentCallback untuk callback presentasi

Penghapusan RewardedVideoAd API lama

RewardedAd API yang lebih baru pertama kali diperkenalkan pada bulan Maret 2019 dan telah menjadi API reward pilihan selama lebih dari 18 bulan. Versi ini memiliki lebih banyak peningkatan dibandingkan dengan RewardedVideoAd API lama, termasuk kemampuan untuk memuat lebih dari satu iklan reward pada satu waktu.

RewardedVideoAd API lama dihapus di SDK versi 20.0.0.

Penghentian banner cerdas dan digantikan dengan banner adaptif

Iklan banner cerdas tidak digunakan lagi dan digantikan dengan iklan banner adaptif. Banner adaptif memberikan performa yang unggul dan lebih fleksibel dalam menetapkan lebar iklan. Jika Anda memilih untuk terus menggunakan banner lebar penuh, hal tersebut masih dapat dilakukan menggunakan banner adaptif, seperti yang ditunjukkan dalam cuplikan kode berikut:

Java

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);
  }
}

Kotlin

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)
    }
}

Keluar dari callback callback

Callback onAdLeftApplication untuk semua format iklan telah dihapus dan diganti dengan ProcessLifecycleOwner. Menggunakan API tingkat OS memberi tahu Anda setiap kali pengguna meninggalkan aplikasi, terlepas dari apakah itu karena interaksi iklan atau tidak.

Perhatikan bahwa callback onAdLeftApplication tidak pernah dimaksudkan sebagai pengendali klik iklan, dan mengandalkan callback ini untuk melaporkan klik tidak menghasilkan metrik yang akurat. Misalnya, klik pada ikon AdChoices yang meluncurkan browser eksternal memanggil callback, tetapi tidak dihitung sebagai klik.

Penggantian nama class

Tabel di bawah mencantumkan nama class tertentu yang telah diubah atau dihapus. Rangkuman:

  • Sebagian besar class yang terkait dengan UnifiedNativeAd telah diganti namanya menjadi NativeAd.
  • Class dan tampilan MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd, NativeContentAd, dan InstreamAd telah dihapus.
  • Semua class dengan awalan Publisher telah diganti dengan awalan AdManager.
  • Nama paket InterstitialAd telah berubah.
Kelas 19.5.0 Kelas 20.0.0
com.google.android.gms.ads. com.google.android.gms.ads.
reward.IklanVideoReward reward.RewardAd
reward.RewardVideoAdListener reward.RewardedAdLoadCallback dan FullScreenContentCallback
reward.RewardItem reward.RewardItem
reward.RewardAdCallback OnListenerPerolehanRewardReward
format.UnifiedNativeAdView nativead.NativeAdView
format.UnifiedNativeAd nativead.NativeAd
format.UnifiedNativeAdAssetNames nativead.NativeAdAssetNames
format.UnifiedNativeAd.OnUnifiedNativeAdLoadedListener nativead.NativeAd.OnNativeAdLoadedListener
format.AdChoicesView nativead.AdChoicesLihat
format.NativeAd.AdChoicesInfo nativead.NativeAd.AdChoicesInfo
format.MediaView nativead.MediaView
format.NativeAdViewHolder nativead.NativeAdViewHolder
format.NativeAdOptions nativead.NativeAdOptions
format.NativeCustomTemplateAd nativead.NativeCustomFormatAd
format.NativeCustomTemplateAd.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
MobileAds.Settings Dihapus
doubleclick.PublisherMediaItem admanager.AdManagerLifecycleOwner
doubleclick.PublisherAdView admanager.AdManagerAdView
format.PublisherAdViewOptions format.AdManagerAdViewOptions
doubleclick.PublisherInterstisialAd admanager.AdManagerInterstisialAd
IklanInterstisial interstisial.InterstisialAd
NativeExpressAdView Dihapus
instream.InstreamAd Dihapus
mediasi.admob.AdMobExtras Dihapus
Korelator Dihapus
search.SearchSearch Dihapus
Antarmuka domainanda.TagForUnderAgeOfConsent Dihapus
Antarmuka domainanda.MaxAdContentRating Dihapus
format.NativeAppInstallAd native.NativeAd
format.NativeAppInstallAdView native.NativeAdView
mediasi.NativeAppInstallAdMapper mediasi.UnifiedNativeAdMapper
format.NativeContentAd native.NativeAd
format.NativeContentAdView native.NativeAdView
mediasi.NativeContentAdMapper mediasi.UnifiedNativeAdMapper

Metode dihapus/diganti

Tabel di bawah mencantumkan perubahan spesifik dalam versi 20.0.0. Ringkasan:

  • Metode inisialisasi yang sudah usang telah dihapus dari class MobileAds.
  • Beberapa metode dari class AdRequest.Builder() telah dihapus atau dipindahkan ke class RequestConfiguration.
  • API RewardAd dan InterstisialAd telah diupdate agar selaras dengan semua format layar penuh.
  • Fitur korelator telah dihapus.
Class API v19.5.0 API v20.0.0 Catatan
UkuranIklan getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
Iklan Seluler lakukan inisialisasi(Context, String) MobileAds.Initialize(Context, OnInitializationCompletePemroses) ID aplikasi sekarang ditetapkan di AndroidManifest.xml.
lakukan inisialisasi(Context, String, MobileAds.Settings) lakukan inisialisasi(Context, OnInitializationCompleteListener) Class Settings tidak digunakan lagi.
getRewardedVideoAdInstance() Dihapus Gunakan RewardedAd API sebagai gantinya.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() Dihapus Format iklan layar penuh menggunakan FullscreenContentCallback sebagai pengganti AdListener, dan tidak ada metode yang setara pada FullscreenContentCallback. Metode telah dihapus dari AdListener.
Pengontrol Video getAspectRatio() MediaContent.getAspectRatio()
PublisherAdRequest getGender() Dihapus
getBirthday() Dihapus
getNetworkExtras() Dihapus
setManualImpressionEnabled() Dihapus
updateCorrelator() Dihapus Lihat Pemfilteran konten iklan.
PublisherAdRequest.Builder setBirthday() Dihapus
setGender() Dihapus
setIsDesignForFamily() Dihapus Lihat panduan.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() Lihat Mengaktifkan iklan percobaan.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() Lihat Pemfilteran konten iklan.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponsInfo.getMediationAdapterClassName() Objek ResponseInfo kini tersedia melalui metode AdView getResponseInfo().
OpsiIklan Native setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
Iklan Reward loadAd(ARPU, RewardedAdLoadCallback) RewardedAd.load(Context, String, ARPU, RewardedAdLoadCallback) RewardedAd kini menggunakan pendekatan pemuatan statis yang sama seperti format layar penuh lainnya.
loadAd(PublisherMediaItem, RewardedAdLoadCallback) RewardedAd.load(Context, String, AdManagerARPU, RewardedAdLoadCallback)
isLoaded() Dihapus Callback dari metode pemuatan statis menyediakan iklan yang sudah dimuat.
show(Activity, RewardedAdCallback) show(Activity, OnUserPerolehanedRewardListener) Metode acara ini mematuhi pendekatan format layar penuh yang lebih luas.
RewardAdLoadCallback onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdDimuat(AppOpenAd) onAdLoaded(AppOpenAd)
RewardInterstisialAdLoad onRewardedInterstisialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstisialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstisialAdLoaded(RewardedInterstisialAd) onAdDimuat(RewardedInterstisialAd)
PublisherInterstitialAd baru PublisherInterstitialAd() InterstisialAd.load(Context, String, ARPU, InterstisialAdLoadCallback) InterstisialAd kini menggunakan pendekatan pemuatan statis yang sama dengan format layar penuh lainnya.
setAdListener()
Permintaan DynamicHeightSearchAd getNetworkExtras() Dihapus Class NetworkExtras tidak digunakan lagi.
AdLoader untukKontenKonten() Dihapus
untukAppInstallAd() Dihapus
withCorrelator() Dihapus
getMediationAdapterClassName() Dihapus