SDK-Migration

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

Von v22 zu v23 migrieren

Das Mindest-API-Level für Android ist 21

Ab Version 23.0.0 muss das Google Mobile Ads SDK für alle Apps Android API-Level 21 oder höher haben, damit sie ausgeführt werden können. Wenn Sie die API-Ebene anpassen möchten, ändern Sie den Wert von minSdkVersion in der Datei build.gradle auf App-Ebene auf 21 oder höher.

Eingestellte Methoden entfernt/ersetzt

API-Version 22.0.0 API v23.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 v21 zu v22 migrieren

Google Mobile Ads SDK-Version mit MobileAds.getVersion() abrufen

Die Methode MobileAds.getVersionString() wird 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 Neue getVersion()-Methode des Google Mobile Ads SDK verwenden.

Entfernte oder ersetzte Methoden

Die folgende Tabelle enthält die spezifischen Änderungen in Version 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 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 muss das Google Mobile Ads SDK für alle Apps Android API-Level 19 oder höher haben, damit sie ausgeführt werden können. 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.

Strenge Nullbarkeit erzwingen

Als Vorbereitung auf die strikte Null-Zulässigkeit werden @NonNull-Annotationen in allen APIs hinzugefügt, in denen die Null-Zulässigkeit zuvor nicht explizit definiert wurde.

Diese Änderung kann die Kotlin-Apps und -Apps, die Java-Frameworks für die Nullprüfung verwenden, nicht mehr nutzen, wenn keine Sicherheitsverstöße vorliegen und null-Werte zuvor nicht sicher verarbeitet wurden. Weitere Informationen finden Sie in der Kotlin-Dokumentation zur Nullsicherheit.

Entfernung der Methode "addNetworkExtras()"

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

Entfernung von Standortmethoden

Die folgenden Standortmethoden 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 die Ausrichtung der Vermittlung festgelegt wird.
  • Die Methode getLocation() in der Klasse AdRequest, 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, sofern von der AdRequest definiert.

Die Standortdaten werden von Google nicht für das Targeting von Anzeigen verwendet. Verwenden Sie APIs von Drittanbietern, um die Informationen gegebenenfalls an Drittanbieter-Werbenetzwerke zur Verfügung zu stellen.

Einstellung der Benutzeroberflächen für benutzerdefinierte Ereignisse

Mit benutzerdefinierten Ereignissen können Publisher, die dieAdMob Mediation nutzen, eine abfolgebasierte Anzeigenquelle einrichten, die nicht zu den unterstützten Anzeigenquellen von AdMobgehört.

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

In der folgenden Tabelle sind die entsprechenden Klassen oder Schnittstellen aufgeführt, die ab Version 21.0.0 für jede Schnittstelle für benutzerdefinierte Ereignisse verwendet werden sollten:

Schnittstellen der Version 20.0.0 v21.0.0 – Klasse/Benutzeroberfläche
CustomEvent Adapter
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener Adapter, MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

Von Version 19 zu Version 20 migrieren

Version 20.0.0 enthält viele Änderungen, die die Kompatibilität beeinträchtigen. In Version 19.7.0 wurden viele neue APIs eingeführt und viele Klassen wurden in Vorbereitung auf Version 20.0.0 eingestellt oder umbenannt. In diesem Leitfaden werden die wichtigsten Änderungen in Version 20.0.0 hervorgehoben.

API-Aktualisierungen für Vollbildformat

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

Alle Vollbild-APIs basieren auf den folgenden Prinzipien:

  • Statische Lademethode
  • Einen ähnlichen Lade-Callback oder einen ähnlichen Handler-Mechanismus
  • Bei Präsentations-Callbacks auf die Klasse FullScreenContentCallback zurückgreifen

Einstellung der Legacy RewardedVideoAd API

Die neue RewardedAd API wurde im März 2019 eingeführt und ist seit über 18 Monaten die bevorzugte API mit Prämie. Im Vergleich zur alten RewardedVideoAd API wurden mehr Verbesserungen vorgenommen. Unter anderem kann jetzt mehr als eine Anzeige mit Prämie gleichzeitig geladen werden.

Die alte RewardedVideoAd API wird in der SDK-Version 20.0.0 entfernt.

Einstellung von Smart-Bannern durch adaptive Banner

Smart-Banneranzeigen werden eingestellt und durch adaptive Banneranzeigen ersetzt. Adaptive Banner bieten eine bessere Leistung und mehr Flexibilität bei der Einstellung der Anzeigenbreite. Wenn Sie weiterhin Banner in voller Breite verwenden möchten, ist das auch mit adaptiven Bannern möglich, 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 Rückrufs für die Anwendung

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

Der onAdLeftApplication-Callback war nie als Handler für Anzeigenklicks gedacht. Wenn Sie diesen Callback zum Melden von Klicks verwendet haben, war der Messwert nicht korrekt. Beispiel: Ein Klick auf das Datenschutzinfo-Symbol, durch den ein externer Browser gestartet wird, hat den Callback aufgerufen, zählt aber nicht als Klick.

Umbenannte Kurse

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

  • Die meisten mit UnifiedNativeAd verwandten Kurse 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 Paketname von InterstitialAd 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 Rewards.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
formats.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

Entfernte/ersetzte Methoden

Die folgende Tabelle enthält die spezifischen Änderungen in Version 20.0.0. 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 „RewardAd“ und „InterstitialAd“ wurden aktualisiert, damit sie mit allen Vollbildformaten übereinstimmen.
  • Korrelatorfunktionen wurden entfernt.
Klasse Version 19.5.0 der API API-Version 20.0.0 Hinweise
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds initial(Kontext, String) MobileAds.initial(Context, OnInitializationCompleteListener) Die App-ID ist jetzt in der Datei „AndroidManifest.xml“ festgelegt.
initialize(Context, String, MobileAds.Settings) initialize(Context, OnInitializationCompleteListener) Die Klasse „Settings“ wurde eingestellt.
getRewardedVideoAdInstance() Entfernt Verwenden Sie stattdessen die RewardAd API.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() Entfernt Vollbild-Anzeigenformate verwenden FullscreenContentCallback anstelle von AdListener. Es gibt keine entsprechende Methode für FullscreenContentCallback. Die Methode wurde aus AdListener entfernt.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() Entfernt
getBirthday() Entfernt
getNetworkExtras() Entfernt
setManualImpressionsEnabled() Entfernt
updateCorrelator() Entfernt Weitere Informationen finden Sie unter Filterung von Anzeigeninhalten.
AdRequest.Builder setBirthday() Entfernt
setGender() Entfernt
setIsDesignedForFamilies() Entfernt Weitere Informationen findest du im Leitfaden.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() Siehe Testanzeigen aktivieren.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() Weitere Informationen finden Sie unter Filterung von Anzeigeninhalten.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() Über die AdView-Methode getResponseInfo() ist jetzt ein ResponseInfo-Objekt verfügbar.
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
Bonusanzeige loadAd(AdRequest, RewardAdLoadCallback) RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) Für Anzeigen mit Prämie wird jetzt derselbe statische Ladeansatz wie bei anderen Vollbildformaten verwendet.
loadAd(PublisherAdRequest, RewardAdLoadCallback) RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback)
isLoaded() Entfernt Der Rückruf der statischen Lademethode stellt eine Anzeige bereit, die bereits geladen wurde.
show(Aktivität, RewardAdCallback) show(Activity, OnUserEarnedRewardListener) Diese Präsentationsmethode orientiert sich an dem umfassenderen Ansatz des Vollbildformats.
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) Für Interstitial-Anzeigen wird jetzt derselbe statische Ladevorgang wie bei anderen Vollbildformaten verwendet.
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() Entfernt Die Klasse „NetworkExtras“ wurde eingestellt.
AdLoader forContentAd() Entfernt
forAppInstallAd() Entfernt
withCorrelator() Entfernt
getMediationAdapterClassName() Entfernt