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 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 du das API-Level anpassen möchtest, ändere den Wert von minSdkVersion
in der Datei build.gradle
auf App-Ebene in 21 oder höher.
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 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.
Strikte Null-Zulässigkeit 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 Methode addNetworkExtras()
, mit der zusätzliche Parameter als NetworkExtras
-Instanz an einen bestimmten Werbenetzwerkadapter übergeben werden, 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 KlasseAdRequest.Builder
, mit der der Standort des Nutzers für das Vermittlungs-Targeting festgelegt wird. - Die Methode
getLocation()
in der KlasseAdRequest
, 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, sofern durch dieAdRequest
definiert.
Die Standortdaten werden von Google nicht für die Ausrichtung von Anzeigen verwendet. Sie sollten Drittanbieter-APIs verwenden, 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 verwenden, 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:
v20.0.0-Oberflächen | 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 gibt es viele wichtige Änderungen. Mit Version 19.7.0 wurden viele neue APIs eingeführt und aufgrund der Vorbereitung auf Version 20.0.0 viele Klassen verworfen oder umbenannt. 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 sind die Anzeigenformate „Interstitial“, „Interstitial mit Prämie“, „Interstitial mit Prämie“ und „App-Start-Anzeigen“ standardisiert, um einem einheitlichen API-Design zu entsprechen.
Alle Vollbild-APIs basieren auf den folgenden Prinzipien:
- Eine statische Lademethode
- Ein ähnlicher Lade-Callback oder Handler-Mechanismus
- Bei Präsentations-Callbacks auf die Klasse
FullScreenContentCallback
zurückgreifen
Entfernung der bisherigen RewardVideoAd 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 bisherigen 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 beim Festlegen der Anzeigenbreite. Wenn Sie weiterhin Banner mit voller Breite verwenden möchten, können Sie auch 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 App-Callbacks verlassen
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 vorgesehen. Die Verwendung dieses Callbacks zum Melden von Klicks ergab keinen genauen Messwert. Beispiel: Ein Klick auf das Datenschutzinfo-Symbol, durch den ein externer Browser gestartet wird, 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 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 | 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 |
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 |
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 KlasseRequestConfiguration
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 | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initial(Kontext, String) | MobileAds.initial(Context, OnInitializationComplete |
Die App-ID wird nun in der Datei „AndroidManifest.xml“ festgelegt. |
initial(Context, String, MobileAds.Settings) | initial(Context, OnInitializationComplete |
Die Klasse „Settings“ wurde eingestellt. | |
getPrämieVideo |
Entfernt | Verwenden Sie stattdessen die RewardAd API. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
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 | ||
setManuelleImpressionen |
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 |
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) | RewardAd.load(Context, String, AdRequest, RewardAdLoadCallback) | Für Anzeigen mit Prämie wird jetzt derselbe statische Ladeansatz wie bei anderen Vollbildformaten verwendet. |
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 | onPrämieAd |
onAd |
|
onPrämieAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardInterstitialAdLoad |
onPrämieInterstitialAd |
onAd |
|
onPrämieInterstitialAd |
onAd |
||
onPrämieInterstitialAd |
onAd |
||
InterstitialAd | neu InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | Für InterstitialAd wird nun derselbe statische Ladeansatz wie bei anderen Vollbildformaten verwendet. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Entfernt | Die Klasse „NetworkExtras“ wurde eingestellt. |
AdLoader | forContentAd() | Entfernt | |
forAppInstallAd() | Entfernt | ||
withCorrelator() | Entfernt | ||
getMediationAdapter |
Entfernt |