SDK-Migration

Plattform auswählen:Android iOS Unity

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 in AdManager umbenannt.
  • Das Präfix GADM wurde in Mediation 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

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
  • Das Gerät wird in testDeviceIdentifiers ausdrücklich als Testgerät deklariert.
  • Das Gerät wird in testDeviceIdentifiers ausdrücklich als Testgerät deklariert.
  • Das Gerät ist ein Simulator.
  • Das Gerät wird in der AdMob-Benutzeroberfläche ausdrücklich als Testgerät deklariert.

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:label:request: -loadBannerForAdConfiguration:completionHandler:
-requestInterstitialAdWithParameter:label:request: -loadInterstitialForAdConfiguration:completionHandler:
-requestNativeAdWithParameter:request:adTypes:options:rootViewController: -loadNativeAdForAdConfiguration:completionHandler:
-loadInterscrollerAdForAdConfiguration:completionHandler:
-loadRewardedAdForAdConfiguration:completionHandler:
-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
-customEventBannerWillPresentModal:
-customEventInterstitialWillPresentModal:
-willPresentFullScreenView
-customEventBannerWillDismissModal:
-customEventInterstitialWillDismissModal:
-willDismissFullScreenView
-customEventBannerDidDismissModal:
-customEventInterstitialDidDismissModal:
-didDismissFullScreenView
-customEventBannerWillLeaveApplication:
-customEventInterstitialWillLeaveApplication:
-willBackgroundApplication
viewControllerForPresentingModalView -[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:

  1. Statische Klassenmethode load:

    Bisher wurde eine Vollbildanzeige so geladen und präsentiert:

    1. Erstellen Sie eine Instanz des Anzeigenobjekts und speichern Sie einen Verweis darauf.
    2. Weisen Sie einen Delegaten zu, der die Callbacks zum Laden und Einblenden verarbeitet.
    3. Laden Sie eine Anzeige.
    4. Prüfen Sie mit isReady, ob die Anzeige geladen wurde.
    5. 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:

    1. Rufen Sie eine statische Lademethode für die Anzeigenklasse auf und stellen Sie einen Handler für den Abschluss des Ladevorgangs bereit.
    2. Behalten Sie im Callback für den Ladevorgang eine Referenz auf die geladene Anzeige bei, die zurückgegeben wird.
    3. Weisen Sie einen Delegaten zu, der Show-Callbacks verarbeitet.
    4. 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.
  2. Konsistente Anzeigenereignisse:

    Ereignistyp Vorhandene API v8 API
    Ladeereignisse GADInterstitialDelegate oder GADRewardedAdDelegate GADInterstitialAdLoadCompletionHandler oder GADRewardedAdLoadCompletionHandler
    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 Protokoll GADRewardedAdDelegate 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 in GADNativeAd umbenannt.
  • GADRewardBasedVideoAd, GADNativeExpressAdView und GADInstreamAd wurden entfernt.
  • Alle Klassen mit dem Präfix DFP wurden durch ein Präfix GAM 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.
+disableAutomatedInAppPurchaseReporting -disableAutomatedInAppPurchaseReporting
+disableSDKCrashReporting -disableSDKCrashReporting
GADRequest testDevices GADRequestConfiguration.testdeviceidentifiers 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.sdkVersion
-setBirthdayWithMonth:day:year: Entfernt
-setLocationWithDescription: -setLocationWithLatitude:longitude:accuracy:
-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.adNetworkClassName
DFPBannerView -setValidAdSizesWithSizes: -setValidAdSizes:
DFPBannerViewOptions -adSizeDelegate Entfernt
GADBannerViewDelegate -adViewDidReceiveAd: -bannerViewDidReceiveAd:
-adView:didFailToReceiveAdWithError: -bannerView:didFailToReceiveAdWithError:
-adViewWillPresentScreen: -bannerViewWillPresentScreen:
-adViewWillDismissScreen: -bannerViewWillDismissScreen:
-adViewDidDismissScreen: -bannerViewDidDismissScreen:
-adViewWillLeaveApplication: Entfernt
GADNativeCustomTemplateAd templateID GADCustomNativeAd.formatID
-performClickOnAssetWithKey:customClickHandler: -performClickOnAssetWithKey:
GADNativeAdImageAdLoaderOptions preferredImageOrientation GADNativeAdMediaAdOptions.mediaAspectRatio
GADInterstitial inAppPurchaseDelegate Entfernt
isReady Entfernt Verwenden Sie stattdessen canPresentFromRootViewController:error:.
hasBeenUsed Entfernt
-init -initWithAdUnitID:
-setAdUnitID: -initWithAdUnitID:
adNetworkClassName responseInfo.adNetworkClassName
-interstitialWillLeaveApplication: Entfernt
GADUnifiedNativeAd videoController mediaContent.videoController
adNetworkClassName responseInfo.adNetworkClassName