SDK-Migration

Auf dieser Seite finden Sie Informationen zu Migrationen für die aktuelle und die vorherige Version des Google Mobile Ads SDK für iOS. Version 12.0.0 wird voraussichtlich im Februar 2025 veröffentlicht.

Von Version 11 zu Version 12 migrieren

Upgrade auf Xcode 16.0

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

Swift-Benennungsunterstützung

Version 12.0.0 enthält Änderungen, die den Benennungskonventionen in den API-Designrichtlinien von Swift entsprechen. Diese Änderungen betreffen nur Swift. An den Namen der Objective-C-APIs wurden keine Änderungen vorgenommen.

Änderungen am Kursprä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.

Die beste Möglichkeit, Fehler aufgrund dieser Änderungen zu beheben, ist eine Korrektur mit dem Tool „Problem beheben“.

Namenskonflikte lösen

Verwenden Sie den vom Modul bereitgestellten Namespace, um Namenskonflikte zu beheben. Beispiel: GADRequest heißt jetzt Request. Die folgenden Beispiel-Namespaces beziehen sich auf die Klasse Request des Google Mobile Ads SDK:

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 zur Steuerung des Stummschaltungsstatus von Videos

Die Property isMuted und die Methode setMute: von GADVideoController werden durch die Property muted ersetzt.

Änderungen an Inline-Adaptive-Anzeigen

Um die Platzausnutzung zu optimieren, nehmen Inline-adaptive Anzeigen anfangs keinen Platz im Frame ein. Wenn Sie CGSizeFromGADAdSize(_:) mit einer Inline-adaptiven Anzeigengröße aufrufen, wird jetzt die Höhe 0 zurückgegeben, bis das Google Mobile Ads SDK eine Anzeige zurückgibt.

Benutzerdefinierte Suchanzeigen wurden 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 auf GADRequest wird jetzt Any anstelle von String als Werttyp verwendet. So können Sie numerische Werte an die API übergeben.

Änderungen an den Parametern für Extras

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

Von Version 10 zu Version 11 migrieren

Minimales Bereitstellungsziel

Das Mindestbereitstellungsziel wurde auf iOS 12 erhöht.

Xcode-Mindestversion

Die Mindestversion von Xcode wurde auf 15.1 erhöht.

Anzeigen werden unter iOS 12 nicht mehr ausgeliefert

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

Abhängigkeit von GoogleAppMeasurement 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 unterstützt, 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 Präsentation von Vollbildanzeigen

Die folgenden Änderungen betreffen die verschiedenen Anzeigenformate:

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

Der View-Controller-Parameter in -canPresentFromRootViewController:error: und -presentFromRootViewController: ist nullable. Wenn „nil“ übergeben wird, wird die Anzeige vom obersten View Controller in der View Controller-Hierarchie präsentiert.

Entfernte Methoden

Die folgenden Methoden wurden entfernt:

Typ von Version 11.0.0 Methode Hinweise
GADAppOpenAd load(withAdUnitID adUnitID: String, request: GADRequest?, orientation: UIInterfaceOrientation) Verwenden Sie stattdessen load(withAdUnitID adUnitID: String, request: GADRequest?).
GADMediationBannerAdEventDelegate willBackgroundApplication() Es erfolgt kein Ersatz.
GADMediationInterstitialAdEventDelegate willBackgroundApplication() Es erfolgt kein Ersatz.
GADMediationNativeAdEventDelegate willBackgroundApplication() Kein Ersatz.
GADMediationRewardedAdEventDelegate didRewardUser(with reward: GADAdReward) Verwenden Sie stattdessen didRewardUser().
GADMediatedUnifiedNativeAdNotificationSource mediatedNativeAdWillLeaveApplication(_ mediatedNativeAd: GADMediatedUnifiedNativeAd) Es erfolgt 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.

Entfernte Unterkünfte

Die folgenden Properties werden entfernt.

Klasse v11.0.0 Attribut Hinweise
GADMediationAdConfiguration hasUserLocation Es erfolgt 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 an der SDK-Version für die Protokollierung

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

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 sendet GADAdLoader keine Anzeigenanfrage, wenn sein delegate nicht dem Delegate-Protokoll der angeforderten Anzeigentypen entspricht. Bisher ist der Vorgang nach der Anzeigenanfrage fehlgeschlagen.

Änderungen am Testverhalten

In der folgenden Tabelle sind die aktualisierten Bedingungen aufgeführt, 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 ausdrücklich als Testgerät deklariert.
  • Das Gerät ist in testDeviceIdentifiers ausdrücklich als Testgerät deklariert.
  • Das Gerät ist ein Simulator.
  • Das Gerät wird in der Ad Manager-Benutzeroberfläche ausdrücklich als Testgerät deklariert.

Von Version 9 zu Version 10 migrieren

Anzeigen werden unter iOS 11 nicht mehr ausgeliefert

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

Das Upgrade auf die Version 10.0.0 des Google Mobile Ads SDK führt nicht zu Problemen mit Ihrer App auf Geräten mit iOS 11 und iOS 10. Es werden jedoch keine Anzeigen auf diesen Geräten ausgeliefert.

Anforderung an die Ad Manager-App-ID

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

Anforderung an GoogleAppMeasurement.xcframework

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

Erstellen mit Bitcode wird nicht mehr unterstützt

Um das Google Mobile Ads SDK zu integrieren, müssen Sie den Bitcode in Ihren mobilen Apps jetzt deaktivieren.

Entfernte Typen

Typ Hinweise
GADGender Es erfolgt kein Ersatz.
GADMRewardBasedVideoAdNetworkAdapterProtocol Alle auf Choose Networks 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 die Vermittlung und benutzerdefinierte Ereignisse.
GADMRewardBasedVideoAdNetworkConnectorProtocol

Entfernte Unterkünfte

Die folgenden Properties werden ohne Ersatz entfernt.

Version 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.

Das Upgrade auf die Version 9.0.0 des Google Mobile Ads SDK führt nicht zu Problemen mit Ihrer App auf iOS 10-Geräten. Auf diesen Geräten werden jedoch keine Anzeigen ausgeliefert.

Strengere Durchsetzung der Steuerelemente der Statusleiste

Ab Version 9.0.0 müssen Sie in Ihrer App dafür sorgen, dass die Anzeigen die Darstellung der Statusleiste steuern können, wenn Sie Vollbildanzeigen präsentieren. Andernfalls wird in den Protokollen eine Fehlermeldung angezeigt.

Je nach Layout der View Controller in Ihrer App müssen Sie möglicherweise keine Änderungen vornehmen. Überlegen Sie, ob Sie die Property childViewControllerForStatusBarHidden für das rootViewController Ihrer Anzeige festlegen müssen.

Benennen Sie „adDidPresentFullScreenContent:“ in „adWillPresentFullScreenContent:“ um.

Das Verhalten ändert sich nicht. Die Delegating-Methode wird kurz vor der Präsentation der Anzeige aufgerufen. Der neue Methodenname spiegelt ihre Funktion daher besser wider.

API für Standorteinstellungen in 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 Werbenetzwerke von Drittanbietern weiterzugeben.

Einstellung der Benutzeroberflächen 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 werden eingestellt. Verwenden Sie stattdessen die vorhandenen Protokolle GADMediationAdapter und GADMediationAdEventDelegate, um dieselben Funktionen zu nutzen. Durch diese Änderung wird die Übersichtlichkeit verbessert und Sie können benutzerdefinierte Ereignisse für Anzeigen mit Prämie und Interscroller-Anzeigen erstellen, die zuvor nicht verfügbar waren.

APIs

In der folgenden Tabelle sind die entsprechenden Mediation-Adapter-APIs 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 „Delegate“ wird vom Ladeabschluss-Handler 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

Delegierte Methoden

In der folgenden Tabelle sind die entsprechenden Methoden für die delegierten Vermittlungsereignisse aufgeführt, die mit benutzerdefinierten Methoden für delegierte Ereignisse ab Version 9.0.0 verwendet werden sollten.

v8 v9
GADCustomEventBannerDelegate
GADCustomEventInterstitialDelegate
GADCustomEventNativeAdDelegate
GADMediationAdEventDelegate GADMediationAd
-customEventBanner:didReceiveAd:
-customEventInterstitialDidReceiveAd:
Der Anzeigenladestatus ist im Load Completion Handler jeder Ladefunktion in der GADMediationAdapter-Klasse 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 einer Methode, Konstante oder Eigenschaft
kGAD- Konstanten mit Präfix Entfernt. Konstanten mit dem Präfix GAD- verwenden
GADAdNetworkResponseInfo credentials wurden entfernt. Verwenden Sie stattdessen adUnitMapping.
GAMRequest kGAMSimulatorID in GAMRequest wurde eingestellt. Verwenden Sie stattdessen GADSimulatorID in GADRequestConfiguration.
GADCustomNativeAd mediaView in GADCustomNativeAd wurde eingestellt. Verwenden Sie stattdessen mediaContent.
In-App-Kauf-APIs in GoogleMobileAds inAppPurchase APIs wurden in GoogleMobileAds 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 Anzeigen mit Prämie einen generischen Vollbildanzeigenstil, um für mehr Einheitlichkeit zu sorgen. Diese neuen APIs für Vollbildanzeigen unterscheiden sich in zwei wichtigen Punkten von den APIs für Vollbildanzeigen der Version 7:

  1. Statische Klassenmethode load.

    Bisher ging das so:

    1. Erstellen Sie eine Instanz des Anzeigenobjekts und speichern Sie eine Referenz darauf.
    2. Weisen Sie einen Delegaten zu, der Callbacks für das Laden und Anzeigen verarbeitet.
    3. Laden Sie eine Anzeige.
    4. Prüfen Sie, ob die Anzeige mit isReady geladen wird.
    5. Die Anzeige ausliefern.

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

    1. Rufen Sie eine statische Lademethode für die Anzeigenklasse auf und geben Sie einen Handler für den Ladevorgang an.
    2. Behalten Sie im Callback für den Abschluss des Ladevorgangs einen Verweis auf die geladene Anzeige, die zurückgegeben wird.
    3. Weisen Sie einen Delegaten zu, der die Rückrufe für die Wiedergabe verarbeitet.
    4. Die Anzeige ausliefern.

    Der neue Ansatz bietet folgende Vorteile:

    • Es gibt 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
    Ladeereignisse GADInterstitialDelegate oder GADRewardedAdDelegate GAMInterstitialAdLoadCompletionHandler oder GADRewardedAdLoadCompletionHandler
    Präsentationsereignisse GADFullScreenContentDelegate

    Bisher mussten Sie, um auf Anzeigenereignisse zu warten, eine Klasse registrieren, die das GADInterstitialDelegate-Protokoll für die delegierte Property eines Interstitials implementiert, oder eine Klasse, die das GADRewardedAdDelegate-Protokoll für die delegierte Property einer Anzeige mit Prämie implementiert, je nachdem, welches Format Sie verwenden. Dieser Delegate enthielt Methoden, die sich sowohl auf den Lade- als auch auf den Präsentationszyklus einer Anzeige beziehen.

    In Version 8 sind Lade- und Präsentationsereignisse getrennt. Sie können jetzt jederzeit vor dem Ausliefern einer Anzeige einen GADFullScreenContentDelegate registrieren, anstatt vor dem Laden der Anzeige einen einzelnen Delegaten festlegen zu müssen. Anzeigenladeereignisse, die für jedes Format spezifisch sind, werden an einen einzelnen Load-Completion-Handler übergeben, der in der Load-Methode übergeben wird.

Interstitial

Anzeige laden

In den folgenden Code-Snippets wird gezeigt, wie Sie eine Interstitial-Anzeige laden und auf Ereignisse warten, wenn die Anzeige geladen wird oder das Laden fehlschlägt.

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

In den folgenden Code-Snippets wird gezeigt, wie Sie Callbacks für die Präsentation (erfolgreich oder nicht erfolgreich) und das Schließen der Anzeige verarbeiten.

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 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. Mit Version 7 der GADRewardedAd API implementierst du rewardedAd:userDidEarnReward: als Teil des GADRewardedAdDelegate-Protokolls. Für Version 8 implementieren Sie die 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

Mit der GADRewardedAd API übergeben Sie der Methode, die die Anzeige präsentiert, einen GADRewardedAdDelegate. Mit der GADRewardedAd API legen Sie vor der Auslieferung der Anzeige einen GADFullscreenContentDelegate als Property 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.");
}

Einstellung der GADRewardedBasedVideoAd API

Die neuere GADRewardedAd API wurde bereits im März 2019 eingeführt und ist seit über 18 Monaten die bevorzugte API für Anzeigen mit Prämie. Sie wurde im Vergleich zur bisherigen GADRewardedBasedVideoAd API weiter optimiert. So können Sie jetzt beispielsweise mehrere Anzeigen mit Prämie gleichzeitig laden.

Die alte GADRewardedBasedVideoAd API wird in der SDK-Version 8.0.0 entfernt.

Einstellung von Smart-Bannern zugunsten adaptiver Banner

Smart-Banner-Anzeigen werden zugunsten von adaptiven Banneranzeigen eingestellt. Adaptive Banner bieten eine bessere Leistung und mehr Flexibilität bei der Einstellung der Anzeigenbreite. Wenn Sie weiterhin Banner in voller Breite verwenden möchten, ist das auch mit adaptiven Bannern möglich, wie im folgenden Code-Snippet gezeigt:

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 Rückrufs für die Anwendung

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

Der willLeaveApplication-Callback war nie als Handler für Anzeigenklicks gedacht. Wenn Sie diesen Callback zum Melden von Klicks verwendet haben, war der Messwert nicht korrekt. Wenn beispielsweise ein Klick auf das AdChoices-Symbol einen externen Browser öffnet, wird der Callback aufgerufen, aber kein Klick gezählt.

Umbenannte Kurse

In der folgenden Tabelle sind bestimmte Kursnamen aufgeführt, die sich in Version 8 geändert oder entfernt haben. 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 das Präfix GAM ersetzt.
Version 7.68.0 Version 8.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 folgenden Tabelle sind die Änderungen in Version 8 aufgeführt. Zusammenfassung:

  • Zuvor eingestellte Methoden und Properties wurden entfernt.
  • -willLeaveApplication: Delegierte Methoden wurden für alle Formate entfernt.
  • Der Name der Werbenetzwerkklasse wurde in die Property GADResponseInfo verschoben.
  • Die Testgeräte-ID wurde in die Property GADRequestConfiguration verschoben.
Version 7.68.0 API v7.68.0 API v8.0.0 Hinweise
GADMobileAds +configureWithApplicationID: -startWithCompletionHandler: Die App-ID ist jetzt in der Info.plist-Datei 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