SDK-Versionen migrieren

Auf dieser Seite werden Migrationen für aktuelle und frühere Versionen von Google Mobile Ads SDK für iOS beschrieben. Wir planen, Version 13.0.0 im Februar 2026 zu veröffentlichen.

Von v12 zu v13 migrieren

Erhöhtes Mindestbereitstellungsziel

Das Mindestbereitstellungsziel wurde auf iOS 13 erhöht.

Änderungen an den APIs für die Größe adaptiver Ankerbanner

In Version 13.0.0 werden die vorhandenen APIs für die Größe adaptiver Ankerbanner eingestellt und APIs für die Größe großer adaptiver Ankerbanneranzeigen eingeführt. Google Mobile Ads SDK kann die Videonachfrage für Banneranzeigen über die neuen APIs für große adaptive Ankerbanner bedienen.

In der folgenden Tabelle sind die eingestellten Größen-APIs und ihre Ersatz-APIs aufgeführt:

v12 (eingestellt) v13 (Ersatz)
GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width) GADLargeAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width)
GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width) GADLargeLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width)
GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width) GADLargePortraitAnchoredAdaptiveBannerAdSizeWithWidth(CGFloat width)

Fortlaufende Unterstützung der Nebenläufigkeit in Swift 6

In Version 13.0.0 wird die Unterstützung für die strikte Nebenläufigkeit von Swift 6 weiter ausgebaut.

Strengere Typerzwingung für neighboringContentURLStrings-Array hinzugefügt

Ab Version 13.0.0 löst Google Mobile Ads SDK eine Ausnahme aus, wenn im Array neighboringContentURLStrings ein Objekt erkannt wird, das nicht vom Typ String ist.

Von v11 zu v12 migrieren

Upgrade auf Xcode 16.0

Die unterstützte Xcode-Mindestversion wurde auf 16.0 erhöht.

Unterstützung für Swift-Namen

Version 12.0.0 enthält Änderungen, die den Namenskonventionen in den API-Designrichtlinien für Swift entsprechen. Diese Änderungen betreffen nur Swift. An den Objective-C APIs wurden keine Namensänderungen vorgenommen.

Änderungen am Klassenpräfix

An den Klassenpräfixen wurden die folgenden Änderungen vorgenommen:

  • Das Präfix GAD wurde aus den Namen aller Typen entfernt.
  • Das Präfix GAM wurde in AdManager umbenannt.
  • Das Präfix GADM wurde in Mediation umbenannt.

Fehler beheben

Am besten beheben Sie Fehler, die sich aus diesen Änderungen ergeben, indem Sie eine Korrektur vornehmen.

Namenskonflikte lösen

Verwenden Sie den vom Modul bereitgestellten Namespace, um Namenskonflikte zu beheben. Beispiel: GADRequest heißt jetzt Request. Im folgenden Beispiel wird die Klasse Request im Namespace Google Mobile Ads SDK verwendet:

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:)

Benutzerdefinierte Targeting-Parameter festlegen

Verwenden Sie customTargeting, um benutzerdefiniertes Targeting für eine Anzeigenanfrage festzulegen.

API-Änderungen zur Steuerung der Videostummschaltung

Das Attribut isMuted und die Methode setMute: für GADVideoController werden durch das Attribut muted ersetzt.

Änderungen bei adaptiven Inline-Anzeigen

Zur Optimierung der Platznutzung belegen adaptive Inline-Anzeigen anfangs keinen Platz im Frame. Wenn Sie CGSizeFromGADAdSize(_:) mit einer adaptiven Inline-Anzeigengröße 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 im Testmodus.

Änderungen am benutzerdefinierten Targeting

Das Wörterbuch customTargeting in GADRequest verwendet jetzt Any anstelle von String als Werttyp. So können Sie numerische Werte an die API übergeben.

Änderungen an Extras-Parametern

  • Wenn Sie Schlüssel an additionalParameters übergeben, wird kein benutzerdefiniertes Targeting mehr auf Ad Manager-Anzeigenanfragen angewendet. Informationen zum Anwenden von benutzerdefiniertem Targeting finden Sie unter Benutzerdefiniertes Targeting.

Von v10 zu v11 migrieren

Mindestbereitstellungsziel

Das Mindest-Deployment-Target wurde auf iOS 12 erhöht.

Xcode-Mindestversion

Die unterstützte Mindestversion von Xcode wurde auf 15.1 erhöht.

Anzeigen werden unter iOS 12 nicht mehr ausgeliefert

Mit der Google Mobile Ads SDK-Version 11.0.0 werden Anzeigen nur auf Geräten mit iOS 13 und höher ausgeliefert.

Die Abhängigkeit von GoogleAppMeasurement wurde entfernt.

In Version 11.0.0 wurde die Abhängigkeit von GoogleAppMeasurement entfernt. Diese Abhängigkeit, die den Ein/Aus-Button für Nutzermesswerte in AdMob unterstützt hat, wird Anfang 2024 eingestellt. Wenn Sie weiterhin Nutzermesswerte in AdMob erfassen möchten, können Sie Ihre AdMob-App mit Firebase verknüpfen und das Google Analytics for Firebase SDK in Ihre App einbinden.

Änderungen an der Präsentation von Vollbildanzeigen

Die folgenden Änderungen betreffen die verschiedenen Anzeigenformate:

  • App-Start
  • Interstitial
  • Verfügbar
  • Interstitial mit Prämie

Der Ansichtscontroller-Parameter in -canPresentFromRootViewController:error: und -presentFromRootViewController: kann null sein. Wenn „nil“ übergeben wird, wird die Anzeige über den obersten Ansichts-Controller in der Ansichts-Controller-Hierarchie 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) Verwende stattdessen die Property tagForUnderAgeOfConsent.
tag(forChildDirectedTreatment childDirectedTreatment: Bool) Verwende stattdessen die Property tagForChildDirectedTreatment.

Unterkünfte entfernt

Die folgenden Attribute werden entfernt.

v11.0.0-Klasse 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 ohne Ersatz entfernt.

Änderungen am Logging der SDK-Version

In Version 11.0.0 wird sdkVersion entfernt. Verwenden Sie stattdessen versionNumber, um die Google Mobile Ads SDK-Version zu protokollieren.

Version 10.0.0

GADMobileAds.sharedInstance().sdkVersion

Version 11.0.0

GADGetStringFromVersionNumber(GADMobileAds.sharedInstance().versionNumber)

Änderungen an der Fehlerbehandlung von GADAdLoader

Ab Version 11.0.0 wird von GADAdLoader keine Anzeigenanfrage gestellt, wenn das delegate nicht dem Delegatprotokoll der angeforderten Anzeigentypen entspricht. Zuvor ist sie nach der Anzeigenanfrage fehlgeschlagen.

Änderungen am Testverhalten

In der Tabelle unten sehen Sie die aktualisierten Bedingungen, unter denen die folgenden Properties true zurückgeben.

Klasse Attribut
GADMediationAdConfiguration isTestRequest
GADCustomEventRequest isTesting
v10.0.0 v11.0.0
  • Das Gerät ist in testDeviceIdentifiers explizit als Testgerät deklariert.
  • Das Gerät ist in testDeviceIdentifiers explizit als Testgerät deklariert.
  • Das Gerät ist ein Simulator.
  • Das Gerät ist auf der Ad Manager-Benutzeroberfläche explizit als Testgerät deklariert.

Von v9 zu v10 migrieren

Anzeigen werden unter iOS 11 nicht mehr ausgeliefert

Mit der Google Mobile Ads SDK-Version 10.0.0 werden Anzeigen nur auf Geräten mit iOS 12 und höher ausgeliefert.

Ein Upgrade auf Version 10.0.0 des Google Mobile Ads SDK führt nicht dazu, dass Ihre App auf iOS 11- und iOS 10-Geräten nicht mehr funktioniert. Auf diesen Geräten werden jedoch keine Anzeigen ausgeliefert.

Anforderung der Ad Manager-App-ID

Die Ad Manager-App-ID ist jetzt in Info.plist für alle Ad Manager-Apps erforderlich und muss das Format ca-app-pub-################~########## haben. Weitere Informationen finden Sie unter Info.plist aktualisieren.

Anforderung von GoogleAppMeasurement.xcframework

GoogleAppMeasurement.xcframework ist jetzt für alle Ad Manager-Apps erforderlich. Wenn Sie Google Mobile Ads SDK über Cocoapods oder Swift Package Manager installieren, sind keine weiteren Maßnahmen erforderlich. Wenn Sie Frameworks manuell installieren, finden Sie weitere Informationen unter Manueller Download.

Das Erstellen mit Bitcode wird nicht mehr unterstützt

Wenn Sie das Google Mobile Ads SDK einbinden möchten, müssen Sie Bitcode in Ihren mobilen Apps deaktivieren.

Typen entfernt

Typ Hinweise
GADGender Kein Ersatz.
GADMRewardBasedVideoAdNetworkAdapterProtocol Alle Adapter für die Vermittlung von Anzeigen mit Prämie, die unter Netzwerke auswählen aufgeführt sind, verwenden diese Protokolle seit über einem Jahr nicht mehr. Verwenden Sie GADMediationAdapter für die Vermittlung und benutzerdefinierte Ereignisse.
GADMRewardBasedVideoAdNetworkConnectorProtocol

Unterkünfte entfernt

Die folgenden Attribute werden ohne Ersatz entfernt.

v10.0.0-Klasse Attribut
GADMediationAdRequest userBirthday
userGender
userHasLocation
userLatitude
userLongitude
userLocationAccuracyInMeters
userLocationDescription
GADCustomEventRequest userHasLocation
userLatitude
userLongitude
userLocationAccuracyInMeters
userLocationDescription

Von v8 zu v9 migrieren

Anzeigen werden unter iOS 10 nicht mehr ausgeliefert

Die niedrigste iOS-Version, die von Google Mobile Ads SDK Version 9.0.0 unterstützt wird, ist iOS 11.

Ein Upgrade auf Version 9.0.0 von Google Mobile Ads SDK führt nicht dazu, dass Ihre App auf iOS 10-Geräten nicht mehr funktioniert. Es werden jedoch keine Anzeigen mehr auf diesen Geräten ausgeliefert.

Strengere Durchsetzung von Statusleisten-Steuerelementen

Ab Version 9.0.0 müssen Sie bei der Präsentation von Vollbildanzeigen dafür sorgen, dass die Anzeigen die Darstellung der Statusleiste steuern können. Andernfalls wird in den Logs eine Fehlermeldung angezeigt.

Je nach Layout der Ansichts-Controller 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 das rootViewController-Objekt Ihrer Anzeige festlegen müssen.

„adDidPresentFullScreenContent:“ in „adWillPresentFullScreenContent:“ umbenennen

Es gibt keine Verhaltensänderung. Die Delegatmethode wird unmittelbar vor der Präsentation der Anzeige aufgerufen. Der neue Methodenname spiegelt die Funktion also besser wider.

API für Standorteinstellungen aus GADRequest entfernen

- (void)setLocationWithLatitude:longitude:accuracy: wurde aus GADRequest gelöscht, da Google Standortdaten nicht für die Ausrichtung von Anzeigen verwendet. Verwenden Sie bei Bedarf APIs von Drittanbietern, um die Informationen an Werbenetzwerke von Drittanbietern weiterzugeben.

Einstellung von Schnittstellen für benutzerdefinierte Ereignisse

Mit benutzerdefinierten Ereignissen können Publisher, die die Ad Manager-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 erzielen. 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, die zuvor nicht verfügbar waren.

APIs

In der folgenden Tabelle sind die entsprechenden APIs für Vermittlungsadapter für APIs für benutzerdefinierte Ereignisse aufgeführt, die ab Version 9.0.0 verwendet werden sollten.

v8 v9
GADCustomEventBanner
GADCustomEventInterstitial
GADCustomEventNativeAd
GADMediationAdapter GADMediationBannerAd
GADMediationInterstitialAd
GADMediationInterscrollerAd
GADMediationRewardedAd
GADMediationNativeAd
delegate Der 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 aufgeführt, die ab Version 9.0.0 verwendet werden sollten.

v8 v9
GADCustomEventBannerDelegate
GADCustomEventInterstitialDelegate
GADCustomEventNativeAdDelegate
GADMediationAdEventDelegate GADMediationAd
-customEventBanner:didReceiveAd:
-customEventInterstitialDidReceiveAd:
Der Status des Anzeigenladens ist im Handler für den Abschluss des Ladevorgangs 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]

Andere entfernte/ersetzte Methoden und Konstanten

Änderungen an Methode, Konstante oder Attribut
kGAD- Präfix-Konstanten Entfernt. Verwenden Sie Konstanten mit dem Präfix GAD-.
GADAdNetworkResponseInfo credentials wurden entfernt. Verwenden Sie stattdessen adUnitMapping.
GAMRequest kGAMSimulatorID in GAMRequest wurde verworfen. Verwenden Sie stattdessen GADSimulatorID in GADRequestConfiguration.
GADCustomNativeAd mediaView in GADCustomNativeAd wurde verworfen. Verwenden Sie stattdessen mediaContent.
In-App-Kauf-APIs in GoogleMobileAds inAppPurchase-APIs in GoogleMobileAds wurden entfernt.

Von v7 zu v8 migrieren

In der Google Mobile Ads SDK-Version 8.0.0 werden einige wichtige Änderungen eingeführt und einige APIs umbenannt oder entfernt.

API-Updates für Vollbildformate

Ab Version 8.0.0 haben Interstitials und Anzeigen mit Prämie ein einheitliches Vollbildanzeigen-Design, um für mehr Konsistenz zu sorgen. Diese neuen APIs für Vollbildanzeigen unterscheiden sich in zwei wesentlichen Punkten von den APIs für Vollbildanzeigen in Version 7:

  1. Statische Klassenmethode load.

    Der bisherige Ansatz zum Laden/Anzeigen einer Vollbildanzeige sieht so aus:

    1. Erstellen Sie eine Anzeigenobjektinstanz und speichern Sie einen Verweis darauf.
    2. Weisen Sie einen Bevollmächtigten zu, der Callbacks zum Laden und Einblenden verarbeitet.
    3. Anzeige laden
    4. Mit isReady prüfen, ob die Anzeige geladen wurde.
    5. Anzeige einblenden.

    In Version 8 ändert sich der Ansatz leicht. Lade-Callbacks sind nicht mehr Teil eines Bevollmächtigten. Stattdessen werden sie als Completion Handler an die Methode load übergeben:

    1. Rufen Sie eine statische Lademethode für die Anzeigenklasse auf und geben Sie einen Handler für den Abschluss des Ladevorgangs an.
    2. Behalten Sie im Callback für den Abschluss des Ladevorgangs einen Verweis auf die geladene Anzeige bei, die zurückgegeben wird.
    3. Weisen Sie einen Bevollmächtigten zu, der Callbacks für die Anzeige verarbeitet.
    4. Anzeige einblenden.

    Der neue Ansatz bietet folgende Vorteile:

    • Sie erhalten nie einen Verweis auf eine Anzeige, die nicht geladen ist.
    • Sie müssen ein Anzeigenobjekt nicht beibehalten, während es geladen wird.
  2. Konsistente Anzeigenereignisse:

    Ereignistyp Vorhandene API v8 API
    Ereignisse laden GADInterstitialDelegate oder GADRewardedAdDelegate GAMInterstitialAdLoadCompletionHandler oder GADRewardedAdLoadCompletionHandler
    Präsentationsereignisse GADFullScreenContentDelegate

    Bisher mussten Sie, um auf Anzeigenereignisse zu warten, je nach verwendetem Format eine Klasse, die das Protokoll GADInterstitialDelegate implementiert, für die Delegate-Eigenschaft einer Interstitial-Anzeige registrieren oder eine Klasse, die das Protokoll GADRewardedAdDelegate implementiert, für die Delegate-Eigenschaft einer Anzeige mit Prämie registrieren. Dieser Delegat 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 voneinander getrennt. Sie können jetzt jederzeit vor der Auslieferung einer Anzeige einen GADFullScreenContentDelegate registrieren, anstatt vor dem Laden der Anzeige einen einzelnen Bevollmächtigten festlegen zu müssen. 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

In den folgenden Code-Snippets sehen Sie, wie Sie eine Interstitial-Anzeige laden und auf Ereignisse warten, wenn die Anzeige erfolgreich geladen wird oder nicht.

v7

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADInterstitialDelegate {

  var interstitial: DFPInterstitial!

  override func viewDidLoad() {
    super.viewDidLoad()
    interstitial = DFPInterstitial(adUnitID: "/21775744923/example/interstitial")
    interstitial.delegate = self
    let request = GAMRequest()
    interstitial.load(request)
  }

  /// Tells the delegate an ad request succeeded.
  func interstitialDidReceiveAd(_ ad: DFPInterstitial) {
    print("Interstitial ad loaded.")
  }

  /// Tells the delegate an ad request failed.
  func interstitial(_ ad: DFPInterstitial, didFailToReceiveAdWithError error: GADRequestError) {
    print("Interstitial ad failed to load with error: \(error.localizedDescription)")
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController () 

@property(nonatomic, strong) DFPInterstitial *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  self.interstitial = [[DFPInterstitial alloc]
      initWithAdUnitID:@"/21775744923/example/interstitial"];
  self.interstitial.delegate = self;
  GAMRequest *request = [GAMRequest request];
  [self.interstitial loadRequest:request];
}

/// Tells the delegate an ad request succeeded.
- (void)interstitialDidReceiveAd:(DFPInterstitial *)ad {
  NSLog(@"Insterstitial ad loaded.");
}

/// Tells the delegate an ad request failed.
- (void)interstitial:(DFPInterstitial *)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: GAMInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GAMRequest()
    GAMInterstitialAd.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) GAMInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GAMRequest *request = [GAMRequest request];
  [GAMInterstitialAd loadWithAdUnitID:@"/21775744923/example/interstitial"
                              request:request
                    completionHandler:^(GAMInterstitialAd *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");
  }
}

Anzeigenereignisse für Präsentationen

Die folgenden Code-Snippets zeigen, wie Callbacks verarbeitet werden, wenn die Anzeige erfolgreich oder nicht erfolgreich präsentiert und wenn sie geschlossen wird.

v7

Swift

override func viewDidLoad() {
  super.viewDidLoad()
  interstitial = DFPInterstitial(adUnitID: "/21775744923/example/interstitial")
  interstitial.delegate = self
  ...
}

/// Tells the delegate that an interstitial will be presented.
func interstitialWillPresentScreen(_ ad: DFPInterstitial) {
  print("Interstitial ad will be presented.")
}

/// Tells the delegate the interstitial is to be animated off the screen.
func interstitialWillDismissScreen(_ ad: DFPInterstitial) {
  print("Interstitial ad will be dismissed.")
}

/// Tells the delegate the interstitial had been animated off the screen.
func interstitialDidDismissScreen(_ ad: DFPInterstitial) {
  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: DFPInterstitial) {
  print("Interstitial ad will leave application.")
}

Objective-C

- (void)viewDidLoad {
  [super viewDidLoad];
  self.interstitial = [[DFPInterstitial alloc] initWithAdUnitID:"/21775744923/example/interstitial"];
  self.interstitial.delegate = self;
  ...
}

/// Tells the delegate that an interstitial will be presented.
- (void)interstitialWillPresentScreen:(DFPInterstitial *)ad {
  NSLog(@"Interstitial ad will be presented.");
}

/// Tells the delegate the interstitial is to be animated off the screen.
- (void)interstitialWillDismissScreen:(DFPInterstitial *)ad {
  NSLog(@"Interstitial ad will be dismissed.");
}

/// Tells the delegate the interstitial had been animated off the screen.
- (void)interstitialDidDismissScreen:(DFPInterstitial *)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:(DFPInterstitial *)ad {
  NSLog(@"Interstitial ad will leave application.");
}

v8

Swift

override func viewDidLoad() {
  super.viewDidLoad()
  let request = GAMRequest()
  GAMInterstitialAd.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];
  GAMRequest *request = [GAMRequest request];
  [GAMInterstitialAd loadWithAdUnitID:@"/21775744923/example/interstitial"
                              request:request
                    completionHandler:^(GAMInterstitialAd *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(GAMRequest()) { 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;
  GAMRequest *request = [GAMRequest 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 = GAMRequest()
  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];

  GAMRequest *request = [GAMRequest 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;
}

Anzeige mit Prämie einblenden 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");
  }
}

Anzeigenereignisse für Präsentationen

Bei der GADRewardedAd API übergeben Sie ein GADRewardedAdDelegate an die Methode, die die Anzeige präsentiert. Mit der GADRewardedAd API legst du vor der Präsentation der Anzeige einen 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 = GAMRequest()
  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];

  GAMRequest *request = [GAMRequest 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 Legacy-API „GADRewardedBasedVideoAd“

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. Im Vergleich zur alten GADRewardedBasedVideoAd API wurden weitere Verbesserungen vorgenommen, z. B. die Möglichkeit, mehrere Anzeigen mit Prämie gleichzeitig zu laden.

Die alte GADRewardedBasedVideoAd API wurde in SDK-Version 8.0.0 entfernt.

Einstellung von Smart-Bannern zugunsten adaptiver Banner

Smart-Banner-Anzeigen wurden zugunsten von adaptiven Banneranzeigen eingestellt. Adaptive Banner bieten eine bessere Leistung und mehr Flexibilität beim Festlegen der Anzeigenbreite. Wenn Sie weiterhin Banner mit voller Breite verwenden möchten, können Sie das mit adaptiven Bannern tun, 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

Entfernung des Callbacks beim Verlassen der Anwendung

Der Callback willLeaveApplication für alle Anzeigenformate wurde zugunsten der Methoden applicationDidEnterBackground: und sceneDidEnterBackground: entfernt. Mithilfe von APIs auf Betriebssystemebene werden Sie benachrichtigt, wenn Nutzer Ihre App verlassen, unabhängig davon, ob dies auf eine Anzeigeninteraktion zurückzuführen ist oder nicht.

Der Callback willLeaveApplication war nie als Anzeigenklick-Handler gedacht. Wenn Sie sich auf diesen Callback verlassen, um Klicks zu erfassen, erhalten Sie keinen genauen Messwert. Beispielsweise wurde durch einen Klick auf das Datenschutzinfo-Symbol, das einen externen Browser gestartet hat, der Callback aufgerufen, aber kein Klick gezählt.

Umbenennung 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 sich auf GADUnifiedNativeAd beziehen, wurden in GADNativeAd umbenannt.
  • GADRewardBasedVideoAd, GADNativeExpressAdView und GADInstreamAd wurden entfernt.
  • Alle Klassen mit dem Präfix DFP wurden durch das Präfix GAM ersetzt.
v7.68.0-Klasse v8.0.0-Klasse
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 folgenden Tabelle 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 das Attribut GADResponseInfo verschoben.
  • Die Testgeräte-ID wurde in die Property GADRequestConfiguration verschoben.
v7.68.0-Klasse v7.68.0 API v8.0.0 API Hinweise
GADMobileAds +configureWithApplicationID: -startWithCompletionHandler: Die App-ID ist jetzt in der Datei „Info.plist“ festgelegt.
+disableAutomatedInAppPurchaseReporting -disableAutomatedInAppPurchaseReporting
+disableSDKCrashReporting -disableSDKCrashReporting
GADRequest testDevices GADRequestConfiguration.testdeviceidentifiers Das Attribut „testDeviceIdentifiers“ gilt für alle Anzeigenanfragen, während das alte Attribut „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