Halaman ini membahas migrasi untuk versi saat ini dan sebelumnya.
Bermigrasi dari v22 ke v23
API level Android minimum adalah 21
Mulai versi 23.0.0, SDK Iklan Seluler Google mewajibkan semua aplikasi
berada di level API Android minimum 21 agar dapat berjalan. Untuk menyesuaikan API level, ubah
nilai minSdkVersion
dalam file build.gradle
di tingkat aplikasi menjadi 21 atau yang lebih tinggi.
Metode yang Tidak Digunakan Lagi Dihapus/diganti
v22.0.0 API | v23.0.0 API |
---|---|
AdRequest.Builder.addTestDevice() | RequestConfiguration.Builder.setTestDeviceIds() |
AdRequest.Builder.tagForChildDirectedTreatment() | RequestConfiguration.Builder.setTagForChildDirectedTreatment() |
AdRequest.Builder.setIsDesignedForFamilies() | RequestConfiguration.Builder.setMaxAdContentRating() |
AdFormat.UNKNOWN | Tidak ada penggantian |
AdLoader.Builder.forUnifiedNativeAd() | AdLoader.Builder.forNativeAd() |
AdLoader.Builder.forCustomTemplateAd() | AdLoader.Builder.forCustomFormatAd() |
AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads.formats .NativeAdOptions)
|
AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads.nativead .NativeAdOptions)
|
void MobileAds.setSameAppKeyEnabled() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
Bermigrasi dari v21 ke v22
Menggunakan MobileAds.getVersion() untuk mendapatkan versi Google Mobile Ads SDK
Metode MobileAds.getVersionString()
dihapus di versi 22.0.0 dan diganti dengan
MobileAds.getVersion()
.
Metode baru menampilkan nomor versi eksternal yang diharapkan—misalnya,
22.0.0
. Untuk mengetahui informasi selengkapnya tentang perubahan ini, lihat Menggunakan metode
getVersion()
Google Mobile Ads SDK yang baru.
Metode yang dihapus atau diganti
Tabel di bawah ini mencantumkan perubahan spesifik dalam versi 22.0.0.
v21.0.0 | v22.0.0 |
---|---|
MobileAds.getVersionString() | MobileAds.getVersion() |
NativeCustomFormatAd.getVideoMediaView() | NativeCustomFormatAd.getMediaContent() |
NativeCustomFormatAd.getVideoController() | NativeCustomFormatAd.getMediaContent().getVideoController() |
AdRequest.Builder.setAdInfo() | AdRequest.Builder.setAdString() |
MediationRewardedVideoAdAdapter | Adaptor |
MediationRewardedVideoAdListener | |
com.google.android.gms.ads.mediation.VersionInfo | com.google.android.gms.ads.VersionInfo |
com.google.android.gms.ads.doubleclick.AppEventListener | com.google.android.gms.ads.admanager.AppEventListener |
Bermigrasi dari v20 ke v21
Mengupdate minSdkVersion ke 19 atau yang lebih tinggi
Mulai versi 21.0.0, Google Mobile Ads SDK mengharuskan semua aplikasi
berada di level API Android minimum 19 agar dapat berjalan. Untuk menyesuaikan API level, ubah
nilai minSdkVersion
dalam file build aplikasi Anda menjadi 19 atau yang lebih tinggi.
Menerapkan nullability ketat
Sebagai persiapan untuk menerapkan nullability yang ketat, anotasi @NonNull
ditambahkan di semua API yang sebelumnya tidak menentukan nullability secara eksplisit.
Perubahan ini dapat merusak aplikasi Kotlin dan aplikasi yang menggunakan framework pemeriksaan null
Java jika ada pelanggaran keamanan null dan sebelumnya tidak menangani
nilai null
dengan cara yang aman (lihat dokumentasi Kotlin tentang
Keamanan null
).
Penghapusan metode addNetworkExtras()
Metode addNetworkExtras()
yang meneruskan parameter tambahan sebagai
instance NetworkExtras
ke adaptor jaringan iklan tertentu tidak digunakan lagi di SDK
versi 20.3.0, dan akan dihapus di versi 21.0.0. Sebagai gantinya, gunakan metode
addNetworkExtrasBundle()
dari class AdRequest.Builder
yang sama.
Penghapusan metode lokasi
Metode lokasi berikut akan dihapus di versi 21.0.0:
- Metode
setLocation(Location location)
di classAdRequest.Builder
yang menetapkan lokasi pengguna untuk tujuan penargetan mediasi. - Metode
getLocation()
di classAdRequest
yang menampilkan informasi penargetan lokasi pengguna yang sebelumnya diteruskan ke metodesetLocation(Location location)
. - Metode
getLocation()
di classMediationAdConfiguration
yang menampilkan lokasi pengguna, jika ditentukan olehAdRequest
.
Data lokasi tidak digunakan oleh Google untuk menargetkan iklan. Anda harus menggunakan API pihak ketiga untuk memberikan informasi kepada jaringan iklan pihak ketiga jika diperlukan.
Penghentian penggunaan antarmuka peristiwa kustom
Peristiwa kustom memungkinkan penayang yang menggunakan mediasi Mediasi AdMob menyiapkan sumber iklan waterfall yang bukan salah satu sumber iklan yang didukung AdMob.
Semua antarmuka peristiwa
kustom
tidak digunakan lagi dan digantikan dengan
class
Adapter
dan
antarmuka
MediationAdLoadCallback
.
Tabel di bawah ini mencantumkan class atau antarmuka yang sesuai yang harus digunakan untuk setiap antarmuka peristiwa kustom mulai dari versi 21.0.0:
Antarmuka v20.0.0 | Class/ Antarmuka v21.0.0 |
---|---|
CustomEvent | Adaptor |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adaptor,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
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 tidak lagi menggunakan atau mengganti nama banyak class sebagai persiapan untuk versi 20.0.0. Panduan ini menyoroti perubahan utama pada 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 pengendali atau callback pemuatan yang serupa
- Ketergantungan pada class
FullScreenContentCallback
untuk callback presentasi
Penghapusan RewardedVideoAd API lama
API
RewardedAd
yang lebih baru pertama kali diperkenalkan pada Maret 2019 dan telah menjadi API reward
yang lebih disukai selama lebih dari 18 bulan. API ini memiliki lebih banyak peningkatan dibandingkan dengan
RewardedVideoAd
API lama, termasuk kemampuan untuk memuat lebih dari satu iklan reward
sekaligus.
RewardedVideoAd
API lama dihapus di SDK versi 20.0.0.
Penghentian penggunaan smart banner dan penggunaan banner adaptif
Iklan banner cerdas tidak digunakan lagi dan diganti dengan iklan banner adaptif. Banner adaptif memberikan performa yang lebih baik dan fleksibilitas yang lebih besar dalam menetapkan lebar iklan. Jika Anda lebih suka terus menggunakan banner lebar penuh, hal itu 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) } }
Penghapusan callback aplikasi keluar
Callback onAdLeftApplication
untuk semua format iklan telah dihapus dan diganti dengan
ProcessLifecycleOwner
.
Menggunakan API tingkat OS akan memberi tahu Anda setiap kali pengguna keluar dari aplikasi, terlepas dari
apakah hal itu disebabkan oleh 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 akan memanggil callback, tetapi tidak dihitung sebagai klik.
Penggantian nama class
Tabel di bawah ini mencantumkan nama class tertentu yang telah berubah atau dihapus. Singkatnya:
- Sebagian besar class yang terkait dengan
UnifiedNativeAd
telah diganti namanya menjadiNativeAd
. - Class dan tampilan
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
, danInstreamAd
telah dihapus. - Semua class dengan awalan
Publisher
telah diganti dengan awalanAdManager
. - Nama paket
InterstitialAd
telah berubah.
Class 19.5.0 | Class 20.0.0 |
---|---|
com.google.android.gms.ads. | com.google.android.gms.ads. |
reward.RewardedVideoAd | rewarded.RewardedAd |
reward.RewardedVideoAdListener | rewarded.RewardedAdLoadCallback dan FullScreenContentCallback |
reward.RewardItem | rewarded.RewardItem |
rewarded.RewardedAdCallback | OnUserEarnedRewardListener |
formats.UnifiedNativeAdView | nativead.NativeAdView |
formats.UnifiedNativeAd | nativead.NativeAd |
formats.UnifiedNativeAdAssetNames | nativead.NativeAdAssetNames |
formats.UnifiedNativeAd.OnUnifiedNativeAdLoadedListener | nativead.NativeAd.OnNativeAdLoadedListener |
formats.AdChoicesView | nativead.AdChoicesView |
formats.NativeAd.AdChoicesInfo | nativead.NativeAd.AdChoicesInfo |
formats.MediaView | nativead.MediaView |
formats.NativeAdViewHolder | nativead.NativeAdViewHolder |
formats.NativeAdOptions | nativead.NativeAdOptions |
formats.NativeCustomTemplateAd | nativead.NativeCustomFormatAd |
formats.NativeCustomTemplateAd |
nativead.NativeCustomFormatAd |
MobileAds.Settings | Dihapus |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
formats.PublisherAdViewOptions | formats.AdManagerAdViewOptions |
doubleclick.PublisherInterstitialAd | admanager.AdManagerInterstitialAd |
InterstitialAd | interstitial.InterstitialAd |
NativeExpressAdView | Dihapus |
instream.InstreamAd | Dihapus |
mediation.admob.AdMobExtras | Dihapus |
Korelator | Dihapus |
search.SearchAdRequest | Dihapus |
Antarmuka AdRequest.TagForUnderAgeOfConsent | Dihapus |
Antarmuka AdRequest.MaxAdContentRating | Dihapus |
formats.NativeAppInstallAd | native.NativeAd |
formats.NativeAppInstallAdView | native.NativeAdView |
mediation.NativeAppInstallAdMapper | mediation.UnifiedNativeAdMapper |
formats.NativeContentAd | native.NativeAd |
formats.NativeContentAdView | native.NativeAdView |
mediation.NativeContentAdMapper | mediation.UnifiedNativeAdMapper |
Metode dihapus/diganti
Tabel di bawah ini mencantumkan perubahan tertentu dalam versi 20.0.0. Rangkuman:
- Metode inisialisasi yang sudah tidak digunakan lagi telah dihapus dari class MobileAds.
- Beberapa metode dari class
AdRequest.Builder()
telah dihapus atau dipindahkan ke classRequestConfiguration
. - RewardedAd dan InterstitialAd API telah diperbarui agar selaras dengan semua format layar penuh.
- Fitur korelator telah dihapus.
Kelas | v19.5.0 API | API v20.0.0 | Catatan |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
ID aplikasi kini ditetapkan di AndroidManifest.xml. |
initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete |
Class Settings tidak digunakan lagi. | |
getRewardedVideo |
Dihapus | Sebagai gantinya, gunakan RewardedAd API. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Dihapus | Format iklan layar penuh menggunakan FullscreenContentCallback sebagai pengganti AdListener, dan tidak ada metode yang setara di FullscreenContentCallback. Metode ini telah dihapus dari AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Dihapus | |
getBirthday() | Dihapus | ||
getNetworkExtras() | Dihapus | ||
setManualImpressions |
Dihapus | ||
updateCorrelator() | Dihapus | Lihat Pemfilteran konten iklan. | |
AdRequest.Builder | setBirthday() | Dihapus | |
setGender() | Dihapus | ||
setIsDesignedForFamilies() | Dihapus | Lihat panduan. | |
addTestDevice() | RequestConfiguration |
Lihat Mengaktifkan iklan percobaan. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Lihat Pemfilteran konten iklan. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Objek ResponseInfo kini tersedia melalui metode AdView getResponseInfo(). |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | RewardedAd kini menggunakan pendekatan pemuatan statis yang sama dengan format layar penuh lainnya. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | Dihapus | Callback dari metode pemuatan statis memberikan iklan yang sudah dimuat. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | Metode tampilan ini mematuhi pendekatan format layar penuh yang lebih luas. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | InterstitialAd kini menggunakan pendekatan pemuatan statis yang sama dengan format layar penuh lainnya. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Dihapus | Class NetworkExtras tidak digunakan lagi. |
AdLoader | forContentAd() | Dihapus | |
forAppInstallAd() | Dihapus | ||
withCorrelator() | Dihapus | ||
getMediationAdapter |
Dihapus |