SDK-Migration

Auf dieser Seite werden Migrationen für aktuelle und vorherige Versionen beschrieben.

Von Version 22 zu Version 23 migrieren

Das mindestens erforderliche Android API-Level ist 21

Ab Version 23.0.0 müssen Apps mit dem Google Mobile Ads SDK mindestens auf Android API-Level 21 ausgeführt werden. Wenn Sie das API-Level anpassen möchten, ändern Sie den Wert von minSdkVersion in der Datei build.gradle auf App-Ebene auf 21 oder höher.

Verworfene Methoden entfernt/ersetzt

Version 22.0.0 der API API-Version 23.0.0
AdRequest.Builder.addTestDevice() RequestConfiguration.Builder.setTestDeviceIds()
AdRequest.Builder.tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment()
AdRequest.Builder.setIsDesignedForFamilies() RequestConfiguration.Builder.setMaxAdContentRating()
AdFormat.UNKNOWN Kein Ersatz
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()

Von Version 21 zu Version 22 migrieren

Version des Google Mobile Ads SDK mit „MobileAds.getVersion()“ abrufen

Die Methode MobileAds.getVersionString() wurde in Version 22.0.0 zugunsten von MobileAds.getVersion() entfernt.

Die neue Methode gibt die erwartete externe Versionsnummer zurück, z. B. 22.0.0. Weitere Informationen zu dieser Änderung finden Sie unter Die neue getVersion()-Methode des Google Mobile Ads SDK verwenden.

Entfernte oder ersetzte Methoden

In der folgenden Tabelle sind die spezifischen Änderungen in Version 22.0.0 aufgeführt.

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

Von Version 20 zu Version 21 migrieren

minSdkVersion auf 19 oder höher aktualisieren

Ab Version 21.0.0 müssen alle Apps über das Android API-Level 19 laufen, damit das Google Mobile Ads SDK genutzt werden kann. Wenn Sie das API-Level anpassen möchten, ändern Sie den Wert von minSdkVersion in der Build-Datei Ihrer App auf 19 oder höher.

Strikte Null-Zulässigkeit erzwingen

Als Vorbereitung auf das Erzwingen einer strikten Null-Zulässigkeit werden @NonNull-Annotationen in allen APIs hinzugefügt, für die die Null-Zulässigkeit zuvor nicht explizit definiert wurde.

Diese Änderung kann die Kotlin-Anwendungen und -Anwendungen beeinträchtigen, die Frameworks für die Nullprüfung mit Java verwenden, wenn es Null-Sicherheitsverstöße gibt und zuvor null-Werte nicht sicher verarbeitet wurden. Weitere Informationen finden Sie in der Kotlin-Dokumentation zu Null-safety.

Entfernung der Methode addNetworkExtras()

Die Methode addNetworkExtras(), mit der zusätzliche Parameter als NetworkExtras-Instanz an einen bestimmten Werbenetzwerkadapter übergeben werden, wurde in SDK-Version 20.3.0 eingestellt und in Version 21.0.0 entfernt. Verwenden Sie stattdessen die Methode addNetworkExtrasBundle() aus derselben AdRequest.Builder-Klasse.

Standortmethoden wurden entfernt

Die folgenden Ortungsmethoden werden in Version 21.0.0 entfernt:

  • Die Methode setLocation(Location location) in der Klasse AdRequest.Builder, mit der der Standort des Nutzers für das Vermittlungs-Targeting festgelegt wird.
  • Die Methode getLocation() in der Klasse AdRequest, die die Informationen zur geografischen Ausrichtung des Nutzers zurückgibt, die zuvor an die Methode setLocation(Location location) übergeben wurden.
  • Die Methode getLocation() in der Klasse MediationAdConfiguration, die den Standort des Nutzers zurückgibt, wenn dies durch AdRequest definiert ist.

Die Standortdaten werden von Google nicht zur Anzeigenausrichtung verwendet. Verwenden Sie bei Bedarf APIs von Drittanbietern, um die Informationen für Drittanbieter-Werbenetzwerke bereitzustellen.

Benutzerdefinierte Ereignisoberflächen werden eingestellt

Mit benutzerdefinierten Ereignissen können Publisher, die die AdMobVermittlung verwenden, die abfolgebasierte Vermittlung für ein Werbenetzwerk hinzufügen, das nicht zu den unterstützten Werbenetzwerken von AdMobgehört.

Alle Schnittstellen für benutzerdefinierte Ereignisse wurden zugunsten der Klasse Adapter und der MediationAdLoadCallback-Schnittstelle eingestellt.

In der folgenden Tabelle ist die entsprechende Klasse oder Schnittstelle aufgeführt, die ab Version 21.0.0 für jede benutzerdefinierte Ereignisschnittstelle verwendet werden sollte:

Benutzeroberflächen von Version 20.0.0 v21.0.0 Klasse/ Schnittstelle
CustomEvent Adapter
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener Adapter, MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

Von Version 19 zu Version 20 migrieren

In Version 20.0.0 wurden zahlreiche funktionsgefährdende Änderungen vorgenommen. Mit Version 19.7.0 wurden viele neue APIs eingeführt und zur Vorbereitung auf Version 20.0.0 wurden viele Klassen eingestellt oder umbenannt. In diesem Leitfaden werden die wichtigsten Änderungen in Version 20.0.0 vorgestellt.

Updates der Vollbild-API

Ab Version 20.0.0 sind die Formate „Interstitial“, „Interstitial mit Prämie“, „Interstitial mit Prämie“ und „App-Start-Anzeigen“ standardisiert, um einem einheitlichen API-Design zu folgen.

Alle APIs für das Vollbildformat folgen den folgenden Prinzipien:

  • Eine statische Lademethode
  • Ein ähnlicher Callback- oder Handler-Mechanismus zum Laden
  • Verwendung der Klasse FullScreenContentCallback für Präsentations-Callbacks

Entfernung der alten RewardVideoAd API

Die neue RewardedAd API wurde erstmals im März 2019 eingeführt und ist seit über 18 Monaten die bevorzugte API mit Prämie. Sie wurde im Vergleich zur alten RewardedVideoAd API weiter verbessert, darunter die Möglichkeit, mehrere Anzeigen mit Prämie gleichzeitig zu laden.

Die alte RewardedVideoAd API wurde in SDK-Version 20.0.0 entfernt.

Einstellung von Smart-Bannern zugunsten von adaptiven Bannern

Smart-Banneranzeigen werden durch adaptive Banneranzeigen ersetzt. Adaptive Banner bieten eine hervorragende Leistung und mehr Flexibilität bei der Festlegung der Anzeigenbreite. Wenn Sie weiterhin Banner in voller Breite verwenden möchten, können Sie weiterhin adaptive Banner verwenden, wie im folgenden Code-Snippet gezeigt:

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

Entfernung des Anwendungs-Callbacks verlassen

Der onAdLeftApplication-Callback für alle Anzeigenformate wurde zugunsten von ProcessLifecycleOwner entfernt. Wenn Sie eine API auf Betriebssystemebene verwenden, werden Sie immer benachrichtigt, wenn Nutzer Ihre App verlassen, unabhängig davon, ob dies auf eine Anzeigeninteraktion zurückzuführen ist.

Der Callback onAdLeftApplication war nie als Handler für Anzeigenklicks vorgesehen. Die Verwendung dieses Callbacks zum Erfassen von Klicks hat zu keinen genauen Messwerten geführt. Beispiel: Ein Klick auf das Datenschutzinfo-Symbol, mit dem ein externer Browser gestartet, aber nicht als Klick gezählt wurde, wurde der Callback aufgerufen.

Klassenumbenennungen

In der folgenden Tabelle sind bestimmte Klassennamen aufgeführt, die geändert oder entfernt wurden. Zusammenfassung:

  • Die meisten Klassen, die sich auf UnifiedNativeAd beziehen, wurden in NativeAd umbenannt.
  • Die Klassen und Ansichten MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd, NativeContentAd und InstreamAd wurden entfernt.
  • Alle Klassen mit dem Präfix Publisher wurden durch das Präfix AdManager ersetzt.
  • Der Name des InterstitialAd-Pakets hat sich geändert.
19.5.0 Klasse 20.0.0 Klasse
com.google.android.gms.ads. com.google.android.gms.ads.
reward.RewardedVideoAd rewarded.RewardedAd
reward.RewardedVideoAdListener Prämien.RewardAdLoadCallback und 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
format.NativeCustomTemplateAd.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
MobileAds.Settings Entfernt
doubleclick.PublisherAdRequest admanager.AdManagerAdRequest
doubleclick.PublisherAdView admanager.AdManagerAdView
formats.PublisherAdViewOptions formats.AdManagerAdViewOptions
doubleclick.PublisherInterstitialAd admanager.AdManagerInterstitialAd
InterstitialAd interstitial.InterstitialAd
NativeExpressAdView Entfernt
instream.InstreamAd Entfernt
mediation.admob.AdMobExtras Entfernt
Korrelator Entfernt
search.SearchAdRequest Entfernt
Schnittstelle AdRequest.TagForUnderAgeOfConsent Entfernt
Schnittstelle AdRequest.MaxAdContentRating Entfernt
formats.NativeAppInstallAd native.NativeAd
formats.NativeAppInstallAdView native.NativeAdView
mediation.NativeAppInstallAdMapper mediation.UnifiedNativeAdMapper
formats.NativeContentAd native.NativeAd
formats.NativeContentAdView native.NativeAdView
mediation.NativeContentAdMapper mediation.UnifiedNativeAdMapper

Methoden entfernt/ersetzt

In der folgenden Tabelle sind die spezifischen Änderungen in Version 20.0.0 aufgeführt. Zusammenfassung:

  • Veraltete Initialisierungsmethoden wurden aus der MobileAds-Klasse entfernt.
  • Einige Methoden aus der Klasse AdRequest.Builder() wurden entweder entfernt oder in die Klasse RequestConfiguration verschoben.
  • Die APIs für Anzeigen mit Prämie und InterstitialAd wurden aktualisiert, damit sie an alle Vollbildformate angepasst werden.
  • Korrelatorfunktionen wurden entfernt.
Klasse API-Version 19.5.0 API-Version 20.0.0 Hinweise
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds initial(Kontext, String) MobileAds.initial(Context, OnInitializationCompleteListener) Die App-ID wird nun in der AndroidManifest.xml festgelegt.
initial(Context, String, MobileAds.Settings) initial(Context, OnInitializationCompleteListener) Die Klasse „Einstellungen“ wurde eingestellt.
getRewardVideoAdInstance() Entfernt Verwenden Sie stattdessen die RewardAd API.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() Entfernt Bei Vollbild-Anzeigenformaten wird "FullscreenContentCallback" anstelle von AdListener verwendet. Für "FullscreenContentCallback" gibt es keine entsprechende Methode. Die Methode wurde aus AdListener entfernt.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() Entfernt
getBirthday() Entfernt
getNetworkExtras() Entfernt
setManuelleImpressionenAktiviert() Entfernt
updateCorrelator() Entfernt Weitere Informationen finden Sie unter Filtern von Anzeigeninhalten.
AdRequest.Builder setBirthday() Entfernt
setGender() Entfernt
setIsDesignedForFamilies() Entfernt Siehe Leitfaden.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() Siehe Testanzeigen aktivieren.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() Weitere Informationen finden Sie unter Filtern von Anzeigeninhalten.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterKlassenname() ResponseInfo.getMediationAdapterClassName() Über die AdView-Methode getResponseInfo() ist jetzt ein ResponseInfo-Objekt verfügbar.
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
RewardedAd LoadAd(AdRequest, RewardAdLoadCallback) BelohntAd.load(Context, String, AdRequest, RewardAdLoadCallback) Für Anzeigen mit Prämie wird jetzt derselbe statische Ladevorgang verwendet wie bei anderen Vollbildformaten.
LoadAd(PublisherAdRequest, RewardAdLoadCallback) RewardAd.load(Context, String, AdRequest, RewardAdLoadCallback)
isLoaded() Entfernt Der Callback der statischen Lademethode stellt eine Anzeige bereit, die bereits geladen ist.
show(Activity, RewardAdCallback) show(Activity, OnUserEarnedRewardListener) Diese Präsentationsmethode entspricht dem breiter gefassten Vollbildformat.
RewardedAdLoadCallback onRewardAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdGeladen(AppOpenAd) onAdLoaded(AppOpenAd)
RewardInterstitialAdLoadCallback onRewardInterstitialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onPrämieInterstitialAdLoaded(PrämierInterstitialAd) onAdLoaded(RewardedInterstitialAd)
InterstitialAd neu InterstitialAd() InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) Für InterstitialAd wird jetzt derselbe statische Ladevorgang verwendet wie bei anderen Vollbildformaten.
setAdListener()
DynamicHeightSearchAdAnfrage getNetworkExtras() Entfernt Die Klasse „NetworkExtras“ wurde eingestellt.
AdLoader forContentAd() Entfernt
forAppInstallAd() Entfernt
withCorrelator() Entfernt
getMediationAdapterKlassenname() Entfernt