Auf dieser Seite werden Migrationen für aktuelle und frühere Versionen des Google Mobile Ads SDK für iOS behandelt. Version 12.0.0 wird voraussichtlich im Februar 2025 veröffentlicht.
Von SDK-Version 11 zu Version 12 migrieren
Upgrade auf Xcode 16.0
Die unterstützte Mindestversion von Xcode wurde auf 16.0 erhöht.
Unterstützung für Swift-Benennung
Version 12.0.0 enthält Änderungen, die den Namenskonventionen in den Swift API Design Guidelines entsprechen. Diese Änderungen betreffen nur Swift. An den Objective-C-APIs wurden keine Namensänderungen vorgenommen.
Änderungen am Klassenpräfix
Die folgenden Änderungen wurden an den Klassenpräfixen vorgenommen:
- Das Präfix
GAD
wurde aus allen Namen für alle Typen entfernt. - Das Präfix
GAM
wurde inAdManager
umbenannt. - Das Präfix
GADM
wurde inMediation
umbenannt.
Fehler beheben.
Die beste Möglichkeit, Fehler zu beheben, die durch diese Änderungen verursacht werden, ist, eine Korrektur über „Fix-It“ vorzunehmen.
Namenskonflikte beheben
Verwenden Sie den vom Modul bereitgestellten Namespace, um Namenskonflikte zu beheben. Beispiel: GADRequest
heißt jetzt Request
. Die folgenden Beispiel-Namespaces für die Google Mobile Ads SDK-Klasse Request
:
import GoogleMobileAds
...
var request: GoogleMobileAds.Request?
Detaillierte Liste der Swift-Änderungen
In den folgenden Tabellen sind die Änderungen an den Swift-APIs aufgeführt:
Version 11 | Version 12 |
---|---|
GADAdapterInitializationState |
AdapterInitializationState |
GADAdChoicesPosition |
AdChoicesPosition |
GADAdChoicesView |
AdChoicesView |
GADAdFormat |
AdFormat |
GADAdLoader |
AdLoader |
GADAdLoaderAdType |
AdLoaderAdType |
GADAdLoaderDelegate |
AdLoaderDelegate |
GADAdMetadataDelegate |
AdMetadataDelegate |
GADAdMetadataProvider |
AdMetadataProvider |
GADAdNetworkExtras |
AdNetworkExtras |
GADAdNetworkResponseInfo |
AdNetworkResponseInfo |
GADAdReward |
AdReward |
GADAdSize |
AdSize |
GADAdSizeDelegate |
AdSizeDelegate |
GADAdValue |
AdValue |
GADAdValuePrecision |
AdValuePrecision |
GADAppEventDelegate |
AppEventDelegate |
GADAppOpenAd |
AppOpenAd |
GADAppOpenSignalRequest |
AppOpenSignalRequest |
GADAudioVideoManager |
AudioVideoManager |
GADAudioVideoManagerDelegate |
AudioVideoManagerDelegate |
GADBannerSignalRequest |
BannerSignalRequest |
GADBannerView |
BannerView |
GADBannerViewDelegate |
BannerViewDelegate |
GADCustomEventExtras |
CustomEventExtras |
GADCustomEventRequest |
CustomEventRequest |
GADCustomNativeAd |
CustomNativeAd |
GADCustomNativeAdLoaderDelegate |
CustomNativeAdLoaderDelegate |
GADCustomNativeAdDelegate |
CustomNativeAdDelegate |
GADDebugOptionsViewControllerDelegate |
DebugOptionsViewControllerDelegate |
GADDebugOptionsViewController |
DebugOptionsViewController |
GADDisplayAdMeasurement |
DisplayAdMeasurement |
GADExtras |
Extras |
GADFullScreenPresentingAd |
FullScreenPresentingAd |
GADFullScreenContentDelegate |
FullScreenContentDelegate |
GADAdapterStatus |
AdapterStatus |
GADInitializationStatus |
InitializationStatus |
GADInterstitialAd |
InterstitialAd |
GADInterstitialSignalRequest |
InterstitialSignalRequest |
GADMediaAspectRatio |
MediaAspectRatio |
GADMediaContent |
MediaContent |
GADMediaView |
MediaView |
GADMobileAds |
MobileAds |
GADMultipleAdsAdLoaderOptions |
MultipleAdsAdLoaderOptions |
GADMuteThisAdReason |
MuteThisAdReason |
GADNativeAd |
NativeAd |
GADNativeAdLoaderDelegate |
NativeAdLoaderDelegate |
GADNativeAdView |
NativeAdView |
GADNativeAdCustomClickGestureOptions |
NativeAdCustomClickGestureOptions |
GADNativeAdDelegate |
NativeAdDelegate |
GADNativeAdImage |
NativeAdImage |
GADNativeAdImageAdLoaderOptions |
NativeAdImageAdLoaderOptions |
GADNativeAdInlineBehavior |
NativeAdInlineBehavior |
GADNativeAdInlineBehaviorOptions |
NativeAdInlineBehaviorOptions |
GADNativeAdMediaAdLoaderOptions |
NativeAdMediaAdLoaderOptions |
GADNativeAdUnconfirmedClickDelegate |
NativeAdUnconfirmedClickDelegate |
GADNativeAdViewAdOptions |
NativeAdViewAdOptions |
GADNativeMuteThisAdLoaderOptions |
NativeMuteThisAdLoaderOptions |
GADNativeSignalRequest |
NativeSignalRequest |
GADPresentationError |
PresentationError |
GADPublisherPrivacyPersonalizationState |
PublisherPrivacyPersonalizationState |
GADQueryInfo |
QueryInfo |
GADRequest |
Request |
GADRequestError |
RequestError |
GADRequestConfiguration |
RequestConfiguration |
GADResponseInfo |
ResponseInfo |
GADRewardedAd |
RewardedAd |
GADRewardedSignalRequest |
RewardedSignalRequest |
GADRewardedInterstitialAd |
RewardedInterstitialAd |
GADRewardedInterstitialSignalRequest |
RewardedInterstitialSignalRequest |
GADSearchBannerView |
SearchBannerView |
GADServerSideVerificationOptions |
ServerSideVerificationOptions |
GADSignal |
Signal |
GADSignalRequest |
SignalRequest |
GADVersionNumber |
VersionNumber |
GADVideoController |
VideoController |
GADVideoControllerDelegate |
VideoControllerDelegate |
Ad Manager | |
GAMBannerAdLoaderDelegate |
AdManagerBannerAdLoaderDelegate |
GAMBannerView |
AdManagerBannerView |
GAMBannerViewOptions |
AdManagerBannerViewOptions |
GAMInterstitialAd |
AdManagerInterstitialAd |
GAMRequest |
AdManagerRequest |
Vermittlung | |
GADMAdNetworkAdapter |
MediationAdNetworkAdapter |
GADMAdNetworkConnector |
MediationAdNetworkConnector |
GADMBannerAnimationType |
MediationBannerAnimationType |
GADMediatedUnifiedNativeAd |
MediationUnifiedNativeAd |
GADMediatedUnifiedNativeAdNotificationSource |
MediationUnifiedNativeAdNotificationSource |
GADMediationAd |
MediationAd |
GADMediationAdConfiguration |
MediationAdConfiguration |
GADMediationAdEventDelegate |
MediationAdEventDelegate |
GADMediationAdRequest |
MediationAdRequest |
GADMediationAdapter |
MediationAdapter |
GADMediationAppOpenAd |
MediationAppOpenAd |
GADMediationAppOpenAdEventDelegate |
MediationAppOpenAdEventDelegate |
GADMediationBannerAd |
MediationBannerAd |
GADMediationBannerAdConfiguration |
MediationBannerAdConfiguration |
GADMediationBannerAdEventDelegate |
MediationBannerAdEventDelegate |
GADMediationCredentials |
MediationCredentials |
GADMediationInterstitialAd |
MediationInterstitialAd |
GADMediationInterstitialAdConfiguration |
MediationInterstitialAdConfiguration |
GADMediationInterstitialAdEventDelegate |
MediationInterstitialAdEventDelegate |
GADMediationNativeAd |
MediationNativeAd |
GADMediationNativeAdConfiguration |
MediationNativeAdConfiguration |
GADMediationNativeAdEventDelegate |
MediationNativeAdEventDelegate |
GADMediationRewardedAd |
MediationRewardedAd |
GADMediationRewardedAdConfiguration |
MediationRewardedAdConfiguration |
GADMediationRewardedAdEventDelegate |
MediationRewardedAdEventDelegate |
GADMediationServerConfiguration |
MediationServerConfiguration |
Echtzeitgebote | |
GADRTBAdapter |
RTBAdapter |
GADRTBMediationSignalsConfiguration |
RTBMediationSignalsConfiguration |
GADRTBRequestParameters |
RTBRequestParameters |
Konstanten
Version 11 | Version 12 |
---|---|
GADAdLoaderAdType.gamBanner |
AdLoaderAdType.adManagerBanner |
GADAdSizeBanner |
AdSizeBanner |
GADAdSizeFluid |
AdSizeFluid |
GADAdSizeFullBanner |
AdSizeFullBanner |
GADAdSizeInvalid |
AdSizeInvalid |
GADAdSizeLargeBanner |
AdSizeLargeBanner |
GADAdSizeLeaderboard |
AdSizeLeaderboard |
GADAdSizeMediumRectangle |
AdSizeMediumRectangle |
GADAdSizeSkyscraper |
AdSizeSkyscraper |
GoogleMobileAdsVersionString |
GoogleMobileAdsVersion |
Attribute
Typ | Version 11 | Version 12 |
---|---|---|
GADAdLoader | loading |
isLoading |
GADAudioVideoManager | audioSessionApplicationManaged |
isAudioSessionApplicationManaged |
GADBannerView | autoloadEnabled |
isAutoloadEnabled |
GADMobileAds | sharedInstance |
shared |
applicationMuted |
isApplicationMuted |
|
GADMuteThisAdReason | reasonDescription |
reason |
GADNativeAd | customMuteThisAdAvailable |
isCustomMuteThisAdAvailable |
GADNativeAdCustomClickGestureOptions | tapsAllowed |
areTapsAllowed |
GADNativeAdImageAdLoaderOptions | imageLoadingDisabled |
isImageLoadingDisabled |
GADNativeMuteThisAdLoaderOptions | customMuteThisAdRequested |
isCustomMuteThisAdRequested |
GADNativeSignalRequest | imageLoadingDisabled |
isImageLoadingDisabled |
customMuteThisAdRequested |
isCustomMuteThisAdRequested |
|
GADRequest | neighboringContentURLStrings |
neighboringContentURLs |
GADResponseInfo | extrasDictionary |
extras |
GADServerSideVerificationOptions | customRewardString |
customRewardText |
GADSignal | signalString |
signal |
GADSignalRequest | neighboringContentURLStrings |
neighboringContentURLs |
GADVideoController | customControlsRequested |
areCustomControlsRequested |
clickToExpandEnabled |
isClickToExpandEnabled |
|
GADVideoOptions | startMuted |
shouldStartMuted |
customControlsRequested |
areCustomControlsRequested |
|
clickToExpandRequested |
isClickToExpandRequested |
Funktionen
Typ | Version 11 | Version 12 |
---|---|---|
GADAdSize | GADPortraitInlineAdaptiveBannerAdSizeWithWidth(_:) |
portraitInlineAdaptiveBanner(width:) |
GADLandscapeInlineAdaptiveBannerAdSizeWithWidth(_:) |
landscapeInlineAdaptiveBanner(width:) |
|
GADCurrentOrientationInlineAdaptiveBannerAdSizeWithWidth(_:) |
currentOrientationInlineAdaptiveBanner(width:) |
|
GADInlineAdaptiveBannerAdSizeWithWidthAndMaxHeight(_:, _:) |
inlineAdaptiveBanner(width:maxHeight:) |
|
GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth(_:) |
portraitAnchoredAdaptiveBanner(width:) |
|
GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(_:) |
landscapeAnchoredAdaptiveBanner(width:) |
|
GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(_:) |
currentOrientationAnchoredAdaptiveBanner(width:) |
|
GADAdSizeFromCGSize(_:) |
adSizeFor(cgSize:) |
|
GADAdSizeFullWidthPortraitWithHeight(_:) |
fullWidthPortrait(height:) |
|
GADAdSizeFullWidthLandscapeWithHeight(_:) |
fullWidthLandscape(height:) |
|
GADAdSizeEqualToSize(_:, _:) |
isAdSizeEqualToSize(size1:size2:) |
|
IsGADAdSizeValid(_:) |
isAdSizeValid(size:) |
|
GADAdSizeIsFluid(_:) |
isAdSizeFluid(size:) |
|
CGSizeFromGADAdSize(_:) |
cgSize(for:) |
|
NSStringFromGADAdSize(_:) |
string(for:) |
|
NSValueFromGADAdSize(_:) |
nsValue(for:) |
|
GADAdSizeFromNSValue(_:) |
adSizeFor(nsValue:) |
|
GADClosestValidSizeForAdSizes(_:_:) |
closestValidSizeForAdSizes(original:possibleAdSizes:) |
|
GADAppEventDelegate | adView(_:didReceiveAppEvent:withInfo:) |
adView(_:didReceiveAppEvent:with:) |
interstitialAd(_:didReceiveAppEvent:withInfo:) |
adView(_:didReceiveAppEvent:with:) |
|
GADAppOpenAd | load(withAdResponseString:) |
load(with:) |
load(withAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
|
canPresent(fromRootViewController:) |
canPresent(from:) |
|
present(fromRootViewController:) |
present(from:) |
|
GADBannerView | load(withAdResponseString:) |
load(with:) |
GADInterstitial | load(withAdResponseString:) |
load(with:) |
load(withAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
|
canPresent(fromRootViewController:) |
canPresent(from:) |
|
present(fromRootViewController:) |
present(from:) |
|
GADRewardedAd | load(withAdResponseString:) |
load(with:) |
load(withAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
|
canPresent(fromRootViewController:) |
canPresent(from:) |
|
present(fromRootViewController:userDidEarnRewardHandler:) |
present(from:userDidEarnRewardHandler:) |
|
GADRewardedInterstitialAd | load(withAdResponseString:) |
load(with:) |
load(withAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
|
canPresent(fromRootViewController:) |
canPresent(from:) |
|
present(fromRootViewController:userDidEarnRewardHandler:) |
present(from:userDidEarnRewardHandler:) |
|
GADVersionNumber | GADGetStringFromVersionNumber(_ version: GADVersionNumber) |
string(for:) |
Vermittlung | ||
GADMAdNetworkAdapter | getBannerWith(_:) |
getBanner(with:) |
presentInterstitial(fromRootViewController:) |
presentInterstitial(from:) |
|
getNativeAd(withAdTypes:options:) |
getNativeAd(with:options:) |
|
GADMediatedUnifiedNativeAd | didRecordClickOnAsset(withName:view:viewController:) |
didRecordClickOnAsset(with:view:viewController:) |
GADMediationAdapter | setUpWith(_:completionHandler:) |
setUp(with:completionHandler:) |
GADMediationAdSize | present(fromRootViewController:) |
present(from:) |
GADMediationAppOpenAd | present(fromRootViewController:) |
present(from:) |
GADMediationInterstitialAd | present(fromRootViewController:) |
present(from:) |
GADMediationRewardedAd | present(fromRootViewController:) |
present(from:) |
GAMInterstitialAd | load(withAdManagerAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
API-Änderungen bei der Steuerung des Stummschaltungsstatus von Videos
Das Attribut isMuted
und die Methode setMute:
für GADVideoController
werden durch das Attribut muted
ersetzt.
Änderungen an adaptiven Inline-Anzeigen
Um die Platznutzung zu optimieren, nehmen Inline-Adaptive Anzeigen anfangs keinen Platz im Frame ein. Wenn Sie CGSizeFromGADAdSize(_:)
mit einer Inline-Größe für adaptive Anzeigen aufrufen, wird jetzt die Höhe 0
zurückgegeben, bis das Google Mobile Ads SDK eine Anzeige zurückgibt.
Benutzerdefinierte Suchanzeigen entfernt
Die folgenden Klassen werden ohne Ersatz entfernt:
GADDynamicHeightSearchBannerView
GADDynamicHeightSearchRequest
GADSearchBannerView
Änderungen an Fehlercodes
Die folgenden Fehlercodes wurden geändert:
Klasse | Hinweise |
---|---|
GADErrorMediationNoFill |
Fehler werden jetzt als GADErrorNoFill zurückgegeben. |
GADErrorReceivedInvalidResponse |
Wurde durch GADErrorReceivedInvalidAdString ersetzt. |
GADSimulatorID entfernt
GADSimulatorID
wurde entfernt. Simulatoren befinden sich standardmäßig bereits im Testmodus.
Änderungen am benutzerdefinierten Targeting
Im customTargeting
-Wörterbuch für GADRequest
wird jetzt Any
anstelle von String
als Werttyp verwendet. So können Sie numerische Werte an die API übergeben.
Änderungen an Parametern für Extras
- Die Übergabe des
max_ad_content_rating
-Schlüssels anadditionalParameters
wird nicht mehr unterstützt. Informationen zum Festlegen einer höchsten Altersfreigabe für Anzeigeninhalte finden Sie unter Filterung von Anzeigeninhalten.
Von v10 zu v11 migrieren
Mindestbereitstellungsziel
Das Mindestbereitstellungsziel wurde auf iOS 12 erhöht.
Xcode-Mindestversion
Die unterstützte Mindestversion von Xcode wurde auf 15.1 erhöht.
Anzeigen werden auf iOS 12 nicht mehr ausgeliefert
Mit dem Google Mobile Ads SDK Version 11.0.0 werden Anzeigen nur auf Geräten mit iOS 13 und höher ausgeliefert.
GoogleAppMeasurement-Abhängigkeit entfernt
In Version 11.0.0 wurde die Abhängigkeit von GoogleAppMeasurement
entfernt. Diese Abhängigkeit, die die Ein/Aus-Schaltfläche für Nutzermesswerte in AdMob ermöglicht hat, wird Anfang 2024 eingestellt. Wenn Sie weiterhin Nutzermesswerte in AdMob erfassen möchten, verknüpfen Sie Ihre AdMob-App mit Firebase und binden Sie das Google Analytics for Firebase SDK in Ihre App ein.
Änderungen bei der Darstellung von Vollbildanzeigen
Die folgenden Änderungen betreffen die verschiedenen Anzeigenformate:
- App-Start
- Interstitial
- Verfügbar
- Interstitial mit Prämie
Der Parameter für den Ansichtscontroller in -canPresentFromRootViewController:error:
und -presentFromRootViewController:
ist nullable. Wenn „nil“ übergeben wird, wird die Anzeige vom obersten Ansichtscontroller in der Ansichtscontrollerhierarchie präsentiert.
Entfernte Methoden
Die folgenden Methoden werden entfernt.
v11.0.0 – Typ | Methode | Hinweise |
---|---|---|
GADAppOpenAd | load(withAdUnitID adUnitID: String, request: GADRequest?, orientation: UIInterfaceOrientation) |
Verwenden Sie stattdessen load(withAdUnitID adUnitID: String, request: GADRequest?) . |
GADMediationBannerAdEventDelegate | willBackgroundApplication() |
Kein Ersatz. |
GADMediationInterstitialAdEventDelegate | willBackgroundApplication() |
Kein Ersatz. |
GADMediationNativeAdEventDelegate | willBackgroundApplication() |
Kein Ersatz. |
GADMediationRewardedAdEventDelegate | didRewardUser(with reward: GADAdReward) |
Verwenden Sie stattdessen didRewardUser() . |
GADMediatedUnifiedNativeAdNotificationSource | mediatedNativeAdWillLeaveApplication(_ mediatedNativeAd: GADMediatedUnifiedNativeAd) |
Kein Ersatz. |
GADRequestConfiguration | setSameAppKeyEnabled(_ enabled: Bool) |
Verwenden Sie stattdessen setPublisherFirstPartyIDEnabled(_ enabled: Bool) . |
tagForUnderAge(ofConsent underAgeOfConsent: Bool) |
Verwenden Sie stattdessen die Property tagForUnderAgeOfConsent . |
|
tag(forChildDirectedTreatment childDirectedTreatment: Bool) |
Verwenden Sie stattdessen die Property tagForChildDirectedTreatment . |
Attribute entfernt
Die folgenden Eigenschaften werden entfernt.
Klasse v11.0.0 | Attribut | Hinweise |
---|---|---|
GADMediationAdConfiguration | hasUserLocation | Kein Ersatz. |
userLatitude | ||
userLongitude | ||
userLocationAccuracyInMeters | ||
childDirectedTreatment | Verwenden Sie stattdessen GADMobileAds.sharedInstance.requestConfiguration.tagForChildDirectedTreatment . |
|
GADResponseInfo | adNetworkClassName | Verwenden Sie stattdessen adNetworkClassName aus loadedAdNetworkResponseInfo . |
GADAdFormatUnknown entfernt
GADAdFormatUnknown
wurde entfernt und nicht ersetzt.
Änderungen beim Protokollieren der SDK-Version
In Version 11.0.0 wurde sdkVersion
entfernt. Verwenden Sie versionNumber
, um die Version des Google Mobile Ads SDK zu protokollieren.
Version 10.0.0
GADMobileAds.sharedInstance().sdkVersion
Version 11.0.0
GADGetStringFromVersionNumber(GADMobileAds.sharedInstance().versionNumber)
Änderungen bei der Fehlerbehandlung in GADAdLoader
Ab Version 11.0.0 sendet GADAdLoader
keine Anzeigenanfrage, wenn das delegate
nicht dem Delegatenprotokoll der angeforderten Anzeigentypen entspricht. Bisher ist der Fehler erst nach der Anzeigenanfrage aufgetreten.
Änderungen am Testverhalten
In der Tabelle unten sehen Sie die aktualisierten Bedingungen dafür, wann für die folgenden Eigenschaften true
zurückgegeben wird.
Klasse | Attribut |
---|---|
GADMediationAdConfiguration | isTestRequest |
GADCustomEventRequest | isTesting |
v10.0.0 | v11.0.0 |
|
|
Von v9 zu v10 migrieren
Anzeigen werden unter iOS 11 nicht mehr ausgeliefert
Mit dem Google Mobile Ads SDK Version 10.0.0 werden Anzeigen nur auf Geräten mit iOS 12 und höher ausgeliefert.
Wenn Sie auf das Google Mobile Ads SDK Version 10.0.0 aktualisieren, funktioniert Ihre App auf Geräten mit iOS 11 und iOS 10 weiterhin, es werden jedoch keine Anzeigen auf diesen Geräten ausgeliefert.
Erstellen mit Bitcode wird nicht mehr unterstützt
Wenn Sie das Google Mobile Ads SDK in Ihre mobilen Apps einbinden möchten, müssen Sie Bitcode deaktivieren.
Entfernte Typen
Typ | Hinweise |
---|---|
GADGender | Kein Ersatz. |
GADMRewardBasedVideoAdNetworkAdapterProtocol | Alle auf der Seite Netzwerke auswählen aufgeführten Adapter für die Vermittlung von Anzeigen mit Prämie verwenden diese Protokolle seit über einem Jahr nicht mehr. Verwenden Sie GADMediationAdapter für Vermittlung und benutzerdefinierte Ereignisse. |
GADMRewardBasedVideoAdNetworkConnectorProtocol |
Attribute entfernt
Die folgenden Eigenschaften werden ohne Ersatz entfernt.
Klasse 10.0.0 | Attribut |
---|---|
GADMediationAdRequest | userBirthday |
userGender | |
userHasLocation | |
userLatitude | |
userLongitude | |
userLocationAccuracyInMeters | |
userLocationDescription | |
GADCustomEventRequest | userHasLocation |
userLatitude | |
userLongitude | |
userLocationAccuracyInMeters | |
userLocationDescription |
Von Version 8 zu Version 9 migrieren
Anzeigen werden unter iOS 10 nicht mehr ausgeliefert
Die Mindestversion von iOS, die vom Google Mobile Ads SDK 9.0.0 unterstützt wird, ist iOS 11.
Wenn Sie auf das Google Mobile Ads SDK Version 9.0.0 aktualisieren, funktioniert Ihre App auf iOS 10-Geräten weiterhin, es werden jedoch keine Anzeigen auf diesen Geräten ausgeliefert.
Strengere Durchsetzung der Statusleistensteuerung
Ab Version 9.0.0 muss Ihre App bei der Präsentation von Anzeigen im Vollbildformat dafür sorgen, dass die Anzeigen die Darstellung der Statusleiste steuern können. Wenn Sie dies nicht tun, wird in den Logs eine Fehlermeldung angezeigt.
Je nach dem spezifischen Layout der Ansichtscontroller in Ihrer App müssen Sie möglicherweise keine Änderungen vornehmen, um dies zu gewährleisten. Überlegen Sie, ob Sie die Property childViewControllerForStatusBarHidden
für die rootViewController
Ihrer Anzeige festlegen müssen.
Benennen Sie „adDidPresentFullScreenContent:“ in „adWillPresentFullScreenContent:“ um:
Es gibt keine Verhaltensänderung. Die Delegatenmethode wird kurz vor der Präsentation der Anzeige aufgerufen. Der neue Methodenname spiegelt die Funktionalität daher besser wider.
API für Standorteinstellungen aus GADRequest entfernen
- (void)setLocationWithLatitude:longitude:accuracy:
wurde aus GADRequest
gelöscht, da Standortdaten von Google nicht für das Targeting von Anzeigen verwendet werden. Verwenden Sie Drittanbieter-APIs, um die Informationen bei Bedarf an Drittanbieter-Werbenetzwerke weiterzugeben.
Einstellung benutzerdefinierter Ereignisschnittstellen
Mit benutzerdefinierten Ereignissen können Publisher, die die AdMob-Vermittlung verwenden, die abfolgebasierte Vermittlung für ein Werbenetzwerk hinzufügen, das nicht zu den unterstützten Werbenetzwerken gehört.
Alle benutzerdefinierten Ereignisprotokolle sind veraltet. Verwenden Sie stattdessen die vorhandenen Protokolle GADMediationAdapter
und GADMediationAdEventDelegate
, um dieselben Funktionen zu nutzen. Diese Änderung sorgt für mehr Klarheit und ermöglicht es Ihnen, benutzerdefinierte Ereignisse für Anzeigen mit Prämie und Interscroller-Anzeigen zu erstellen, was zuvor nicht möglich war.
APIs
In der folgenden Tabelle sind die entsprechenden APIs für Vermittlungsadapter für benutzerdefinierte Ereignis-APIs aufgeführt, die ab Version 9.0.0 verwendet werden sollten.
v8 | v9 | |
---|---|---|
GADCustomEventBanner GADCustomEventInterstitial GADCustomEventNativeAd |
GADMediationAdapter | GADMediationBannerAd GADMediationInterstitialAd GADMediationInterscrollerAd GADMediationRewardedAd GADMediationNativeAd |
delegate
|
„Delegate“ wird vom Handler für den Abschluss des Ladevorgangs jeder Ladefunktion der Klasse GADMediationAdapter zurückgegeben.
|
|
-init |
-init |
|
-requestBannerAd:parameter: |
-loadBannerForAdConfiguration: |
|
-requestInterstitialAdWith |
-loadInterstitialFor |
|
-requestNativeAdWithParameter:
|
-loadNativeAdFor |
|
– | -loadInterscrollerAdFor |
|
– | -loadRewardedAdFor |
|
-presentFromRootViewController:
|
-presentFromViewController: |
|
-handlesUserClicks |
-handlesUserClicks |
|
-handlesUserImpressions |
-handlesUserImpressions |
Delegatmethoden
In der folgenden Tabelle sind die entsprechenden Delegatmethoden für Vermittlungsanzeigenereignisse den Delegatmethoden für benutzerdefinierte Ereignisse zugeordnet, die ab Version 9.0.0 verwendet werden sollten.
v8 | v9 | |
---|---|---|
GADCustomEventBannerDelegate GADCustomEventInterstitialDelegate GADCustomEventNativeAdDelegate |
GADMediationAdEventDelegate | GADMediationAd |
-customEventBanner:didReceiveAd: -customEventInterstitialDidReceiveAd:
|
Der Status der Anzeigenlast ist im Handler für den Abschluss der Last jeder Ladefunktion in der Klasse GADMediationAdapter enthalten.
|
|
-customEventBanner:didFailAd: -customEventInterstitial:didFailAd:
|
||
-customEventBannerWasClicked: -customEventInterstitialWasClicked:
|
-reportClick |
|
-customEventBannerWill -customEventInterstitialWill
|
-willPresentFullScreenView |
|
-customEventBannerWill -customEventInterstitialWill
|
-willDismissFullScreenView |
|
-customEventBannerDid -customEventInterstitialDid
|
-didDismissFullScreenView |
|
-customEventBannerWill -customEventInterstitialWill
|
-willBackgroundApplication |
|
viewControllerFor |
-[GADMediationBannerAd view] |
Weitere entfernte/ersetzte Methoden und Konstanten
Änderungen an Methode, Konstante oder Attribut | |
---|---|
kGAD- Konstanten mit Präfix
|
Entfernt. Verwenden Sie Konstanten mit dem Präfix GAD- .
|
GADAdNetworkResponseInfo
|
credentials wurden entfernt. Verwenden Sie stattdessen adUnitMapping .
|
GADCustomNativeAd
|
mediaView in GADCustomNativeAd wurde eingestellt.
Verwenden Sie stattdessen mediaContent .
|
In-App-Kauf-APIs in GoogleMobileAds |
Die inAppPurchase APIs in GoogleMobileAds wurden entfernt.
|
Von Version 7 zu Version 8 migrieren
Das Google Mobile Ads SDK 8.0.0 bringt größere Änderungen mit sich und es werden auch einige APIs umbenannt oder entfernt.
API-Aktualisierungen für Vollbildformat
Ab Version 8.0.0 haben Interstitial- und Prämienanzeigen ein gemeinsames generisches Vollbildanzeigenformat, um die Konsistenz zu erhöhen. Diese neuen Vollbildanzeigen-APIs unterscheiden sich in zwei wesentlichen Punkten von den Vollbildanzeigen-APIs der Version 7:
Statische Klassenmethode
load
:Bisher wurde eine Vollbildanzeige so geladen und präsentiert:
- Erstellen Sie eine Instanz des Anzeigenobjekts und speichern Sie einen Verweis darauf.
- Weisen Sie einen Delegaten zu, der die Callbacks zum Laden und Einblenden verarbeitet.
- Laden Sie eine Anzeige.
- Prüfen Sie mit
isReady
, ob die Anzeige geladen wurde. - Die Anzeige wird eingeblendet.
In Version 8 ändert sich der Ansatz leicht. Lade-Callbacks sind nicht mehr Teil eines Delegates. Stattdessen werden sie als Completion-Handler an die Methode
load
übergeben:- Rufen Sie eine statische Lademethode für die Anzeigenklasse auf und stellen Sie einen Handler für den Abschluss des Ladevorgangs bereit.
- Behalten Sie im Callback für den Ladevorgang eine Referenz auf die geladene Anzeige bei, die zurückgegeben wird.
- Weisen Sie einen Delegaten zu, der Show-Callbacks verarbeitet.
- Die Anzeige wird eingeblendet.
Der neue Ansatz bietet folgende Vorteile:
- Es gibt nie einen Verweis auf eine Anzeige, die nicht geladen wird.
- Sie müssen ein Anzeigenobjekt nicht beibehalten, während es geladen wird.
Konsistente Anzeigenereignisse:
Ereignistyp Vorhandene API v8 API Ladeereignisse GADInterstitialDelegate
oderGADRewardedAdDelegate
GADInterstitialAdLoadCompletionHandler
oderGADRewardedAdLoadCompletionHandler
Präsentationsereignisse GADFullScreenContentDelegate
Bisher mussten Sie eine Klasse registrieren, die das Protokoll
GADInterstitialDelegate
für die Delegate-Eigenschaft eines Interstitials implementiert, oder eine Klasse, die das ProtokollGADRewardedAdDelegate
für die Delegate-Eigenschaft einer Anzeige mit Prämie implementiert, je nachdem, welches Format Sie verwenden. Dieser Delegate hatte Methoden, die sich sowohl auf den Lade- als auch auf den Präsentationslebenszyklus einer Anzeige bezogen.In Version 8 sind Lade- und Präsentationsereignisse getrennt. Sie können jetzt jederzeit vor der Auslieferung einer Anzeige eine
GADFullScreenContentDelegate
registrieren. Bisher mussten Sie vor dem Laden der Anzeige einen einzelnen Delegaten festlegen. Anzeigenladeereignisse, die für jedes Format spezifisch sind, werden in einen einzelnen Handler für den Abschluss des Ladevorgangs verschoben, der in der Lademethode übergeben wird.
Interstitial
Anzeige laden
Die folgenden Code-Snippets zeigen, wie Sie eine Interstitial-Anzeige laden und auf Ereignisse warten, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt.
v7
Swift
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADInterstitialDelegate { var interstitial: GADInterstitial! override func viewDidLoad() { super.viewDidLoad() interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910") interstitial.delegate = self let request = GADRequest() interstitial.load(request) } /// Tells the delegate an ad request succeeded. func interstitialDidReceiveAd(_ ad: GADInterstitial) { print("Interstitial ad loaded.") } /// Tells the delegate an ad request failed. func interstitial(_ ad: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError) { print("Interstitial ad failed to load with error: \(error.localizedDescription)") } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController ()@property(nonatomic, strong) GADInterstitial *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.interstitial = [[GADInterstitial alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"]; self.interstitial.delegate = self; GADRequest *request = [GADRequest request]; [self.interstitial loadRequest:request]; } /// Tells the delegate an ad request succeeded. - (void)interstitialDidReceiveAd:(GADInterstitial *)ad { NSLog(@"Insterstitial ad loaded."); } /// Tells the delegate an ad request failed. - (void)interstitial:(GADInterstitial *)ad didFailToReceiveAdWithError:(GADRequestError *)error { NSLog(@"Interstitial ad failed to load with error: %@", [error localizedDescription]); }
v8
Swift
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADFullScreenContentDelegate { var interstitial: GADInterstitialAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-8123415297019784/4985798738", request: request, completionHandler: { (ad, error) in if let error = error { print("Failed to load interstitial ad with error: \(error.localizedDescription)") return } self.interstitial = ad self.interstitial.fullScreenContentDelegate = self } ) } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController ()@property(nonatomic, strong) GADInterstitialAd *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]); return; } self.interstitial = ad; self.interstitial.fullScreenContentDelegate = self; }]; }
Displayanzeige
v7
Swift
func showInterstitial() { ... if interstitial.isReady { interstitial.present(fromRootViewController: self) } else { print("Ad wasn't ready") } }
Objective-C
- (void)showInterstitial: { ... if (self.interstitial.isReady) { [self.interstitial presentFromRootViewController:self]; } else { NSLog(@"Ad wasn't ready"); } }
v8
Swift
func showInterstitial() { ... if let ad = interstitial { ad.present(fromRootViewController: self) } else { print("Ad wasn't ready") } }
Objective-C
- (void)showInterstitial: { ... if (self.interstitial) { [self.interstitial presentFromRootViewController:self]; } else { NSLog(@"Ad wasn't ready"); } }
Präsentationsanzeigenereignisse
Die folgenden Code-Snippets zeigen, wie Sie Callbacks für das Einblenden (erfolgreich oder nicht) und das Schließen der Anzeige verarbeiten.
v7
Swift
override func viewDidLoad() { super.viewDidLoad() interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910") interstitial.delegate = self ... } /// Tells the delegate that an interstitial will be presented. func interstitialWillPresentScreen(_ ad: GADInterstitial) { print("Interstitial ad will be presented.") } /// Tells the delegate the interstitial is to be animated off the screen. func interstitialWillDismissScreen(_ ad: GADInterstitial) { print("Interstitial ad will be dismissed.") } /// Tells the delegate the interstitial had been animated off the screen. func interstitialDidDismissScreen(_ ad: GADInterstitial) { print("Interstitial ad dismissed.") } /// Tells the delegate that a user click will open another app /// (such as the App Store), backgrounding the current app. /// /// This is not a reliable callback for an ad click event and is removed in /// version 8. If you wish to listen to an ad causing a user to leave the app, /// use applicationWillResignActive: or sceneWillResignActive: instead. func interstitialWillLeaveApplication(_ ad: GADInterstitial) { print("Interstitial ad will leave application.") }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; self.interstitial = [[GADInterstitial alloc] initWithAdUnitID:"ca-app-pub-3940256099942544/4411468910"]; self.interstitial.delegate = self; ... } /// Tells the delegate that an interstitial will be presented. - (void)interstitialWillPresentScreen:(GADInterstitial *)ad { NSLog(@"Interstitial ad will be presented."); } /// Tells the delegate the interstitial is to be animated off the screen. - (void)interstitialWillDismissScreen:(GADInterstitial *)ad { NSLog(@"Interstitial ad will be dismissed."); } /// Tells the delegate the interstitial had been animated off the screen. - (void)interstitialDidDismissScreen:(GADInterstitial *)ad { NSLog(@"Interstitial ad dismissed."); } /// Tells the delegate that a user click will open another app /// (such as the App Store), backgrounding the current app. /// /// This is not a reliable callback for an ad click event and is removed in /// version 8. If you wish to listen to an ad causing a user to leave the app, /// use applicationWillResignActive: or sceneWillResignActive: instead. - (void)interstitialWillLeaveApplication:(GADInterstitial *)ad { NSLog(@"Interstitial ad will leave application."); }
v8
Swift
override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-8123415297019784/4985798738", request: request, completionHandler: { (ad, error) in if let error = error { print(error.localizedDescription) return } self.interstitial = ad self.interstitial.fullScreenContentDelegate = self } ) } func adDidPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad did present full screen content.") } func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) { print("Ad failed to present full screen content with error \(error.localizedDescription).") } func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad did dismiss full screen content.") }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"interstitial:didFailToReceiveAdWithError: %@", [error localizedDescription]) return; } self.interstitial = ad; self.interstitial.fullScreenContentDelegate = self; }]; } - (void)adDidPresentFullScreenContent:(id)ad { NSLog(@"Ad did present full screen content."); } - (void)ad:(id )ad didFailToPresentFullScreenContentWithError:(NSError *)error { NSLog(@"Ad failed to present full screen content with error %@.", [error localizedDescription]); } - (void)adDidDismissFullScreenContent:(id )ad { NSLog(@"Ad did dismiss full screen content."); }
Verfügbar
Anzeige laden
v7
Swift
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADRewardedAdDelegate { /// The rewarded ad. var rewardedAd: GADRewardedAd? override func viewDidLoad() { super.viewDidLoad() rewardedAd = GADRewardedAd(adUnitID: "ca-app-pub-3940256099942544/1712485313") rewardedAd.delegate = self rewardedAd?.load(GADRequest()) { error in if let error = error { print("Rewarded ad failed to load with error: \(error.localizedDescription)") } else { print("Rewarded ad loaded.") } } } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController ()@property(nonatomic, strong) GADRewardedAd *rewardedAd; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.rewardedAd = [[GADRewardedAd alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313"]; self.rewardedAd.delegate = self; GADRequest *request = [GADRequest request]; [self.rewardedAd loadRequest:request completionHandler:^(GADRequestError * _Nullable error) { if (error) { NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]); } else { NSLog(@"Rewarded ad loaded."); } }]; }
v8
Swift
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADFullScreenContentDelegate { /// The rewarded ad. var rewardedAd: GADRewardedAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADRewardedAd.load(withAdUnitID: "ca-app-pub-8123415297019784/9501821136", request: request, completionHandler: { (ad, error) in if let error = error { print("Rewarded ad failed to load with error: \(error.localizedDescription)") return } self.rewardedAd = ad self.rewardedAd?.fullScreenContentDelegate = self } ) } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController ()@property(nonatomic, strong) GADRewardedAd *rewardedAd; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADRewardedAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313" request:request completionHandler:^(GADRewardedAd *ad, NSError *error) { if (error) { NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]); return; } self.rewardedAd = ad; NSLog(@"Rewarded ad loaded."); self.rewardedAd.fullScreenContentDelegate = self; }
Displayanzeige präsentieren und Prämie verarbeiten
Bei Anzeigen mit Prämie müssen Sie das Ereignis verarbeiten, wenn ein Nutzer eine Prämie erhält. In Version 7 der GADRewardedAd
API implementieren Sie rewardedAd:userDidEarnReward:
als Teil des GADRewardedAdDelegate
-Protokolls.
In Version 8 implementieren Sie GADUserDidEarnRewardHandler
, um die Anzeige zu präsentieren.
v7
Swift
func showRewardedAd() { ... if rewardedAd.isReady { rewardedAd.present(fromRootViewController: self delegate:self) } else { print("Ad wasn't ready") } } /// Tells the delegate that the user earned a reward. func rewardedAd(_ rewardedAd: GADRewardedAd, userDidEarnReward: GADAdReward) { // TODO: Reward the user. }
Objective-C
- (void)showRewardedAd: { ... if (self.rewardedAd.isReady) { [self.rewardedAd presentFromRootViewController:self delegate:self]; } else { NSLog(@"Ad wasn't ready"); } } /// Tells the delegate that the user earned a reward. - (void)rewardedAd:(GADRewardedAd *)rewardedAd userDidEarnReward:(GADAdReward *)reward { // TODO: Reward the user. }
v8
Swift
func showRewardedAd() { ... if let ad = rewardedAd { ad.present(fromRootViewController: self, userDidEarnRewardHandler: { let reward = ad.adReward // TODO: Reward the user. } ) } else { print("Ad wasn't ready") } }
Objective-C
- (void)showRewardedAd: { ... if (self.rewardedAd) { [self.rewardedAd presentFromRootViewController:self userDidEarnRewardHandler:^ { GADAdReward *reward = self.rewardedAd.adReward; // TODO: Reward the user. }]; } else { NSLog(@"Ad wasn't ready"); } }
Präsentationsanzeigenereignisse
Mit der GADRewardedAd
API übergeben Sie einen GADRewardedAdDelegate
an die Methode, mit der die Anzeige präsentiert wird. Mit der GADRewardedAd
API legen Sie vor der Präsentation der Anzeige eine GADFullscreenContentDelegate
als Attribut für die Anzeige fest.
v7
Swift
func showRewardedAd() { ... if rewardedAd.isReady { rewardedAd.present(fromRootViewController: self delegate:self) } else { print("Ad wasn't ready") } } /// Tells the delegate that the rewarded ad was presented. func rewardedAdDidPresent(_ rewardedAd: GADRewardedAd) { print("Rewarded ad presented.") } /// Tells the delegate that the rewarded ad was dismissed. func rewardedAdDidDismiss(_ rewardedAd: GADRewardedAd) { print("Rewarded ad dismissed.") } /// Tells the delegate that the rewarded ad failed to present. func rewardedAd(_ rewardedAd: GADRewardedAd, didFailToPresentWithError error: Error) { print("Rewarded ad failed to present with error: \(error.localizedDescription).") }
Objective-C
- (void)showRewardedAd: { ... if (self.rewardedAd.isReady) { [self.rewardedAd presentFromRootViewController:self delegate:self]; } else { NSLog(@"Ad wasn't ready"); } } /// Tells the delegate that the rewarded ad was presented. - (void)rewardedAdDidPresent:(GADRewardedAd *)rewardedAd { NSLog(@"Rewarded ad presented."); } /// Tells the delegate that the rewarded ad failed to present. - (void)rewardedAd:(GADRewardedAd *)rewardedAd didFailToPresentWithError:(NSError *)error { NSLog(@"Rewarded ad failed to present with error: %@", [error localizedDescription]); } /// Tells the delegate that the rewarded ad was dismissed. - (void)rewardedAdDidDismiss:(GADRewardedAd *)rewardedAd { NSLog(@"Rewarded ad dismissed."); }
v8
Swift
override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADRewardedAd.load(withAdUnitID: "ca-app-pub-8123415297019784/9501821136", request: request, completionHandler: { (ad, error) in if let error = error { print(error.localizedDescription) return } self.rewardedAd = ad self.rewardedAd?.fullScreenContentDelegate = self } ) } /// Tells the delegate that the rewarded ad was presented. func adDidPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Rewarded ad presented.") } /// Tells the delegate that the rewarded ad was dismissed. func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Rewarded ad dismissed.") } /// Tells the delegate that the rewarded ad failed to present. func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) { print("Rewarded ad failed to present with error: \(error.localizedDescription).") }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADRewardedAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313" request:request completionHandler:^(GADRewardedAd *ad, NSError *error) { if (error) { NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]); return; } self.rewardedAd = ad; NSLog(@"Rewarded ad loaded."); self.rewardedAd.fullScreenContentDelegate = self; } /// Tells the delegate that the rewarded ad was presented. - (void)adDidPresentFullScreenContent:(id)ad { NSLog(@"Rewarded ad presented."); } /// Tells the delegate that the rewarded ad failed to present. - (void)ad:(id )ad didFailToPresentFullScreenContentWithError:(NSError *)error { NSLog(@"Rewarded ad failed to present with error: %@", [error localizedDescription]); } /// Tells the delegate that the rewarded ad was dismissed. - (void)adDidDismissFullScreenContent:(id )ad { NSLog(@"Rewarded ad dismissed."); }
Entfernung der alten GADRewardedBasedVideoAd API
Die neuere GADRewardedAd
API wurde 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 alten GADRewardedBasedVideoAd
API weiter verbessert. So können Sie beispielsweise mehr als eine Anzeige mit Prämie gleichzeitig laden.
Die Legacy-API GADRewardedBasedVideoAd
wurde in SDK-Version 8.0.0 entfernt.
Smart-Banner werden zugunsten adaptiver Banner eingestellt
Smart-Banner-Anzeigen werden zugunsten von adaptiven Bannern eingestellt. Adaptive Banner bieten eine bessere Leistung und mehr Flexibilität bei der Festlegung der Anzeigenbreite. Wenn Sie weiterhin Banner in voller Breite verwenden möchten, ist das mit adaptiven Bannern möglich, wie im folgenden Code-Snippet gezeigt:
Swift
class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) // Note: The safe area is not known until viewWillAppear. let adSize = getFullWidthAdaptiveAdSize() } func getFullWidthAdaptiveAdSize() -> GADAdSize { // Here safe area is taken into account, hence the view frame is used after the // view has been laid out. let frame = { () -> CGRect in if #available(iOS 11.0, *) { return view.frame.inset(by: view.safeAreaInsets) } else { return view.frame } }() return GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(frame.size.width) } }
Objective-C
@implementation ViewController - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // Note: The safe area is not known until viewWillAppear. GADAdSize adSize = [self getFullWidthAdaptiveAdSize]; } - (GADAdSize)getFullWidthAdaptiveAdSize { CGRect frame = self.view.frame; // Here safe area is taken into account, hence the view frame is used after // the view has been laid out. if (@available(iOS 11.0, *)) { frame = UIEdgeInsetsInsetRect(self.view.frame, self.view.safeAreaInsets); } return GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(frame.size.width); } @end
Callback zum Verlassen der Anwendung entfernen
Der willLeaveApplication
-Callback für alle Anzeigenformate wurde zugunsten der Methoden applicationDidEnterBackground:
und sceneDidEnterBackground:
entfernt. Mit APIs auf Betriebssystemebene werden Sie benachrichtigt, wenn Nutzer Ihre App verlassen, unabhängig davon, ob dies auf eine Anzeigeninteraktion zurückzuführen ist.
Der willLeaveApplication
-Callback war nie als Handler für Anzeigenklicks gedacht. Wenn Sie sich auf diesen Callback verlassen haben, um Klicks zu melden, haben Sie keinen genauen Messwert erhalten. Ein Klick auf das AdChoices-Symbol, durch den ein externer Browser geöffnet wurde, hat beispielsweise den Callback aufgerufen, aber keinen Klick gezählt.
Umbenennen von Kursen
In der folgenden Tabelle sind bestimmte Klassennamen aufgeführt, die sich in Version 8 geändert haben oder entfernt wurden. Zusammenfassung:
- Alle Klassen, die mit
GADUnifiedNativeAd
zusammenhängen, wurden inGADNativeAd
umbenannt. GADRewardBasedVideoAd
,GADNativeExpressAdView
undGADInstreamAd
wurden entfernt.- Alle Klassen mit dem Präfix
DFP
wurden durch ein PräfixGAM
ersetzt.
Klasse v7.68.0 | Klasse v8.0.0 |
---|---|
DFPBannerView | GAMBannerView |
DFPBannerViewOptions | GAMBannerViewOptions |
DFPInterstitial | GAMInterstitialAd |
DFPRequest | GAMRequest |
GADRequestError | NSError |
GADUnifiedNativeAdView | GADNativeAdView |
GADUnifiedNativeAd | GADNativeAd |
GADUnifiedNativeAdAssetIdentifiers | GADNativeAdAssetIdentifiers |
GADUnifiedNativeAdDelegate | GADNativeAdDelegate |
GADUnifiedNativeAdUnconfirmedClickDelegate | GADNativeAdUnconfirmedClickDelegate |
GADNativeCustomTemplateAd | GADCustomNativeAd |
GADNativeCustomTemplateAdLoaderDelegate | GADCustomNativeAdLoaderDelegate |
GADNativeAdDelegate | GADCustomNativeAdDelegate |
GADInAppPurchase | Entfernt |
GADInterstitial | GADInterstitialAd |
GADNativeExpressAdView | Entfernt |
GADRewardBasedVideoAd | Entfernt |
GADInstreamAd | Entfernt |
GADInstreamAdView | Entfernt |
Entfernte/ersetzte Methoden
In der Tabelle unten sind die spezifischen Änderungen in Version 8 aufgeführt. Zusammenfassung:
- Zuvor verworfene Methoden und Eigenschaften wurden entfernt.
-willLeaveApplication:
-Delegatmethoden wurden für alle Formate entfernt.- Der Klassenname des Werbenetzwerks wurde in die Property
GADResponseInfo
verschoben. - Die Testgeräte-ID wurde in die Property
GADRequestConfiguration
verschoben.
Klasse v7.68.0 | v7.68.0 API | v8.0.0 API | Hinweise |
---|---|---|---|
GADMobileAds | +configureWithApplicationID: | -startWithCompletionHandler: | Die App-ID ist jetzt in Info.plist festgelegt. |
+disableAutomatedInApp |
-disableAutomatedInApp |
||
+disableSDKCrashReporting | -disableSDKCrashReporting | ||
GADRequest | testDevices | GADRequestConfiguration |
Die Property „testDeviceIdentifiers“ gilt für alle Anzeigenanfragen, während die alte Property „testDevices“ pro Anfrage festgelegt wurde. |
gender | Entfernt | ||
Geburtstag | Entfernt | ||
+sdkVersion | GADMobileAds.sharedInstance |
||
-setBirthday |
Entfernt | ||
-setLocationWithDescription: | -setLocationWith |
||
-tagForChildDirectedTreatment: | [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment] | ||
GADErrorCode | kGADError* | GADError* | Das Präfix k wird aus allen Fehlercodekonstanten entfernt.
|
GADBannerView | hasAutoRefreshed | autoloadEnabled | |
inAppPurchaseDelegate | Entfernt | ||
mediatedAdView | Entfernt | ||
adNetworkClassName | responseInfo |
||
DFPBannerView | -setValidAdSizesWithSizes: | -setValidAdSizes: | |
DFPBannerViewOptions | -adSizeDelegate | Entfernt | |
GADBannerViewDelegate | -adViewDidReceiveAd: | -bannerViewDidReceiveAd: | |
-adView:didFailToReceive |
-bannerView:didFailToReceive |
||
-adViewWillPresentScreen: | -bannerViewWillPresentScreen: | ||
-adViewWillDismissScreen: | -bannerViewWillDismissScreen: | ||
-adViewDidDismissScreen: | -bannerViewDidDismissScreen: | ||
-adViewWillLeaveApplication: | Entfernt | ||
GADNativeCustomTemplateAd | templateID | GADCustomNativeAd.formatID | |
-performClickOnAssetWithKey: |
-performClickOnAssetWithKey: | ||
GADNativeAdImageAd |
preferredImageOrientation | GADNativeAdMediaAdOptions |
|
GADInterstitial | inAppPurchaseDelegate | Entfernt | |
isReady | Entfernt | Verwenden Sie stattdessen canPresentFrom |
|
hasBeenUsed | Entfernt | ||
-init | -initWithAdUnitID: | ||
-setAdUnitID: | -initWithAdUnitID: | ||
adNetworkClassName | responseInfo |
||
-interstitialWill |
Entfernt | ||
GADUnifiedNativeAd | videoController | mediaContent.videoController | |
adNetworkClassName | responseInfo |