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 deiner 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 KlasseAdRequest.Builder
mit dem der Standort des Nutzers für die Vermittlungsausrichtung festgelegt wird. - Die Methode
getLocation()
in der KlasseAdRequest
, die das Ereignis Informationen zur geografischen Ausrichtung, die zuvor an die MethodesetLocation(Location location)
übergeben wurden - Die Methode
getLocation()
in der KlasseMediationAdConfiguration
, die gibt den Standort des Nutzers zurück, wenn dieser durchAdRequest
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,
|
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 inNativeAd
umbenannt. MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
, "NativeContentAd
" und "InstreamAd
" Kurse und Ansichten wurden entfernt.- Alle Klassen mit dem Präfix
Publisher
wurden durch einenAdManager
. - 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 |
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 |
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 KlasseRequestConfiguration
verschoben. - Die APIs „PrämieAd“ 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 | 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. | |
getRewardedVideo |
Entfernt | Verwenden Sie stattdessen die RewardAd API. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
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 | ||
setManualImpressions |
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 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 | 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 InterstitialAd wird nun derselbe statische Ladevorgang wie für anderen Vollbildformaten nutzen. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Entfernt | Die Klasse „NetworkExtras“ wurde eingestellt. |
AdLoader | forContentAd() | Entfernt | |
forAppInstallAd() | Entfernt | ||
withCorrelator() | Entfernt | ||
getMediationAdapter |
Entfernt |