SDK-Migration

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

Von v22 zu v23 migrieren

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

Ab Version 23.0.0 müssen alle Apps für das Google Mobile Ads SDK mindestens Android API-Level 21. Um das API-Level anzupassen, ändern Sie die minSdkVersion in der Datei build.gradle auf App-Ebene auf 21 oder höher setzen.

Veraltete Methoden entfernt/ersetzt

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

MobileAds.getVersion() zum Abrufen der Google Mobile Ads SDK-Version verwenden

Die Methode MobileAds.getVersionString() wird in Version 22.0.0 zugunsten der von MobileAds.getVersion()

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

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 müssen alle Apps für das Google Mobile Ads SDK Android API-Level 19 ausführen. Um das API-Level anzupassen, ändern Sie die minSdkVersion in der Build-Datei Ihrer App auf 19 oder höher setzen.

Strikte Null-Zulässigkeit erzwingen

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

Durch diese Änderung werden Kotlin-Apps und ‐Apps, die die Java-Nullprüfung verwenden, möglicherweise nicht mehr funktionieren wenn es keine Sicherheitsverstöße gibt, die zuvor nicht null-Werte auf sichere Weise verwenden können. Weitere Informationen dazu finden Sie in der Kotlin-Dokumentation zu Null-Sicherheit ).

Entfernung der Methode "addNetworkExtras()"

Die Methode addNetworkExtras(), die zusätzliche Parameter als einen NetworkExtras-Instanz für einen bestimmten Werbenetzwerkadapter wurde im SDK eingestellt Version 20.3.0 und wird in Version 21.0.0 entfernt. Verwenden Sie die Methode addNetworkExtrasBundle() aus derselben AdRequest.Builder-Klasse verwenden.

Entfernung von Standortmethoden

Die folgenden Standortmethoden werden in Version 21.0.0 entfernt:

  • Die Methode setLocation(Location location) in der Klasse AdRequest.Builder mit dem der Standort des Nutzers für die Vermittlungsausrichtung festgelegt wird.
  • Die Methode getLocation() in der Klasse AdRequest, die das Ereignis Informationen zur geografischen Ausrichtung, die zuvor an die Methode setLocation(Location location) übergeben wurden
  • Die Methode getLocation() in der Klasse MediationAdConfiguration, die gibt den Standort des Nutzers zurück, wenn dieser durch AdRequest definiert ist.

Die Standortdaten werden von Google nicht für die Ausrichtung von Anzeigen verwendet. Sie sollten APIs von Drittanbietern, die Informationen an Werbenetzwerke von Drittanbietern bereitzustellen, wenn erforderlich.

Einstellung der Benutzeroberflächen für benutzerdefinierte Ereignisse

Mit benutzerdefinierten Ereignissen können Publisher AdMob Mediation Vermittlung einrichten, um eine abfolgebasierte Anzeigenquelle einzurichten, einer von AdMob unterstützten Anzeigenquellen.

Alle benutzerdefinierten Ereignis werden zugunsten der Adapter Klasse und MediationAdLoadCallback .

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

v20.0.0-Oberflächen 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 gibt es viele wichtige Änderungen. Version 19.7.0 eingeführt viele neue APIs hinzukommen und zur Vorbereitung auf die Version einige Klassen eingestellt oder umbenannt. 20.0.0. In diesem Leitfaden werden die wichtigsten Änderungen in Version 20.0.0 hervorgehoben.

Aktualisierungen der API für das Vollbildformat

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

Alle Vollbild-APIs basieren auf den folgenden Prinzipien:

  • Eine statische Lademethode
  • Ein ähnlicher Lade-Callback oder Handler-Mechanismus
  • Verlassen Sie sich auf den FullScreenContentCallback Klasse für Präsentations-Callbacks

Entfernung der bisherigen RewardVideoAd API

Das neuere RewardedAd Die API wurde im März 2019 eingeführt und ist die bevorzugte Version mit Prämie API seit über 18 Monaten. Es wurde im Vergleich zur Legacy-Version besser verbessert. RewardedVideoAd API, einschließlich der Möglichkeit, mehr als eine Anzeige mit Prämie zu laden auf einmal ansehen.

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

Einstellung von Smart-Bannern durch adaptive Banner

Smart-Banneranzeigen wurden eingestellt zugunsten eines adaptiven Banners Anzeigen. Adaptive Banner bieten eine bessere Leistung und mehr Flexibilität bei die Anzeigenbreite festlegen. Wenn Sie weiterhin Banner mit voller Breite verwenden möchten, kann dennoch mit adaptiven Bannern erfolgen, 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 App-Callbacks verlassen

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

Der onAdLeftApplication-Callback war nie als Anzeige gedacht Klick-Handler. Die Verwendung dieses Callbacks für die Erfassung von Klicks ergab kein genauen Messwerts. Beispiel: Ein Klick auf das Datenschutzinfo-Symbol, mit dem ein externer Browser hat den Callback aufgerufen, zählt aber nicht als Klick.

Klassen umbenennen

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

  • Die meisten mit UnifiedNativeAd verwandten Kurse wurden in NativeAd umbenannt.
  • MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd, "NativeContentAd" und "InstreamAd" Kurse und Ansichten wurden entfernt.
  • Alle Klassen mit dem Präfix Publisher wurden durch einen AdManager.
  • 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 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
Correlator 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, um sie an alle Vollbildformat erstellen.
  • 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 wird nun in der Datei „AndroidManifest.xml“ festgelegt.
initial(Context, String, MobileAds.Settings) initial(Context, OnInitializationCompleteListener) Die Klasse „Settings“ wurde eingestellt.
getRewardedVideoAdInstance() Entfernt Verwenden Sie stattdessen die RewardAd API.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() Entfernt Bei Vollbildanzeigenformaten wird anstelle von AdListener festgelegt ist, und es gibt keine entsprechende Methode in FullscreenContentCallback. Die wurde aus AdListener entfernt.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() Entfernt
getBirthday() Entfernt
getNetworkExtras() Entfernt
setManualImpressionsEnabled() Entfernt
updateCorrelator() Entfernt Weitere Informationen finden Sie unter Filtern 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 Filtern 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()
RewardedAd loadAd(AdRequest, RewardAdLoadCallback) RewardAd.load(Context, String, AdRequest, RewardAdLoadCallback) Für Anzeigen mit Prämie wird jetzt derselbe statische Ladeansatz wie bei anderen Vollbildformat erstellen.
lastAd(PublisherAdRequest, RewardAdLoadCallback) RewardAd.load(Context, String, AdRequest, RewardAdLoadCallback)
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 am 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 InterstitialAd wird nun derselbe statische Ladevorgang wie für anderen Vollbildformaten nutzen.
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() Entfernt Die Klasse „NetworkExtras“ wurde eingestellt.
AdLoader forContentAd() Entfernt
forAppInstallAd() Entfernt
withCorrelator() Entfernt
getMediationAdapterClassName() Entfernt