Auf dieser Seite werden Migrationen für aktuelle und vorherige Versionen behandelt.
Von Version 22 zu Version 23 migrieren
Das Mindest-Android-API-Level ist 21.
Ab Version 23.0.0 des Google Mobile Ads SDK müssen alle Apps mindestens Android API-Level 21 unterstützen, um ausgeführt werden zu 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 v22.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 Version 21 zu Version 22 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
In der folgenden Tabelle sind die Ä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
Aktualisieren Sie „minSdkVersion“ auf 19 oder höher.
Ab Version 21.0.0 muss für das Google Mobile Ads SDK in allen Apps mindestens Android API-Level 19 verwendet werden. Wenn Sie die API-Ebene anpassen möchten, ändern Sie den Wert von minSdkVersion
in der Build-Datei Ihrer App auf mindestens 19.
Strenge Nullbarkeit erzwingen
Zur Vorbereitung auf die Erzwingung der strikten Nullbarkeit werden in allen APIs, in denen die Nullbarkeit bisher nicht explizit definiert wurde, @NonNull
-Anmerkungen hinzugefügt.
Diese Änderung kann dazu führen, dass Kotlin-Apps und Apps, die Java-Null-Prüfungs-Frameworks verwenden, nicht mehr funktionieren, wenn es Verstöße gegen die Null-Sicherheit gibt und null
-Werte zuvor nicht sicher verarbeitet wurden (siehe Kotlin-Dokumentation zur Null-Sicherheit).
Entfernung der Methode „addNetworkExtras()“
Die addNetworkExtras()
-Methode, mit der zusätzliche Parameter als NetworkExtras
-Instanz an einen bestimmten Anzeigennetzwerkadapter ü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 Standortermittlungsmethoden werden in Version 21.0.0 entfernt:
- Die Methode
setLocation(Location location)
in der KlasseAdRequest.Builder
, mit der der Standort des Nutzers für die Ausrichtung der Vermittlung festgelegt wird. - Die Methode
getLocation()
in der KlasseAdRequest
, die die Informationen zum Standorttargeting 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 von derAdRequest
definiert.
Die Standortdaten werden von Google nicht für das Targeting von Anzeigen verwendet. Sie sollten Drittanbieter-APIs verwenden, um die Informationen bei Bedarf an Werbenetzwerke von Drittanbietern weiterzugeben.
Einstellung der Benutzeroberflächen für benutzerdefinierte Ereignisse
Mit benutzerdefinierten Ereignissen können Publisher, die die AdMob-Vermittlung AdMobverwenden, eine abfolgebasierte Anzeigenquelle einrichten, die nicht zu den unterstützten Anzeigenquellen von AdMobgehört.
Alle Benutzerdefinierten Ereignisschnittstellen werden zugunsten der Adapter
-Klasse und der MediationAdLoadCallback
-Schnittstelle eingestellt.
In der folgenden Tabelle sind die entsprechenden Klassen oder Schnittstellen aufgeführt, die ab Version 21.0.0 für jede benutzerdefinierte Ereignisschnittstelle verwendet werden sollten:
Schnittstellen der Version 20.0.0 | v21.0.0 – Klasse/ Benutzeroberfläche |
---|---|
CustomEvent | Adapter |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adapter,
|
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.
Für alle APIs für Vollbildformate gelten die folgenden Prinzipien:
- Statische Lademethode
- Einen ähnlichen Ladeb callback oder Handlermechanismus
- Verwendung der Klasse
FullScreenContentCallback
für Callbacks für Präsentationen
Einstellung der Legacy RewardedVideoAd API
Die neuere RewardedAd
API wurde bereits im März 2019 eingeführt und ist seit über 18 Monaten die bevorzugte API für Anzeigen mit Prämie. Sie wurde im Vergleich zur bisherigen RewardedVideoAd
API weiter optimiert. So können jetzt beispielsweise mehrere Anzeigen mit Prämie gleichzeitig geladen werden.
Die alte RewardedVideoAd
API wird in der SDK-Version 20.0.0 entfernt.
Einstellung von Smart-Bannern zugunsten adaptiver Banner
Smart-Banner-Anzeigen werden zugunsten von adaptiven Banneranzeigen eingestellt. 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 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. Ein Klick auf das Symbol „Datenschutzinfo“, durch den ein externer Browser geöffnet wird, löst beispielsweise den Callback aus, wird aber nicht als Klick gezählt.
Umbenannte Kurse
In der folgenden Tabelle sind bestimmte Klassennamen aufgeführt, die sich geändert oder entfernt haben. 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 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 | rewarded.RewardedAdLoadCallback 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 |
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
In der folgenden Tabelle sind die Ä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 „RewardedAd“ und „InterstitialAd“ wurden aktualisiert, um sie an alle Vollbildformate anzupassen.
- Korrelationsfunktionen wurden entfernt.
Klasse | API v19.5.0 | API v20.0.0 | Hinweise |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
Die App-ID ist jetzt in der Datei „AndroidManifest.xml“ festgelegt. |
initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete |
Die Klasse „Settings“ wurde eingestellt. | |
getRewardedVideo |
Entfernt | Verwenden Sie stattdessen die RewardedAd API. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Entfernt | Bei Vollbildanzeigen wird anstelle von AdListener FullscreenContentCallback 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 | ||
setManualImpressions |
Entfernt | ||
updateCorrelator() | Entfernt | Weitere Informationen finden Sie unter Anzeigeninhalte filtern. | |
AdRequest.Builder | setBirthday() | Entfernt | |
setGender() | Entfernt | ||
setIsDesignedForFamilies() | Entfernt | Weitere Informationen | |
addTestDevice() | RequestConfiguration |
Weitere Informationen finden Sie unter Testanzeigen aktivieren. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Weitere Informationen finden Sie unter Anzeigeninhalte filtern. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Ein ResponseInfo-Objekt ist jetzt über die AdView-Methode getResponseInfo() verfügbar. |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | Bei Anzeigen mit Prämie wird jetzt derselbe Ansatz für die statische Auslieferung wie bei anderen Vollbildformaten verwendet. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | Entfernt | Der Callback von der statischen Lademethode liefert eine bereits geladene Anzeige. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | Diese Methode folgt dem breiteren Ansatz des Vollbildformats. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | Für Interstitial-Anzeigen wird jetzt derselbe statische Ladeansatz verwendet wie für andere Vollbildformate. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Entfernt | Die Klasse „NetworkExtras“ wurde eingestellt. |
AdLoader | forContentAd() | Entfernt | |
forAppInstallAd() | Entfernt | ||
withCorrelator() | Entfernt | ||
getMediationAdapter |
Entfernt |