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 inAdManager
umbenannt. - Das Präfix
GADM
wurde inMediation
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.
- Das Übergeben des
max_ad_content_rating
-Schlüssels anadditionalParameters
wird nicht mehr unterstützt. Informationen zum Festlegen einer höchsten Altersfreigabe für Anzeigeninhalte finden Sie unter Filterung von Anzeigeninhalten.
Von 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 |
|
|
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: |
-loadBannerForAdConfiguration: |
|
-requestInterstitialAdWith |
-loadInterstitialFor |
|
-requestNativeAdWithParameter:
|
-loadNativeAdFor |
|
– | -loadInterscrollerAdFor |
|
– | -loadRewardedAdFor |
|
-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 |
|
-customEventBannerWill -customEventInterstitialWill
|
-willPresentFullScreenView |
|
-customEventBannerWill -customEventInterstitialWill
|
-willDismissFullScreenView |
|
-customEventBannerDid -customEventInterstitialDid
|
-didDismissFullScreenView |
|
-customEventBannerWill -customEventInterstitialWill
|
-willBackgroundApplication |
|
viewControllerFor |
-[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:
Statische Klassenmethode
load
.Bisher ging das so:
- Erstellen Sie eine Instanz des Anzeigenobjekts und speichern Sie eine Referenz darauf.
- Weisen Sie einen Delegaten zu, der Callbacks für das Laden und Anzeigen verarbeitet.
- Laden Sie eine Anzeige.
- Prüfen Sie, ob die Anzeige mit
isReady
geladen wird. - 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:- Rufen Sie eine statische Lademethode für die Anzeigenklasse auf und geben Sie einen Handler für den Ladevorgang an.
- Behalten Sie im Callback für den Abschluss des Ladevorgangs einen Verweis auf die geladene Anzeige, die zurückgegeben wird.
- Weisen Sie einen Delegaten zu, der die Rückrufe für die Wiedergabe verarbeitet.
- 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.
Konsistente Anzeigenereignisse
Ereignistyp Vorhandene API v8 API Ladeereignisse GADInterstitialDelegate
oderGADRewardedAdDelegate
GAMInterstitialAdLoadCompletionHandler
oderGADRewardedAdLoadCompletionHandler
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 dasGADRewardedAdDelegate
-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 inGADNativeAd
umbenannt. GADRewardBasedVideoAd
,GADNativeExpressAdView
undGADInstreamAd
wurden entfernt.- Alle Klassen mit dem Präfix
DFP
wurden durch das PräfixGAM
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. |
+disableAutomatedInApp |
-disableAutomatedInApp |
||
+disableSDKCrashReporting | -disableSDKCrashReporting | ||
GADRequest | testDevices | GADRequestConfiguration |
Die Property „testDeviceIdentifiers“ gilt für alle Anzeigenanfragen, während die alte Property „testDevices“ pro Anfrage festgelegt wurde. |
gender | Entfernt | ||
Geburtstag | Entfernt | ||
+sdkVersion | GADMobileAds.sharedInstance |
||
-setBirthday |
Entfernt | ||
-setLocationWithDescription: | -setLocationWith |
||
-tagForChildDirectedTreatment: | [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment] | ||
GADErrorCode | kGADError* | GADError* | Das Präfix k wird aus allen Fehlercodekonstanten entfernt.
|
GADBannerView | hasAutoRefreshed | autoloadEnabled | |
inAppPurchaseDelegate | Entfernt | ||
mediatedAdView | Entfernt | ||
adNetworkClassName | responseInfo |
||
DFPBannerView | -setValidAdSizesWithSizes: | -setValidAdSizes: | |
DFPBannerViewOptions | -adSizeDelegate | Entfernt | |
GADBannerViewDelegate | -adViewDidReceiveAd: | -bannerViewDidReceiveAd: | |
-adView:didFailToReceive |
-bannerView:didFailToReceive |
||
-adViewWillPresentScreen: | -bannerViewWillPresentScreen: | ||
-adViewWillDismissScreen: | -bannerViewWillDismissScreen: | ||
-adViewDidDismissScreen: | -bannerViewDidDismissScreen: | ||
-adViewWillLeaveApplication: | Entfernt | ||
GADNativeCustomTemplateAd | templateID | GADCustomNativeAd.formatID | |
-performClickOnAssetWithKey: |
-performClickOnAssetWithKey: | ||
GADNativeAdImageAd |
preferredImageOrientation | GADNativeAdMediaAdOptions |
|
GADInterstitial | inAppPurchaseDelegate | Entfernt | |
isReady | Entfernt | Verwenden Sie stattdessen „canPresentFrom |
|
hasBeenUsed | Entfernt | ||
-init | -initWithAdUnitID: | ||
-setAdUnitID: | -initWithAdUnitID: | ||
adNetworkClassName | responseInfo |
||
-interstitialWill |
Entfernt | ||
GADUnifiedNativeAd | videoController | mediaContent.videoController | |
adNetworkClassName | responseInfo |