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 KlasseAdRequest.Builder
, mit der der Standort des Nutzers für das Vermittlungs-Targeting festgelegt wird. - Die Methode
getLocation()
in der KlasseAdRequest
, die die Informationen zur geografischen Ausrichtung des Nutzers zurückgibt, die zuvor an die MethodesetLocation(Location location)
übergeben wurden. - Die Methode
getLocation()
in der KlasseMediationAdConfiguration
, die den Standort des Nutzers zurückgibt, wenn dies durchAdRequest
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,
|
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 inNativeAd
umbenannt. - Die Klassen und Ansichten
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
undInstreamAd
wurden entfernt. - Alle Klassen mit dem Präfix
Publisher
wurden durch das PräfixAdManager
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 |
nativead.NativeCustomFormatAd |
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 KlasseRequestConfiguration
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 | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initial(Kontext, String) | MobileAds.initial(Context, OnInitializationComplete |
Die App-ID wird nun in der AndroidManifest.xml festgelegt. |
initial(Context, String, MobileAds.Settings) | initial(Context, OnInitializationComplete |
Die Klasse „Einstellungen“ wurde eingestellt. | |
getRewardVideo |
Entfernt | Verwenden Sie stattdessen die RewardAd API. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
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 | ||
setManuelleImpressionen |
Entfernt | ||
updateCorrelator() | Entfernt | Weitere Informationen finden Sie unter Filtern von Anzeigeninhalten. | |
AdRequest.Builder | setBirthday() | Entfernt | |
setGender() | Entfernt | ||
setIsDesignedForFamilies() | Entfernt | Siehe Leitfaden. | |
addTestDevice() | RequestConfiguration |
Siehe Testanzeigen aktivieren. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Weitere Informationen finden Sie unter Filtern von Anzeigeninhalten. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Ü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 | onRewardAd |
onAd |
|
onRewardAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardInterstitialAdLoad |
onRewardInterstitialAd |
onAd |
|
onRewardInterstitialAd |
onAd |
||
onPrämieInterstitialAd |
onAd |
||
InterstitialAd | neu InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | Für InterstitialAd wird jetzt derselbe statische Ladevorgang verwendet wie bei anderen Vollbildformaten. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Entfernt | Die Klasse „NetworkExtras“ wurde eingestellt. |
AdLoader | forContentAd() | Entfernt | |
forAppInstallAd() | Entfernt | ||
withCorrelator() | Entfernt | ||
getMediationAdapter |
Entfernt |