SDK Taşıma

Bu sayfada, mevcut ve önceki sürümler için yapılan taşımalar ele alınmaktadır.

v23'ten v24'e taşıma

Aşağıdaki alt bölümlerde, Google Mobile Ads SDK'sının 23. ve 24. ana sürümleri arasındaki davranış farklılıkları ve uyumluluğu bozan değişiklikler açıklanmaktadır.

Minimum Android API düzeyi 23 olmalıdır.

Google Mobile Ads SDK'sı, 24.0.0 sürümünden itibaren tüm uygulamaların çalışması için minimum Android API düzeyi 23'ü gerektirir. API düzeyini ayarlamak için uygulama düzeyindeki build.gradle dosyanızda minSdk değerini 23 veya daha yüksek bir değere değiştirin.

Optimize edilmiş başlatma ve yükleme ile ilgili değişiklikler

Varsayılan olarak, OPTIMIZE_INITIALIZATION ve OPTIMIZE_AD_LOADING işaretleri true olarak ayarlanır. Bu işaretler hakkında daha fazla bilgi için Başlatma ve yükleme işlemlerini optimize etme başlıklı makaleyi inceleyin.

firebase-ads ve firebase-ads-lite bağımlılıkları kaldırıldı

SDK sürümleri, 24.0.0 sürümünden itibaren firebase-ads ve firebase-ads-lite bağımlılıklarını dağıtmaz. Bunun yerine play-services-ads bağımlılığını kullanın.

Uygulama açılış reklamları için kullanımdan kaldırılan yönlendirme API'leri kaldırıldı.

  • Yön girişi parametresini kabul eden AppOpenAd.load() yöntemleri kaldırıldı. Bunun yerine yön almayan AppOpenAd.load() yöntemlerini kullanın.
  • AppOpenAdOrientation enum'u kaldırıldı.

Uyumlulaştırma bağdaştırıcıları için basitleştirilmiş ödül geri çağırma

24.0.0 sürümünde onUserEarnedReward() geri çağırma işlevi MediationRewardedAdCallback içine ekleniyor ve onUserEarnedReward(RewardItem) kullanımdan kaldırılıyor. Kullanıcı ödül kazandığında arabuluculuk bağdaştırıcıları onUserEarnedReward() işlevini çağırmaya başlamalıdır.

Aracılık bağdaştırıcılarından geri çağırmalar yönlendirilirken tüm Google Mobile Ads SDK sürümleri, AdMob kullanıcı arayüzünde OnUserEarnedRewardListener içinde tanımlanan ödülü döndürür.

Sınıflar kaldırıldı

Aşağıdaki sınıflar, yerine başka sınıf eklenmeden kaldırıldı:

  • DynamicHeightSearchAdRequest
  • SearchAdRequest
  • SearchAdView

Yöntemler kaldırıldı

Aşağıdaki yöntemler yerine başka bir yöntem eklenmeden kaldırıldı:

Sınıf Yöntem
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdLoaded()
onRewardedInterstitialAdFailedToLoad(int)
onRewardedInterstitialAdFailedToLoad(LoadAdError)

Kullanımdan kaldırılan yöntemler

Aşağıdaki yöntemler, yerine başka bir yöntem sunulmadan kullanımdan kaldırıldı:

Sınıf Yöntem
Uyarlayıcı loadInterscrollerAd()
RtbAdapter loadRtbInterscrollerAd()

v22'den v23'e taşıma

Aşağıdaki alt bölümlerde, Google Mobile Ads SDK'sının 22. ve 23. ana sürümleri arasındaki davranış farklılıkları ve uyumluluğu bozan değişiklikler açıklanmaktadır.

Minimum Android API düzeyi 21 olmalıdır.

Google Mobile Ads SDK'sı, 23.0.0 sürümünden itibaren tüm uygulamaların çalışması için minimum Android API düzeyi 21 olmasını gerektirir. API düzeyini ayarlamak için uygulama düzeyindeki build.gradle dosyanızda minSdkVersion değerini 21 veya daha yüksek bir değere değiştirin.

Kullanımdan kaldırılan/değiştirilen yöntemler

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 Değiştirme yok
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()

v21'den v22'ye geçiş

Aşağıdaki alt bölümlerde, Google Mobile Ads SDK'sının 21. ve 22. ana sürümleri arasındaki davranış farklılıkları ve uyumluluğu bozan değişiklikler açıklanmaktadır.

Google Mobile Ads SDK sürümünü almak için MobileAds.getVersion() yöntemini kullanın.

MobileAds.getVersionString() yöntemi, MobileAds.getVersion() lehine 22.0.0 sürümünde kaldırıldı.

Yeni yöntem, beklenen harici sürüm numarasını (örneğin, 22.0.0) döndürür. Bu değişiklik hakkında daha fazla bilgi için Yeni Google Mobile Ads SDK'sı getVersion() yöntemini kullanma başlıklı makaleyi inceleyin.

Kaldırılan veya değiştirilen yöntemler

Aşağıdaki tabloda 22.0.0 sürümündeki değişiklikler listelenmiştir:

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 Adapter
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

v20'den v21'e taşıma

Aşağıdaki alt bölümlerde, Google Mobile Ads SDK'sının 20. ve 21. ana sürümleri arasındaki davranış farklılıkları ve uyumluluğu bozan değişiklikler açıklanmaktadır:

minSdkVersion'ı 19 veya sonraki bir sürüme güncelleyin

Google Mobile Ads SDK'sının 21.0.0 sürümünden itibaren, çalışması için tüm uygulamaların minimum Android API düzeyi 19'da olması gerekir. API düzeyini ayarlamak için uygulamanızın derleme dosyasındaki minSdkVersion değerini 19 veya daha yüksek bir değerle değiştirin.

Kesin boş değer kabul etmeme özelliğini zorunlu kılma

Kesin boş değer kabul edilebilirliğinin zorunlu kılınmasına hazırlık olarak, daha önce boş değer kabul edilebilirliği açıkça tanımlanmamış olan tüm API'lere @NonNull ek açıklamaları eklendi.

Bu değişiklik, boş güvenlik ihlalleri varsa ve daha önce null değerleri güvenli bir şekilde işlenmediyse Kotlin uygulamalarını ve Java boşluk kontrolü çerçevelerini kullanan uygulamaları bozabilir (Boş güvenlik ile ilgili Kotlin belgelerine bakın).

addNetworkExtras() yönteminin kaldırılması

Ek parametreleri belirli bir reklam ağı bağdaştırıcısına addNetworkExtras() örneği olarak ileten NetworkExtras yöntemi, SDK'nın 20.3.0 sürümünde kullanımdan kaldırıldı ve 21.0.0 sürümünde kaldırılacak. Bunun yerine aynı AdRequest.Builder sınıfındaki 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ılacak:

  • Uyumlulaştırma hedefleme amacıyla kullanıcının konumunu ayarlayan AdRequest.Builder sınıfındaki setLocation(Location location) yöntemi.
  • getLocation() sınıfındaki AdRequest yöntemi, kullanıcının daha önce setLocation(Location location) yöntemine iletilen konum hedefleme bilgilerini döndürür.
  • AdRequest tarafından tanımlanmışsa kullanıcının konumunu döndüren MediationAdConfiguration sınıfındaki getLocation() yöntemi.

Konum verileri, Google tarafından reklam hedeflemek için kullanılmaz. Gerekirse üçüncü taraf reklam ağlarına bilgi sağlamak için üçüncü taraf API'lerini kullanmanız gerekir.

Özel etkinlik arayüzlerinin desteği sonlandırılıyor

Özel etkinlikler, AdMob uyumlulaştırmasını kullanan yayıncıların AdMob desteklenen reklam kaynaklarından biri olmayan bir şelale reklam kaynağı oluşturmasına olanak tanır.

Tüm özel etkinlik arayüzleri, Adapter sınıfı ve MediationAdLoadCallback arayüzü lehine kullanımdan kaldırıldı.

Aşağıdaki tabloda, 21.0.0 sürümünden itibaren her özel etkinlik arayüzü için kullanmanız gereken ilgili sınıf veya arayüz listelenmiştir:

v20.0.0 Arabirimleri v21.0.0 Sınıfı/ Arayüzü
CustomEvent Adapter
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener Adapter, MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

v19'dan v20'ye taşıma

20.0.0 sürümünde birçok zarar veren değişiklik var. 19.7.0 sürümünde birçok yeni API kullanıma sunuldu ve 20.0.0 sürümüne hazırlık olarak birçok sınıf kullanımdan kaldırıldı veya yeniden adlandırıldı. Bu kılavuzda, 20.0.0 sürümündeki önemli değişiklikler vurgulanmaktadır.

Tam ekran biçimi API güncellemeleri

20.0.0 sürümünden itibaren geçiş reklamı, ödüllü reklam, ödüllü geçiş reklamı ve uygulama açılışı reklam biçimleri, tutarlı bir API tasarımına uygun olacak şekilde standartlaştırılmıştır.

Tüm tam ekran biçimi API'leri aşağıdaki ilkeleri kullanır:

  • Statik yükleme yöntemi
  • Benzer bir yükleme geri çağırması veya işleyici mekanizması
  • Sunum geri çağırmaları için FullScreenContentCallback sınıfına güvenme

Eski RewardedVideoAd API'sinin kaldırılması

Daha yeni olan RewardedAd API ilk olarak Mart 2019'da kullanıma sunulmuş ve 18 aydan uzun süredir tercih edilen ödüllü API olmuştur. Aynı anda birden fazla ödüllü reklam yükleme özelliği de dahil olmak üzere eski RewardedVideoAd API'ye kıyasla daha fazla geliştirme yapılmıştır.

Eski RewardedVideoAd API'si, SDK'nın 20.0.0 sürümünde kaldırıldı.

Akıllı banner'ın uyarlanabilir banner lehine desteğinin sonlandırılması

Akıllı banner reklamlar, uyarlanabilir banner reklamlar lehine kullanımdan kaldırıldı. Uyarlanabilir banner'lar, reklam genişliğini ayarlamada üstün performans ve daha fazla esneklik sağlar. Tam genişlikteki banner'ları kullanmaya devam etmek isterseniz aşağıdaki kod snippet'inde gösterildiği gibi uyarlanabilir banner'ı kullanabilirsiniz:

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 isteğini bırakma

ProcessLifecycleOwner lehine tüm reklam biçimleri için onAdLeftApplication geri çağırma kaldırıldı. İşletim sistemi düzeyinde bir API kullanmak, reklam etkileşiminden kaynaklanıp kaynaklanmadığına bakılmaksızın kullanıcılar uygulamanızdan ayrıldığında sizi bilgilendirir.

onAdLeftApplication geri çağırma işlevinin hiçbir zaman reklam tıklaması işleyicisi olarak tasarlanmadığını ve tıklamaları bildirmek için bu geri çağırma işlevinin kullanılmasının doğru bir metrik oluşturmadığını unutmayın. Örneğin, harici bir tarayıcıyı başlatan Reklam Seçenekleri simgesinin tıklanması geri çağırmayı tetikledi ancak tıklama olarak sayılmadı.

Sınıf yeniden adlandırmaları

Aşağıdaki tabloda, değiştirilen veya kaldırılan belirli sınıf adları listelenmiştir:

  • UnifiedNativeAd ile ilgili çoğu sınıfın adı NativeAd olarak değiştirildi.
  • MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd, NativeContentAd ve InstreamAd sınıfları ve görünümleri kaldırıldı.
  • Publisher önekine sahip tüm sınıflar AdManager önekiyle değiştirildi.
  • InterstitialAd paket adı değişti.
19.5.0 Class 20.0.0 Sınıfı
com.google.android.gms.ads. com.google.android.gms.ads.
reward.RewardedVideoAd rewarded.RewardedAd
reward.RewardedVideoAdListener rewarded.RewardedAdLoadCallback ve 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.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
MobileAds.Settings Kaldırıldı
doubleclick.PublisherAdRequest admanager.AdManagerAdRequest
doubleclick.PublisherAdView admanager.AdManagerAdView
formats.PublisherAdViewOptions formats.AdManagerAdViewOptions
doubleclick.PublisherInterstitialAd admanager.AdManagerInterstitialAd
InterstitialAd interstitial.InterstitialAd
NativeExpressAdView Kaldırıldı
instream.InstreamAd Kaldırıldı
mediation.admob.AdMobExtras Kaldırıldı
İlişkilendirici Kaldırıldı
search.SearchAdRequest Kaldırıldı
Interface AdRequest.TagForUnderAgeOfConsent Kaldırıldı
Interface AdRequest.MaxAdContentRating Kaldırıldı
formats.NativeAppInstallAd native.NativeAd
formats.NativeAppInstallAdView native.NativeAdView
mediation.NativeAppInstallAdMapper mediation.UnifiedNativeAdMapper
formats.NativeContentAd native.NativeAd
formats.NativeContentAdView native.NativeAdView
mediation.NativeContentAdMapper mediation.UnifiedNativeAdMapper

Kaldırılan/değiştirilen yöntemler

Aşağıdaki tabloda 20.0.0 sürümündeki belirli değişiklikler listelenmiştir:

  • Eski 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.
  • Korelasyon özellikleri kaldırıldı.
Sınıf v19.5.0 API v20.0.0 API Notlar
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds initialize(Context, String) MobileAds.initialize(Context, OnInitializationCompleteListener) Uygulama kimliği artık AndroidManifest.xml dosyasında ayarlanmıştır.
initialize(Context, String, MobileAds.Settings) initialize(Context, OnInitializationCompleteListener) Ayarlar sınıfı kullanımdan kaldırıldı.
getRewardedVideoAdInstance() Kaldırıldı Bunun yerine RewardedAd API'yi kullanın.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(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ı.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() Kaldırıldı
getBirthday() Kaldırıldı
getNetworkExtras() Kaldırıldı
setManualImpressionsEnabled() Kaldırıldı
updateCorrelator() Kaldırıldı Reklam içeriğini filtreleme başlıklı makaleyi inceleyin.
AdRequest.Builder setBirthday() Kaldırıldı
setGender() Kaldırıldı
setIsDesignedForFamilies() Kaldırıldı Kılavuza bakın.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() Test reklamlarını etkinleştirme başlıklı makaleyi inceleyin.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() Reklam içeriğini filtreleme başlıklı makaleyi inceleyin.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() ResponseInfo nesnesi, AdView yöntemi kullanılarak kullanılabilir, getResponseInfo().
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
RewardedAd loadAd(AdRequest, RewardedAdLoadCallback) RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) Ödüllü reklam artık diğer tam ekran biçimleriyle aynı statik yükleme yaklaşımını kullanıyor.
loadAd(PublisherAdRequest, RewardedAdLoadCallback) RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback)
isLoaded() Kaldırıldı Statik yükleme yönteminden gelen geri çağırma, zaten yüklenmiş bir reklam sağlar.
show(Activity, RewardedAdCallback) show(Activity, OnUserEarnedRewardListener) Bu gösterme yöntemi, daha geniş olan tam ekran biçimi yaklaşımına uygundur.
RewardedAdLoadCallback onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdLoaded(RewardedInterstitialAd) onAdLoaded(RewardedInterstitialAd)
InterstitialAd new InterstitialAd() InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) InterstitialAd artık diğer tam ekran biçimleriyle aynı statik yükleme yaklaşımını kullanıyor.
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() Kaldırıldı NetworkExtras sınıfının desteği sonlandırıldı.
AdLoader forContentAd() Kaldırıldı
forAppInstallAd() Kaldırıldı
withCorrelator() Kaldırıldı
getMediationAdapterClassName() Kaldırıldı