На этой странице описывается миграция текущей и предыдущих версий Google Mobile Ads SDK для iOS. Выход версии 12.0.0 ожидается в феврале 2025 года.
Миграция с версии SDK v11 на v12
Обновление до Xcode 16.0
Минимальная поддерживаемая версия Xcode увеличена до 16.0.
Поддержка быстрого именования
В версию 12.0.0 включены изменения, соответствующие соглашениям об именовании, изложенным в руководстве по проектированию API Swift. Эти изменения касаются только Swift. Изменения в именовании API Objective-C не вносились.
Изменения префикса класса
В префиксы классов были внесены следующие изменения:
- Удален префикс
GAD
из названий всех типов. - Префикс
GAM
переименован вAdManager
. - Префикс
GADM
переименован вMediation
.
Устранить ошибки
Лучший способ устранения ошибок, возникающих в результате этих изменений, — это внесение исправления Fix-It .
Разрешение конфликтов имен
Для разрешения конфликтов имён используйте пространство имён, предоставляемое модулем. Например, GADRequest
теперь называется Request
. Следующий пример пространства имён относится к классу Request
в Google Mobile Ads SDK:
import GoogleMobileAds
...
var request: GoogleMobileAds.Request?
Подробный список изменений Swift
В следующих таблицах перечислены изменения, внесенные в API Swift:
Версия 11 | Версия 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 |
Менеджер рекламы | |
GAMBannerAdLoaderDelegate | AdManagerBannerAdLoaderDelegate |
GAMBannerView | AdManagerBannerView |
GAMBannerViewOptions | AdManagerBannerViewOptions |
GAMInterstitialAd | AdManagerInterstitialAd |
GAMRequest | AdManagerRequest |
Медиация | |
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 |
Торги в реальном времени | |
GADRTBAdapter | RTBAdapter |
GADRTBMediationSignalsConfiguration | RTBMediationSignalsConfiguration |
GADRTBRequestParameters | RTBRequestParameters |
Константы
Версия 11 | Версия 12 |
---|---|
GADAdLoaderAdType.gamBanner | AdLoaderAdType.adManagerBanner |
GADAdSizeBanner | AdSizeBanner |
GADAdSizeFluid | AdSizeFluid |
GADAdSizeFullBanner | AdSizeFullBanner |
GADAdSizeInvalid | AdSizeInvalid |
GADAdSizeLargeBanner | AdSizeLargeBanner |
GADAdSizeLeaderboard | AdSizeLeaderboard |
GADAdSizeMediumRectangle | AdSizeMediumRectangle |
GADAdSizeSkyscraper | AdSizeSkyscraper |
GoogleMobileAdsVersionString | GoogleMobileAdsVersion |
Характеристики
Тип | Версия 11 | Версия 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 |
Функции
Тип | Версия 11 | Версия 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:) |
Медиация | ||
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 для управления состоянием отключения звука видео
Свойство isMuted
и метод setMute:
в GADVideoController
заменяются свойством muted
.
Изменения во встроенных адаптивных объявлениях
Для оптимизации использования пространства встроенные адаптивные объявления изначально не занимают места в кадре. Вызов CGSizeFromGADAdSize(_:)
с размером встроенного адаптивного объявления теперь возвращает 0
высоту, пока Google Mobile Ads SDK не вернёт объявление.
Удалены пользовательские поисковые объявления
Следующие классы удаляются без замены:
-
GADDynamicHeightSearchBannerView
-
GADDynamicHeightSearchRequest
-
GADSearchBannerView
Изменения кодов ошибок
Были изменены следующие коды ошибок:
Сорт | Примечания |
---|---|
GADErrorMediationNoFill | Ошибки теперь возвращаются как GADErrorNoFill . |
GADErrorReceivedInvalidResponse | Был заменен на GADErrorReceivedInvalidAdString . |
Удален GADSimulatorID
Удалён GADSimulatorID
. Симуляторы по умолчанию уже находятся в тестовом режиме.
Изменения в пользовательском таргетинге
Словарь customTargeting
в GADRequest
теперь использует тип значения Any
вместо String
. Это позволяет передавать числовые значения в API.
Изменения дополнительных параметров
- Передача ключа
max_ad_content_rating
вadditionalParameters
больше не поддерживается. Чтобы установить максимальный рейтинг рекламного контента, см. раздел Фильтрация рекламного контента .
Миграция с v10 на v11
Минимальная цель развертывания
Минимальная цель развертывания увеличена до iOS 12.
Минимальная версия Xcode
Минимальная поддерживаемая версия Xcode увеличена до 15.1.
Реклама больше не отображается на устройствах iOS 12
Google Mobile Ads SDK версии 11.0.0 показывает рекламу только на устройствах под управлением iOS 13 и выше.
Удалена зависимость от GoogleAppMeasurement
В версии 11.0.0 зависимость от GoogleAppMeasurement
была удалена. Эта зависимость, обеспечивавшая работу переключателя пользовательских метрик в AdMob, будет прекращена в начале 2024 года. Чтобы продолжить сбор пользовательских метрик в AdMob, свяжите своё приложение AdMob с Firebase и интегрируйте SDK Google Analytics для Firebase в своё приложение.
Изменения в представлении полноэкранной рекламы
Следующие изменения касаются различных форматов рекламы:
- Приложение открыто
- Интерстициальный
- Награжден
- Вознагражденный интерстициальный
Параметр контроллера представления в -canPresentFromRootViewController:error:
и -presentFromRootViewController:
может иметь значение NIL. Если передано значение Nil, реклама отображается из самого верхнего контроллера представления в иерархии контроллеров представления.
Методы удалены
Удалены следующие методы.
Тип v11.0.0 | Метод | Примечания |
---|---|---|
GADAppOpenAd | load(withAdUnitID adUnitID: String, request: GADRequest?, orientation: UIInterfaceOrientation) | Вместо этого используйте load(withAdUnitID adUnitID: String, request: GADRequest?) . |
GADMediationBannerAdEventDelegate | willBackgroundApplication() | Замены нет. |
GADMediationInterstitialAdEventDelegate | willBackgroundApplication() | Замены нет. |
GADMediationNativeAdEventDelegate | willBackgroundApplication() | Замены нет. |
GADMediationRewardedAdEventDelegate | didRewardUser(with reward: GADAdReward) | Вместо этого используйте didRewardUser() . |
GADMediatedUnifiedNativeAdNotificationSource | mediatedNativeAdWillLeaveApplication(_ mediatedNativeAd: GADMediatedUnifiedNativeAd) | Замены нет. |
GADRequestConfiguration | setSameAppKeyEnabled(_ enabled: Bool) | Вместо этого используйте setPublisherFirstPartyIDEnabled(_ enabled: Bool) . |
tagForUnderAge(ofConsent underAgeOfConsent: Bool) | Вместо этого используйте свойство tagForUnderAgeOfConsent . | |
tag(forChildDirectedTreatment childDirectedTreatment: Bool) | Вместо этого используйте свойство tagForChildDirectedTreatment . |
Свойства удалены
Следующие свойства удалены.
Класс v11.0.0 | Свойство | Примечания |
---|---|---|
GADMediationAdConfiguration | hasUserLocation | Замены нет. |
пользовательLatitude | ||
пользовательДолгота | ||
ТочностьМестоположенияВМетрах | ||
Лечение, направленное на ребенка | Вместо этого используйте GADMobileAds.sharedInstance.requestConfiguration.tagForChildDirectedTreatment . | |
GADResponseInfo | adNetworkClassName | Вместо этого используйте adNetworkClassName из loadedAdNetworkResponseInfo . |
Удален GADAdFormatUnknown
Удален GADAdFormatUnknown
без замены.
Изменения в версии SDK для регистрации
В версии 11.0.0 sdkVersion
удален. Для регистрации версии Google Mobile Ads SDK используйте вместо него versionNumber
.
Версия 10.0.0
GADMobileAds.sharedInstance().sdkVersion
Версия 11.0.0
GADGetStringFromVersionNumber(GADMobileAds.sharedInstance().versionNumber)
Изменения в обработке ошибок GADAdLoader
Начиная с версии 11.0.0, GADAdLoader
не отправляет запрос на объявление, если его delegate
не соответствует протоколу делегата запрошенного типа объявления. Ранее это приводило к ошибке после отправки запроса на объявление.
Изменения в поведении тестирования
См. таблицу, в которой показаны обновленные условия, при которых следующие свойства возвращают true
.
Сорт | Свойство |
---|---|
GADMediationAdConfiguration | isTestRequest |
GADCustomEventRequest | isTesting |
v10.0.0 | v11.0.0 |
|
|
Миграция с v9 на v10
Реклама больше не отображается на устройствах iOS 11
Google Mobile Ads SDK версии 10.0.0 показывает рекламу только на устройствах под управлением iOS 12 и выше.
Обновление до Google Mobile Ads SDK версии 10.0.0 не нарушит работу вашего приложения на устройствах iOS 11 и iOS 10, однако на этих устройствах реклама показываться не будет.
Сборка с использованием биткода больше не поддерживается.
Для интеграции Google Mobile Ads SDK теперь требуется отключить биткод в ваших мобильных приложениях.
Типы удалены
Тип | Примечания |
---|---|
GADGender | Замены нет. |
GADMRewardBasedVideoAdNetworkAdapterProtocol | Все адаптеры-медиаторы с вознаграждением, перечисленные на сайте Choose Networks, прекратили использовать эти протоколы более года назад. Используйте GADMediationAdapter для медиации и пользовательских событий. |
GADMRewardBasedVideoAdNetworkConnectorProtocol |
Свойства удалены
Следующие объекты удаляются без замены.
Класс v10.0.0 | Свойство |
---|---|
GADMediationAdRequest | День рождения пользователя |
пол пользователя | |
userHasLocation | |
пользовательLatitude | |
пользовательДолгота | |
ТочностьМестоположенияВМетрах | |
userLocationDescription | |
GADCustomEventRequest | userHasLocation |
пользовательLatitude | |
пользовательДолгота | |
ТочностьМестоположенияВМетрах | |
userLocationDescription |
Миграция с v8 на v9
Реклама больше не показывается на iOS 10
Минимальная поддерживаемая версия iOS для Google Mobile Ads SDK версии 9.0.0 — iOS 11.
Обновление до версии Google Mobile Ads SDK 9.0.0 не нарушит работу вашего приложения на устройствах iOS 10, однако на этих устройствах не будет показываться реклама.
Более строгое соблюдение правил управления строкой состояния
Начиная с версии 9.0.0, при показе полноэкранной рекламы ваше приложение должно обеспечивать возможность управления отображением строки состояния. В противном случае в журналах появится сообщение об ошибке.
В зависимости от особенностей макета контроллеров представлений в вашем приложении, вам может не потребоваться вносить какие-либо изменения для обеспечения этого. Подумайте, нужно ли устанавливать свойство childViewControllerForStatusBarHidden
для rootViewController
вашего объявления.
Переименуйте adDidPresentFullScreenContent: в adWillPresentFullScreenContent:
Поведение не изменилось. Метод делегата вызывается непосредственно перед показом рекламы, поэтому новое название метода лучше отражает его функциональность.
Удалить API настройки местоположения в GADRequest
- (void)setLocationWithLatitude:longitude:accuracy:
удалён из GADRequest
, поскольку данные о местоположении не используются Google для таргетинга рекламы. При необходимости используйте сторонние API для предоставления информации сторонним рекламным сетям.
Устаревание пользовательских интерфейсов событий
Пользовательские события позволяют издателям, использующим AdMob Mediation, добавлять каскадную медиацию для рекламной сети, которая не входит в число поддерживаемых рекламных сетей .
Все протоколы настраиваемых событий устарели. Вместо этого используйте существующие протоколы GADMediationAdapter
и GADMediationAdEventDelegate
для достижения той же функциональности. Это изменение повышает прозрачность и позволяет создавать настраиваемые события для объявлений с вознаграждением и межскроллерных объявлений, которые ранее были недоступны.
API-интерфейсы
В таблице ниже перечислены соответствующие API-интерфейсы адаптеров-посредников для API-интерфейсов пользовательских событий, которые следует использовать, начиная с версии 9.0.0.
v8 | v9 | |
---|---|---|
GADCustomEventBanner GADCustomEventInterstitial GADCustomEventNativeAd | GADMediationAdapter | GADMediationBannerAd GADMediationInterstitialAd GADMediationInterscrollerAd GADMediationRewardedAd GADMediationNativeAd |
delegate | Делегат возвращается обработчиком завершения загрузки каждой функции загрузки класса GADMediationAdapter | |
-init | -init | |
-requestBannerAd:parameter: label:request: | -loadBannerForAdConfiguration: completionHandler: | |
-requestInterstitialAdWith Parameter:label:request: | -loadInterstitialFor AdConfiguration: completionHandler: | |
-requestNativeAdWithParameter: request:adTypes:options: rootViewController: | -loadNativeAdFor AdConfiguration: completionHandler: | |
Н/Д | -loadInterscrollerAdFor AdConfiguration: completionHandler: | |
Н/Д | -loadRewardedAdFor AdConfiguration: completionHandler: | |
-presentFromRootViewController: | -presentFromViewController: | |
-handlesUserClicks | -handlesUserClicks | |
-handlesUserImpressions | -handlesUserImpressions |
Делегировать методы
В таблице ниже перечислены соответствующие методы делегирования событий посреднической рекламы и методы делегирования пользовательских событий, которые следует использовать, начиная с версии 9.0.0.
v8 | v9 | |
---|---|---|
GADCustomEventBannerDelegate GADCustomEventInterstitialDelegate GADCustomEventNativeAdDelegate | GADMediationAdEventDelegate | GADMediationAd |
-customEventBanner:didReceiveAd: -customEventInterstitialDidReceiveAd: | Статус загрузки рекламы включен в обработчик завершения загрузки каждой функции загрузки в классе GADMediationAdapter | |
-customEventBanner:didFailAd: -customEventInterstitial:didFailAd: | ||
-customEventBannerWasClicked: -customEventInterstitialWasClicked: | -reportClick | |
-customEventBannerWill PresentModal: -customEventInterstitialWill PresentModal: | -willPresentFullScreenView | |
-customEventBannerWill DismissModal: -customEventInterstitialWill DismissModal: | -willDismissFullScreenView | |
-customEventBannerDid DismissModal: -customEventInterstitialDid DismissModal: | -didDismissFullScreenView | |
-customEventBannerWill LeaveApplication: -customEventInterstitialWill LeaveApplication: | -willBackgroundApplication | |
viewControllerFor PresentingModalView | -[GADMediationBannerAd view] |
Другие удаленные/замененные методы и константы
Изменения метода, константы или свойства | |
---|---|
kGAD- префиксные константы | Удалено. Используйте константы с префиксом GAD- . |
GADAdNetworkResponseInfo | credentials были удалены. Используйте вместо этого adUnitMapping . |
GADCustomNativeAd | mediaView в GADCustomNativeAd устарела. Вместо неё используйте mediaContent . |
API-интерфейсы для покупок внутри приложений в GoogleMobileAds | API-интерфейсы inAppPurchase в GoogleMobileAds были удалены. |
Миграция с v7 на v8
В Google Mobile Ads SDK версии 8.0.0 представлено несколько важных изменений, а также переименованы и удалены некоторые API.
Обновления API полноэкранного формата
Начиная с версии 8.0.0, полноэкранная реклама и реклама с вознаграждением используют общий стиль полноэкранной рекламы для большей согласованности. Эти новые API полноэкранной рекламы имеют два основных отличия от API полноэкранной рекламы версии 7:
Статический метод класса
load
.Предыдущий подход к загрузке/показу полноэкранной рекламы был следующим:
- Создайте экземпляр объекта рекламы и сохраните ссылку на него.
- Назначьте делегата, который обрабатывает обратные вызовы загрузки и показа.
- Загрузить объявление.
- Проверьте, загружено ли объявление, с помощью
isReady
. - Покажите рекламу.
В версии 8 подход немного изменился. Обратные вызовы Load больше не являются частью делегата. Вместо этого они передаются в метод
load
как обработчик завершения:- Вызовите метод статической загрузки для класса объявления и предоставьте обработчик завершения загрузки.
- В обратном вызове завершения загрузки сохраните ссылку на возвращенное загруженное объявление.
- Назначьте делегата, который обрабатывает обратные вызовы показа.
- Покажите рекламу.
Новый подход обеспечивает следующие преимущества:
- У вас никогда не будет ссылки на незагруженную рекламу.
- Вам не придется удерживать рекламный объект во время его загрузки.
Последовательные рекламные события.
Тип события Существующий API API v8 События загрузки GADInterstitialDelegate
илиGADRewardedAdDelegate
GADInterstitialAdLoadCompletionHandler
илиGADRewardedAdLoadCompletionHandler
Презентационные мероприятия GADFullScreenContentDelegate
Раньше для отслеживания любых событий рекламы приходилось регистрировать класс, реализующий протокол
GADInterstitialDelegate
, в свойстве делегата полноэкранного объявления или класс, реализующий протоколGADRewardedAdDelegate
, в свойстве делегата объявления с вознаграждением, в зависимости от используемого формата. Этот же делегат имел методы, связанные как с загрузкой, так и с жизненным циклом отображения рекламы.В версии 8 события загрузки и отображения разделены. Теперь вы можете зарегистрировать
GADFullScreenContentDelegate
в любое время до показа рекламы, вместо того чтобы задавать отдельный делегат перед её загрузкой. События загрузки рекламы, специфичные для каждого формата, переносятся в один обработчик завершения загрузки, передаваемый в методе load.
Интерстициальный
Загрузить объявление
Приведенные ниже фрагменты кода показывают, как загрузить полноэкранную рекламу и отслеживать события, возникающие при ее успешной или неудачной загрузке.
v7
Быстрый
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADInterstitialDelegate { var interstitial: GADInterstitial! override func viewDidLoad() { super.viewDidLoad() interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910") interstitial.delegate = self let request = GADRequest() interstitial.load(request) } /// Tells the delegate an ad request succeeded. func interstitialDidReceiveAd(_ ad: GADInterstitial) { print("Interstitial ad loaded.") } /// Tells the delegate an ad request failed. func interstitial(_ ad: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError) { print("Interstitial ad failed to load with error: \(error.localizedDescription)") } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController ()@property(nonatomic, strong) GADInterstitial *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.interstitial = [[GADInterstitial alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"]; self.interstitial.delegate = self; GADRequest *request = [GADRequest request]; [self.interstitial loadRequest:request]; } /// Tells the delegate an ad request succeeded. - (void)interstitialDidReceiveAd:(GADInterstitial *)ad { NSLog(@"Insterstitial ad loaded."); } /// Tells the delegate an ad request failed. - (void)interstitial:(GADInterstitial *)ad didFailToReceiveAdWithError:(GADRequestError *)error { NSLog(@"Interstitial ad failed to load with error: %@", [error localizedDescription]); }
v8
Быстрый
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADFullScreenContentDelegate { var interstitial: GADInterstitialAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-8123415297019784/4985798738", request: request, completionHandler: { (ad, error) in if let error = error { print("Failed to load interstitial ad with error: \(error.localizedDescription)") return } self.interstitial = ad self.interstitial.fullScreenContentDelegate = self } ) } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController ()@property(nonatomic, strong) GADInterstitialAd *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]); return; } self.interstitial = ad; self.interstitial.fullScreenContentDelegate = self; }]; }
Показывать рекламу
v7
Быстрый
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
Быстрый
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"); } }
Презентационные рекламные мероприятия
Приведенные ниже фрагменты кода показывают, как обрабатывать обратные вызовы при показе рекламы (успешном или неудачном) и при ее закрытии.
v7
Быстрый
override func viewDidLoad() { super.viewDidLoad() interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910") interstitial.delegate = self ... } /// Tells the delegate that an interstitial will be presented. func interstitialWillPresentScreen(_ ad: GADInterstitial) { print("Interstitial ad will be presented.") } /// Tells the delegate the interstitial is to be animated off the screen. func interstitialWillDismissScreen(_ ad: GADInterstitial) { print("Interstitial ad will be dismissed.") } /// Tells the delegate the interstitial had been animated off the screen. func interstitialDidDismissScreen(_ ad: GADInterstitial) { print("Interstitial ad dismissed.") } /// Tells the delegate that a user click will open another app /// (such as the App Store), backgrounding the current app. /// /// This is not a reliable callback for an ad click event and is removed in /// version 8. If you wish to listen to an ad causing a user to leave the app, /// use applicationWillResignActive: or sceneWillResignActive: instead. func interstitialWillLeaveApplication(_ ad: GADInterstitial) { print("Interstitial ad will leave application.") }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; self.interstitial = [[GADInterstitial alloc] initWithAdUnitID:"ca-app-pub-3940256099942544/4411468910"]; self.interstitial.delegate = self; ... } /// Tells the delegate that an interstitial will be presented. - (void)interstitialWillPresentScreen:(GADInterstitial *)ad { NSLog(@"Interstitial ad will be presented."); } /// Tells the delegate the interstitial is to be animated off the screen. - (void)interstitialWillDismissScreen:(GADInterstitial *)ad { NSLog(@"Interstitial ad will be dismissed."); } /// Tells the delegate the interstitial had been animated off the screen. - (void)interstitialDidDismissScreen:(GADInterstitial *)ad { NSLog(@"Interstitial ad dismissed."); } /// Tells the delegate that a user click will open another app /// (such as the App Store), backgrounding the current app. /// /// This is not a reliable callback for an ad click event and is removed in /// version 8. If you wish to listen to an ad causing a user to leave the app, /// use applicationWillResignActive: or sceneWillResignActive: instead. - (void)interstitialWillLeaveApplication:(GADInterstitial *)ad { NSLog(@"Interstitial ad will leave application."); }
v8
Быстрый
override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-8123415297019784/4985798738", request: request, completionHandler: { (ad, error) in if let error = error { print(error.localizedDescription) return } self.interstitial = ad self.interstitial.fullScreenContentDelegate = self } ) } func adDidPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad did present full screen content.") } func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) { print("Ad failed to present full screen content with error \(error.localizedDescription).") } func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad did dismiss full screen content.") }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"interstitial:didFailToReceiveAdWithError: %@", [error localizedDescription]) return; } self.interstitial = ad; self.interstitial.fullScreenContentDelegate = self; }]; } - (void)adDidPresentFullScreenContent:(id)ad { NSLog(@"Ad did present full screen content."); } - (void)ad:(id )ad didFailToPresentFullScreenContentWithError:(NSError *)error { NSLog(@"Ad failed to present full screen content with error %@.", [error localizedDescription]); } - (void)adDidDismissFullScreenContent:(id )ad { NSLog(@"Ad did dismiss full screen content."); }
Награжден
Загрузить объявление
v7
Быстрый
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADRewardedAdDelegate { /// The rewarded ad. var rewardedAd: GADRewardedAd? override func viewDidLoad() { super.viewDidLoad() rewardedAd = GADRewardedAd(adUnitID: "ca-app-pub-3940256099942544/1712485313") rewardedAd.delegate = self rewardedAd?.load(GADRequest()) { error in if let error = error { print("Rewarded ad failed to load with error: \(error.localizedDescription)") } else { print("Rewarded ad loaded.") } } } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController ()@property(nonatomic, strong) GADRewardedAd *rewardedAd; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.rewardedAd = [[GADRewardedAd alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313"]; self.rewardedAd.delegate = self; GADRequest *request = [GADRequest request]; [self.rewardedAd loadRequest:request completionHandler:^(GADRequestError * _Nullable error) { if (error) { NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]); } else { NSLog(@"Rewarded ad loaded."); } }]; }
v8
Быстрый
import GoogleMobileAds import UIKit class ViewController: UIViewController, GADFullScreenContentDelegate { /// The rewarded ad. var rewardedAd: GADRewardedAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADRewardedAd.load(withAdUnitID: "ca-app-pub-8123415297019784/9501821136", request: request, completionHandler: { (ad, error) in if let error = error { print("Rewarded ad failed to load with error: \(error.localizedDescription)") return } self.rewardedAd = ad self.rewardedAd?.fullScreenContentDelegate = self } ) } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController ()@property(nonatomic, strong) GADRewardedAd *rewardedAd; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADRewardedAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313" request:request completionHandler:^(GADRewardedAd *ad, NSError *error) { if (error) { NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]); return; } self.rewardedAd = ad; NSLog(@"Rewarded ad loaded."); self.rewardedAd.fullScreenContentDelegate = self; }
Показывать рекламу и управлять вознаграждением
Для рекламы с вознаграждением необходимо обработать событие, когда пользователь получает вознаграждение. В версии 7 API GADRewardedAd
реализован rewardedAd:userDidEarnReward:
как часть протокола GADRewardedAdDelegate
. В версии 8 для показа рекламы реализован GADUserDidEarnRewardHandler
.
v7
Быстрый
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
Быстрый
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"); } }
Презентационные рекламные мероприятия
С помощью API GADRewardedAd
вы передаёте GADRewardedAdDelegate
методу, представляющему рекламу. С помощью API GADRewardedAd
вы устанавливаете GADFullscreenContentDelegate
как свойство рекламы перед её показом.
v7
Быстрый
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
Быстрый
override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADRewardedAd.load(withAdUnitID: "ca-app-pub-8123415297019784/9501821136", request: request, completionHandler: { (ad, error) in if let error = error { print(error.localizedDescription) return } self.rewardedAd = ad self.rewardedAd?.fullScreenContentDelegate = self } ) } /// Tells the delegate that the rewarded ad was presented. func adDidPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Rewarded ad presented.") } /// Tells the delegate that the rewarded ad was dismissed. func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Rewarded ad dismissed.") } /// Tells the delegate that the rewarded ad failed to present. func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) { print("Rewarded ad failed to present with error: \(error.localizedDescription).") }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADRewardedAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313" request:request completionHandler:^(GADRewardedAd *ad, NSError *error) { if (error) { NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]); return; } self.rewardedAd = ad; NSLog(@"Rewarded ad loaded."); self.rewardedAd.fullScreenContentDelegate = self; } /// Tells the delegate that the rewarded ad was presented. - (void)adDidPresentFullScreenContent:(id)ad { NSLog(@"Rewarded ad presented."); } /// Tells the delegate that the rewarded ad failed to present. - (void)ad:(id )ad didFailToPresentFullScreenContentWithError:(NSError *)error { NSLog(@"Rewarded ad failed to present with error: %@", [error localizedDescription]); } /// Tells the delegate that the rewarded ad was dismissed. - (void)adDidDismissFullScreenContent:(id )ad { NSLog(@"Rewarded ad dismissed."); }
Удаление устаревшего API GADRewardedBasedVideoAd
Новый API GADRewardedAd
был впервые представлен в марте 2019 года и уже более 18 месяцев является предпочтительным API с вознаграждением. Он получил больше улучшений по сравнению с устаревшим API GADRewardedBasedVideoAd
, включая возможность загрузки нескольких объявлений с вознаграждением одновременно.
Устаревший API GADRewardedBasedVideoAd
удален в версии SDK 8.0.0.
Отказ от смарт-баннеров в пользу адаптивных баннеров
Смарт-баннеры устарели в пользу адаптивных баннеров . Адаптивные баннеры обеспечивают превосходную производительность и большую гибкость в настройке ширины объявления. Если вы предпочитаете продолжать использовать полноэкранные баннеры, это можно сделать с помощью адаптивных баннеров, как показано в следующем фрагменте кода:
Быстрый
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
Удаление обратного вызова из заявки
Обратный вызов willLeaveApplication
для всех форматов рекламы был удалён в пользу методов applicationDidEnterBackground:
и sceneDidEnterBackground:
Используйте API на уровне ОС, чтобы уведомлять вас о каждом выходе пользователей из приложения, независимо от того, связано ли это с взаимодействием с рекламой или нет.
Обратите внимание, что функция обратного вызова willLeaveApplication
никогда не подразумевалась как обработчик кликов по рекламе, и использование этой функции для отчётности о кликах не приводило к получению точной метрики. Например, нажатие на значок AdChoices, запускающее внешний браузер, вызывало функцию обратного вызова, но не засчитывало клик.
Переименование классов
В таблице ниже перечислены конкретные имена классов, которые были изменены или удалены в версии 8. Вкратце:
- Все классы, связанные с
GADUnifiedNativeAd
были переименованы вGADNativeAd
. -
GADRewardBasedVideoAd
,GADNativeExpressAdView
иGADInstreamAd
были удалены. - Все классы с префиксом
DFP
были заменены префиксомGAM
.
Класс v7.68.0 | Класс v8.0.0 |
---|---|
DFPBannerView | GAMBannerView |
DFPBannerViewOptions | GAMBannerViewOptions |
DFPInterstitial | GAMInterstitialAd |
DFPRequest | GAMRequest |
GADRequestError | NSError |
GADUnifiedNativeAdView | GADNativeAdView |
GADUnifiedNativeAd | GADNativeAd |
GADUnifiedNativeAdAssetIdentifiers | GADNativeAdAssetIdentifiers |
GADUnifiedNativeAdDelegate | GADNativeAdDelegate |
GADUnifiedNativeAdUnconfirmedClickDelegate | GADNativeAdUnconfirmedClickDelegate |
GADNativeCustomTemplateAd | GADCustomNativeAd |
GADNativeCustomTemplateAdLoaderDelegate | GADCustomNativeAdLoaderDelegate |
GADNativeAdDelegate | GADCustomNativeAdDelegate |
GADInAppPurchase | Удаленный |
GADInterstitial | GADInterstitialAd |
GADNativeExpressAdView | Удаленный |
GADRewardBasedVideoAd | Удаленный |
GADInstreamAd | Удаленный |
GADInstreamAdView | Удаленный |
Методы удалены/заменены
В таблице ниже перечислены конкретные изменения в версии 8. Вкратце:
- Ранее устаревшие методы и свойства были удалены.
-
-willLeaveApplication:
методы делегирования удалены для всех форматов. - Имя класса рекламной сети перенесено в свойство
GADResponseInfo
. - Идентификатор тестового устройства перенесен в свойство
GADRequestConfiguration
.
Класс v7.68.0 | API v7.68.0 | API версии 8.0.0 | Примечания |
---|---|---|---|
GADMobileAds | +configureWithApplicationID: | -startWithCompletionHandler: | Идентификатор приложения теперь установлен в Info.plist. |
+отключить автоматическую отчетность о покупках в приложении | -disableAutomatedInApp PurchaseReporting | ||
+disableSDKCrashReporting | -disableSDKCrashReporting | ||
GADRequest | тестовые устройства | GADRequestConfiguration .testdeviceidentifiers | Свойство testDeviceIdentifiers применяется ко всем запросам объявлений, тогда как старое свойство testDevices устанавливалось для каждого запроса. |
пол | Удаленный | ||
день рождения | Удаленный | ||
+sdkVersion | GADMobileAds.sharedInstance .sdkVersion | ||
-setBirthday WithMonth:day:year: | Удаленный | ||
-setLocationWithDescription: | -setLocationWith Широта:долгота:точность: | ||
-tagForChildDirectedTreatment: | [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment] | ||
GADErrorCode | kGADError* | GADError* | Префикс k удален из всех констант кодов ошибок. |
GADBannerView | hasAutoRefreshed | автозагрузка включена | |
inAppPurchaseDelegate | Удаленный | ||
mediatedAdView | Удаленный | ||
adNetworkClassName | responseInfo .adNetworkClassName | ||
DFPBannerView | -setValidAdSizesWithSizes: | -setValidAdSizes: | |
DFPBannerViewOptions | -adSizeDelegate | Удаленный | |
GADBannerViewDelegate | -adViewDidReceiveAd: | -bannerViewDidReceiveAd: | |
-adView:didFailToReceive AdWithError: | -bannerView:didFailToReceive AdWithError: | ||
-adViewWillPresentScreen: | -bannerViewWillPresentScreen: | ||
-adViewWillDismissScreen: | -bannerViewWillDismissScreen: | ||
-adViewDidDismissScreen: | -bannerViewDidDismissScreen: | ||
-adViewWillLeaveApplication: | Удаленный | ||
GADNativeCustomTemplateAd | templateID | GADCustomNativeAd.formatID | |
-performClickOnAssetWithKey: customClickHandler: | -performClickOnAssetWithKey: | ||
GADNativeAdImageAd LoaderOptions | предпочтительная ориентация изображения | GADNativeAdMediaAdOptions .mediaAspectRatio | |
GADInterstitial | inAppPurchaseDelegate | Удаленный | |
isReady | Удаленный | Вместо этого используйте canPresentFrom RootViewController:error:. | |
hasBeenUsed | Удаленный | ||
-init | -initWithAdUnitID: | ||
-setAdUnitID: | -initWithAdUnitID: | ||
adNetworkClassName | responseInfo .adNetworkClassName | ||
-interstitialПокинетПриложение: | Удаленный | ||
GADUnifiedNativeAd | видеоконтроллер | mediaContent.videoController | |
adNetworkClassName | responseInfo .adNetworkClassName |