SDK'yı Taşıma

yer tutucu2 l10n-yer

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ındaki setLocation(Location location) yöntemi.
  • Kullanıcının daha önce setLocation(Location location) yöntemine iletilen konum hedefleme bilgilerini döndüren AdRequest sınıfındaki getLocation() yöntemi.
  • AdRequest tarafından tanımlanmışsa, kullanıcının konumunu döndüren MediationAdConfiguration sınıfındaki getLocation() 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:

v20.0.0 Arayüzler v21.0.0 Sınıf/ Arayüz
ÖzelEtkinlik adaptör
ÖzelEtkinlikBanner
ÖzelEtkinlikGeçiş Reklamı
ÖzelEtkinlikYerel
ÖzelEtkinlikBannerDinleyici Bağdaştırıcı , UyumlulaştırmaAdLoadCallback
ÖzelEtkinlikGeçiş ReklamıDinleyici
ÖzelEtkinlik Dinleyici
CustomEventNativeListener

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ğu UnifiedNativeAd olarak yeniden adlandırılmıştır.
  • MobileAds.Settings , NativeExpressAdView , NativeAppInstallAd , NativeContentAd ve InstreamAd sınıfları ve görünümleri kaldırıldı.
  • Publisher ön ekine sahip tüm sınıflar, bir AdManager ö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ı veya RequestConfiguration 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ı