Bu sayfa, mevcut ve önceki sürümler için geçişleri kapsar.
SDK v21'e geçiş yapın
Google Mobile Ads SDK'sının 21.0.0 sürümüyle (2022 başlarında piyasaya sürülmesi planlanıyor) olası derleme hatalarını önlemek için bu kılavuzda sunulan kontrolleri ve yönergeleri izleyin.
minSdkVersion'ı 19 veya daha yüksek bir sürüme güncelleyin
21.0.0 sürümünden itibaren, Google Mobile Ads SDK'sı, tüm uygulamaların çalışması için minimum Android API düzeyi 19'da olmasını gerektirir. API düzeyini ayarlamak için uygulamanızın derleme dosyasındaki minSdkVersion
değerini 19 veya daha yüksek olarak değiştirin.
Kesin geçersizliği zorunlu kıl
Kesin geçersizliği zorunlu kılmaya hazırlık olarak, daha önce açıkça geçersizliği tanımlamayan tüm API'lere @NonNull
ek açıklamaları eklenir.
Bu değişiklik, boş güvenlik ihlalleri varsa ve daha önce null
değerleri güvenli bir şekilde işlememişse, Java boş denetim çerçevelerini kullanan Kotlin uygulamalarını ve uygulamalarını bozabilir (bkz . Null-safety ile ilgili Kotlin belgeleri ).
addNetworkExtras() yönteminin kaldırılması
Ek parametreleri NetworkExtras
örneği olarak belirli bir reklam ağı bağdaştırıcısına addNetworkExtras()
yöntemi, SDK 20.3.0 sürümünde kullanımdan kaldırılmıştır ve 21.0.0 sürümünde kaldırılacaktır. Bunun yerine aynı AdRequest.Builder
sınıfından addNetworkExtrasBundle()
yöntemini kullanın.
Konum yöntemlerinin kaldırılması
Aşağıdaki konum yöntemleri 21.0.0 sürümünde kaldırılacaktır:
- Uyumlulaştırma hedefleme amaçları için kullanıcının konumunu ayarlayan
AdRequest.Builder
sınıfındakisetLocation(Location location)
yöntemi. - Kullanıcının daha önce
setLocation(Location location)
yöntemine iletilen konum hedefleme bilgilerini döndürenAdRequest
sınıfındakigetLocation()
yöntemi. -
AdRequest
tarafından tanımlanmışsa, kullanıcının konumunu döndürenMediationAdConfiguration
sınıfındakigetLocation()
yöntemi.
Konum verileri, reklamları hedeflemek için Google tarafından kullanılmaz. Gerekirse üçüncü taraf reklam ağlarına bilgi sağlamak için üçüncü taraf API'lerini kullanmalısınız.
Özel etkinlik arayüzlerinin kullanımdan kaldırılması
Özel olaylar, AdMobuyumlulaştırmasını kullanan yayıncıların,AdMobdesteklenen reklam ağlarından biri olmayan bir reklam ağı için şelale uyumlulaştırması eklemesine olanak tanır.
Tüm özel olay arabirimleri, Adapter
sınıfı ve MediationAdLoadCallback
arabirimi lehine kullanımdan kaldırılmıştır.
Aşağıdaki tablo, 21.0.0 sürümünden başlayarak her özel olay arabirimi için kullanılması gereken ilgili sınıfı veya arabirimi listeler:
SDK v20'ye geçiş yapın
20.0.0 sürümünde gelen birçok kırılma değişikliği var. Sürüm 19.7.0, birçok yeni API'yi tanıttı ve 20.0.0 sürümüne hazırlanırken birçok sınıfı kullanımdan kaldırdı veya yeniden adlandırdı. Bu kılavuz, 19.7.0 sürümünde getirilen büyük değişikliklerin yanı sıra 20.0.0 sürümünde (2021 başları) gelecekleri vurgulamaktadır.
Tam ekran biçimi API güncellemeleri
20.0.0 sürümünden itibaren, geçiş reklamı, ödüllü, ödüllü geçiş reklamı ve Uygulama Açma reklam biçimleri, tutarlı bir API tasarımı izleyecek şekilde standartlaştırıldı.
Tüm tam ekran biçimli API'ler aşağıdaki ilkeleri kullanır:
- Statik bir yükleme yöntemi
- Benzer bir yük geri çağırma veya işleyici mekanizması
- Sunum geri aramaları için
FullScreenContentCallback
sınıfına güven
Eski ÖdüllüVideoAd API kaldırma
Daha yeni RewardedAd
API, ilk olarak Mart 2019'da tanıtıldı ve 18 aydan uzun süredir tercih edilen ödüllü API oldu. Eski RewardedVideoAd
API'sine kıyasla, aynı anda birden fazla ödüllü reklam yükleme yeteneği de dahil olmak üzere daha fazla iyileştirmeye sahiptir.
Eski RewardedVideoAd
API, SDK 20.0.0 sürümünde kaldırılmıştır.
Uyarlanabilir banner lehine akıllı banner'ın kullanımdan kaldırılması
Akıllı banner reklamlar, uyarlanabilir banner reklamlar yerine kullanımdan kaldırılmıştır. Uyarlanabilir banner'lar, reklam genişliğinin ayarlanmasında üstün performans ve daha fazla esneklik sağlar. Tam genişlikte banner'ları kullanmaya devam etmeyi tercih ederseniz, bu, aşağıdaki kod parçacığında gösterildiği gibi, uyarlamalı banner kullanılarak yine de yapılabilir:
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) } }
Uygulama geri arama kaldırma işlemini bırakın
Tüm reklam biçimleri için onAdLeftApplication
geri çağrısı, ProcessLifecycleOwner
lehine kaldırılmıştır. İşletim sistemi düzeyinde bir API kullanmak, bir reklam etkileşiminden kaynaklanıp kaynaklanmadığına bakılmaksızın, kullanıcılar uygulamanızdan her ayrıldığında sizi bilgilendirir.
onAdLeftApplication
geri çağrısının hiçbir zaman bir reklam tıklama işleyicisi olarak tasarlanmadığını ve tıklamaları raporlamak için bu geri çağrıya güvenmenin doğru bir ölçüm sağlamadığını unutmayın. Örneğin, harici bir tarayıcıyı başlatan AdChoices simgesine tıklama, geri aramayı başlattı ancak tıklama olarak sayılmadı.
Sınıf yeniden adlandırma
Aşağıdaki tablo, değiştirilen veya kaldırılan belirli sınıf adlarını listeler. Özetle:
-
NativeAd
ile ilgili sınıfların çoğuUnifiedNativeAd
olarak yeniden adlandırılmıştır. -
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
veInstreamAd
sınıfları ve görünümleri kaldırıldı. -
Publisher
ön ekine sahip tüm sınıflar, birAdManager
ön ekiyle değiştirilmiştir. -
InterstitialAd
paketi adı değişti.
19.5.0 Sınıf | 20.0.0 Sınıf |
---|---|
com.google.android.gms.ads. | com.google.android.gms.ads. |
ödül.ÖdüllüVideoReklam | ödüllü.ÖdüllüReklam |
ödül.ÖdüllüVideoAdListener | ödüllü.RewardedAdLoadCallback ve FullScreenContentCallback |
ödül.Ödül Öğesi | ödüllendirildi.Ödül Öğesi |
ödüllü.ÖdüllüReklamGeri Arama | OnUserEarnedÖdülDinleyici |
formats.UnifiedNativeAdView | nativead.NativeAdView |
formats.UnifiedNativeReklam | nativead.NativeAd |
formats.UnifiedNativeAdAssetNames | nativead.NativeAdAssetNames |
formats.UnifiedNativeAd.OnUnifiedNativeAdLoadedListener | nativead.NativeAd.OnNativeAdLoadedListener |
formats.AdChoicesView | nativead.AdChoicesView |
formats.YerelReklam.Reklam SeçenekleriBilgi | nativead.NativeAd.AdChoicesInfo |
formatlar.MediaView | nativead.MediaView |
formats.NativeAdViewHolder | nativead.NativeAdViewHolder |
formats.NativeAdOptions | nativead.NativeAdOptions |
formats.NativeCustomTemplateReklam | nativead.NativeCustomFormatAd |
formats.NativeCustomTemplateAd .OnCustomTemplateAdLoadedListener | nativead.NativeCustomFormatAd .OnCustomFormatAdLoadedListener |
Mobil Reklamlar.Ayarlar | Kaldırıldı |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
formats.PublisherAdViewOptions | formats.AdManagerAdViewOptions |
doubleclick.PublisherGeçiş reklamı | admanager.AdManagerGeçiş Reklamı |
Geçiş Reklamı | geçiş reklamı.Geçiş reklamı |
YerelExpressReklam Görünümü | Kaldırıldı |
yayın içi.Yayın içiReklam | Kaldırıldı |
mediation.admob.AdMobEkstralar | Kaldırıldı |
korelatör | Kaldırıldı |
arama.AraReklamTalebi | Kaldırıldı |
Arayüz AdRequest.TagForUnderAgeOfConsent | Kaldırıldı |
Arayüz AdRequest.MaxAdContentRating | Kaldırıldı |
formats.NativeAppInstallReklam | native.NativeReklam |
formats.NativeAppInstallAdView | native.NativeAdView |
mediation.NativeAppInstallAdMapper | mediation.UnifiedNativeAdMapper |
formatlar.YerelİçerikReklam | native.NativeReklam |
formats.NativeContentReklam Görünümü | native.NativeAdView |
mediation.NativeContentAdMapper | mediation.UnifiedNativeAdMapper |
Kaldırılan/değiştirilen yöntemler
Aşağıdaki tablo, 20.0.0 sürümündeki belirli değişiklikleri listeler. Özetle:
- Güncel olmayan başlatma yöntemleri MobileAds sınıfından kaldırıldı.
-
AdRequest.Builder()
sınıfındaki bazı yöntemler kaldırıldı veyaRequestConfiguration
sınıfına taşındı. - RewardedAd ve InterstitialAd API'leri, tüm tam ekran biçimleriyle uyumlu olacak şekilde güncellendi.
- Korelatör özellikleri kaldırıldı.
Sınıf | v19.5.0 API'si | v20.0.0 API'sı | notlar |
---|---|---|---|
Reklam Boyutu | getPortraitBanner AdSizeWithWidth() | getPortraitAnchored AdaptiveBannerAdSize() | |
getLandscapeBanner AdSizeWithWidth() | getLandscapeAnchored AdaptiveBannerAdSize() | ||
getCurrentOrientation BannerAdSizeWithWidth() | getCurrentOrientationAnchored AdaptiveBannerAdSize() | ||
Mobil Reklamlar | başlat (Bağlam, Dize) | MobileAds.initialize(Context, OnInitializationComplete Listener) | Uygulama kimliği artık AndroidManifest.xml'de ayarlanmıştır. |
initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete Listener) | Ayarlar sınıfı kullanımdan kaldırıldı. | |
getRewardedVideo Reklam Örneği() | Kaldırıldı | Bunun yerine RewardedAd API'sini kullanın. | |
Reklam Dinleyici | onAdFailedToLoad(int) | onAd FailedToLoad(LoadAdError) | |
onAdLeftApplication() | Kaldırıldı | Tam ekran reklam biçimleri, AdListener yerine FullscreenContentCallback kullanır ve FullscreenContentCallback'te eşdeğer bir yöntem yoktur. Yöntem, AdListener'dan kaldırıldı. | |
VideoDenetleyici | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Kaldırıldı | |
getDoğum günü() | Kaldırıldı | ||
getNetworkExtras() | Kaldırıldı | ||
setManualImpressions Etkin() | Kaldırıldı | ||
güncellemeKorelatör() | Kaldırıldı | Bkz. Reklam içeriği filtreleme . | |
AdRequesttutucu12 .Builder | setDoğum günü() | Kaldırıldı | |
setGender() | Kaldırıldı | ||
setIsDesignedForFamilies() | Kaldırıldı | kılavuza bakın. | |
addTestDevice() | RequestConfiguration .Builder .setTestDeviceIds() | Test reklamlarını etkinleştirme konusuna bakın. | |
tagForChildDirectedTreatment() | RequestConfiguration .Builder.setTagFor ChildDirectedTreatment() | Bkz. Reklam içeriği filtreleme . | |
setTagFor UnderAgeOfConsent() | RequestConfiguration .Builder.setTagFor UnderAgeOfConsent() | ||
setMaxAdContentRating() | RequestConfiguration .Builder .setMaxAdContentRating() | ||
Reklam Görünümü | getMediationAdapter SınıfAdı() | ResponseInfo .getMediationAdapter ClassName() | Bir ResponseInfo nesnesi artık AdView yöntemi getResponseInfo() aracılığıyla kullanılabilir. |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
Ödüllü Reklam | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Bağlam, Dize, AdRequest, RewardedAdLoadCallback) | RewardedAd artık diğer tam ekran biçimleriyle aynı statik yükleme yaklaşımını kullanıyor. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Bağlam, Dize, AdManagerAdRequest, RewardedAdLoadCallback) | ||
yüklendi() | Kaldırıldı | Statik yükleme yönteminden yapılan geri arama, önceden yüklenmiş bir reklam sağlar. | |
show(Etkinlik, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | Bu gösteri yöntemi, daha geniş tam ekran formatı yaklaşımına bağlıdır. | |
ÖdüllüReklamYüklemesi | onRewardedAdLoadToFailed(int) | onAd FailedToLoad(LoadAdError) | |
onRewardedAdLoadToFailed(LoadAdError) | onAd FailedToLoad(LoadAdError) | ||
onRewardedAdLoaded() | onAdLoaded(ÖdüllüReklam) | ||
AppOpenAdLoadCallback | onAppOpenAd FailedToLoad(int) | onAd FailedToLoad(LoadAdError) | |
onAppOpenAd FailedToLoad(LoadAdError) | onAd FailedToLoad(LoadAdError) | ||
onAppOpenAd Yüklendi(AppOpenAd) | onAdLoaded(AppOpenAd) | ||
ÖdüllüGeçiş ReklamıReklam Yükü Geri Araması | onRewardedInterstitialReklam Yüklenemedi(int) | onAd FailedToLoad(LoadAdError) | |
onRewardedInterstitialReklam Yüklenemedi(LoadAdError) | onAd FailedToLoad(LoadAdError) | ||
onRewardedGeçiş Reklamı Yüklendi(ÖdüllüGeçiş Reklamı) | Reklam Yüklendi(ÖdüllüGeçiş Reklamı) | ||
InterstitialAd | yeni InterstitialAd() | InterstitialAd.load(Bağlam, Dize, AdRequest, InterstitialAdLoadCallback) | InterstitialAd artık diğer tam ekran biçimleriyle aynı statik yükleme yaklaşımını kullanıyor. |
setAdListener() | |||
DynamicHeightSearchReklam İsteği | getNetworkExtras() | Kaldırıldı | NetworkExtras sınıfı kullanımdan kaldırıldı. |
Reklam Yükleyici | forContentAd() | Kaldırıldı | |
forAppInstallAd() | Kaldırıldı | ||
Korelatör ile() | Kaldırıldı | ||
getMediationAdapter SınıfAdı() | Kaldırıldı |