SDK taşıma

Bu sayfada, iOS için Google Mobile Ads SDK'sının mevcut ve önceki sürümlerine yönelik taşıma işlemleri ele alınmaktadır. 12.0.0 sürümünün Şubat 2025'te yayınlanması bekleniyor.

11 sürümünden v12 sürümüne taşıma

Xcode 16.0'a yükseltme

Desteklenen minimum Xcode sürümü 16.0'a yükseltildi.

Swift adlandırma desteği

12.0.0 sürümü, Swift API Tasarım Yönergeleri'ndeki adlandırma kurallarına uymak için yapılan değişiklikleri içerir. Bu değişiklikler yalnızca Swift'i etkiler. Objective-C API'lerinde isim değişikliği yapılmamıştır.

Sınıf ön ekinde yapılan değişiklikler

Sınıf ön eklerinde aşağıdaki değişiklikler yapıldı:

  • Tüm türlerin adlarından GAD ön eki kaldırıldı.
  • GAM ön ekiyle başlayan öğe AdManager olarak yeniden adlandırıldı.
  • GADM ön ekiyle başlayan öğe Mediation olarak yeniden adlandırıldı.

Hataları çözme

Bu değişikliklerden kaynaklanan hataları gidermenin en iyi yolu Düzeltme aracını kullanmaktır.

Adlandırma çakışmalarını çözme

Adlandırma çakışmalarını çözmek için modül tarafından sağlanan ad alanını kullanın. Örneğin, GADRequest artık Request olarak adlandırılıyor. Aşağıdaki örnek ad alanı, Google Mobile Ads SDK Request sınıfını gösterir:

import GoogleMobileAds
...
var request: GoogleMobileAds.Request?

Swift değişikliklerinin ayrıntılı listesi

Aşağıdaki tablolarda Swift API'lerinde yapılan değişiklikler listelenmiştir:

11. sürüm 12 Sürümü
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
Uyumlulaştırma
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
Gerçek zamanlı teklif verme
GADRTBAdapter RTBAdapter
GADRTBMediationSignalsConfiguration RTBMediationSignalsConfiguration
GADRTBRequestParameters RTBRequestParameters

Sabitler

11. sürüm 12 Sürümü
GADAdLoaderAdType.gamBanner AdLoaderAdType.adManagerBanner
GADAdSizeBanner AdSizeBanner
GADAdSizeFluid AdSizeFluid
GADAdSizeFullBanner AdSizeFullBanner
GADAdSizeInvalid AdSizeInvalid
GADAdSizeLargeBanner AdSizeLargeBanner
GADAdSizeLeaderboard AdSizeLeaderboard
GADAdSizeMediumRectangle AdSizeMediumRectangle
GADAdSizeSkyscraper AdSizeSkyscraper
GoogleMobileAdsVersionString GoogleMobileAdsVersion

Özellikler

Tür 11. sürüm 12 Sürümü
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

İşlevler

Tür 11. sürüm 12 Sürümü
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:)
Uyumlulaştırma
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:)

Videonun sessiz durumunu kontrol etmeye yönelik API değişiklikleri

GADVideoController üzerindeki isMuted mülkü ve setMute: yöntemi, muted mülkü ile değiştirilir.

Satır içi uyarlanabilir reklamlarda yapılan değişiklikler

Alan kullanımını optimize etmek için satır içi uyarlanabilir reklamlar başlangıçta çerçevede yer kaplamaz. Satır içi uyarlanabilir reklam boyutuyla CGSizeFromGADAdSize(_:) çağrısı yaptığınızda Google Mobile Ads SDK'sı bir reklam döndürene kadar artık 0 yüksekliği döndürülür.

Özel arama reklamları kaldırıldı

Aşağıdaki sınıflar, değiştirilmeden kaldırılır:

  • GADDynamicHeightSearchBannerView
  • GADDynamicHeightSearchRequest
  • GADSearchBannerView

Hata kodlarında yapılan değişiklikler

Aşağıdaki hata kodları değiştirildi:

Sınıf Notlar
GADErrorMediationNoFill Hatalar artık GADErrorNoFill olarak döndürülüyor.
GADErrorReceivedInvalidResponse GADErrorReceivedInvalidAdString ile değiştirildi.

GADSimulatorID kaldırıldı

GADSimulatorID kaldırıldı. Simülasyon araçları varsayılan olarak test modundadır.

Özel hedeflemede yapılan değişiklikler

GADRequest üzerindeki customTargeting sözlüğünde artık değer türü olarak String yerine Any kullanılıyor. Bu sayede API'ye sayısal değerler iletebilirsiniz.

Ekstralar parametrelerinde yapılan değişiklikler

  • additionalParameters içine anahtar aktarmak artık Ad Manager reklam isteklerine özel hedefleme uygulamaz. Özel hedefleme uygulamak için özel hedefleme başlıklı makaleyi inceleyin.

v10'dan v11'e taşıma

Minimum dağıtım hedefi

Minimum dağıtım hedefi iOS 12'ye yükseltildi.

Minimum Xcode sürümü

Desteklenen minimum Xcode sürümü 15.1'e yükseltildi.

iOS 12'de reklam yayını durduruldu

Google Mobile Ads SDK'sı 11.0.0 sürümü yalnızca iOS 13 ve sonraki sürümleri çalıştıran cihazlarda reklam yayınlar.

GoogleAppMeasurement bağımlılığı kaldırıldı

11.0.0 sürümünde GoogleAppMeasurement bağımlılığı kaldırıldı. AdMob'daki kullanıcı metrikleri açma/kapatma düğmesini destekleyen bu bağımlılık 2024'ün başlarında kullanımdan kaldırılacak. AdMob'da kullanıcı metriklerini toplamaya devam etmek için AdMob uygulamanızı Firebase'e bağlayın ve Firebase için Google Analytics SDK'sını uygulamanıza entegre edin.

Tam ekran reklam sunumunda yapılan değişiklikler

Aşağıdaki değişiklikler çeşitli reklam biçimlerini etkiler:

  • Uygulama açılışı
  • Geçiş reklamı
  • Ödüllü
  • Ödüllü geçiş reklamı

-canPresentFromRootViewController:error: ve -presentFromRootViewController: içindeki görüntüleme denetleyicisi parametresi, null olabilir. "nil" iletilirse reklam, görünüm denetleyici hiyerarşisindeki en üst görünüm denetleyiciden sunulur.

Kaldırılan yöntemler

Aşağıdaki yöntemler kaldırıldı.

v11.0.0 Türü Yöntem Notlar
GADAppOpenAd load(withAdUnitID adUnitID: String, request: GADRequest?, orientation: UIInterfaceOrientation) Bunun yerine load(withAdUnitID adUnitID: String, request: GADRequest?) kullanın.
GADMediationBannerAdEventDelegate willBackgroundApplication() Değişim yapılmaz.
GADMediationInterstitialAdEventDelegate willBackgroundApplication() Değişim yapılmaz.
GADMediationNativeAdEventDelegate willBackgroundApplication() Değişim yapılmaz.
GADMediationRewardedAdEventDelegate didRewardUser(with reward: GADAdReward) Bunun yerine didRewardUser() kullanın.
GADMediatedUnifiedNativeAdNotificationSource mediatedNativeAdWillLeaveApplication(_ mediatedNativeAd: GADMediatedUnifiedNativeAd) Değişim yapılmaz.
GADRequestConfiguration setSameAppKeyEnabled(_ enabled: Bool) Bunun yerine setPublisherFirstPartyIDEnabled(_ enabled: Bool) politikasını kullanın.
tagForUnderAge(ofConsent underAgeOfConsent: Bool) Bunun yerine tagForUnderAgeOfConsent özelliğini kullanın.
tag(forChildDirectedTreatment childDirectedTreatment: Bool) Bunun yerine tagForChildDirectedTreatment özelliğini kullanın.

Kaldırılan tesisler

Aşağıdaki özellikler kaldırılır.

v11.0.0 Sınıfı Mülk Notlar
GADMediationAdConfiguration hasUserLocation Değişim yapılmaz.
userLatitude
userLongitude
userLocationAccuracyInMeters
childDirectedTreatment Bunun yerine GADMobileAds.sharedInstance.requestConfiguration.tagForChildDirectedTreatment kullanın.
GADResponseInfo adNetworkClassName Bunun yerine loadedAdNetworkResponseInfo'deki adNetworkClassName'ü kullanın.

GADAdFormatUnknown kaldırıldı

GADAdFormatUnknown, değiştirilmeden kaldırıldı.

Günlüğe kaydetme SDK sürümünde yapılan değişiklikler

11.0.0 sürümünde sdkVersion kaldırılmıştır. Google Mobile Ads SDK sürümünü günlüğe kaydetmek için bunun yerine versionNumber değerini kullanın.

Sürüm 10.0.0

GADMobileAds.sharedInstance().sdkVersion

Sürüm 11.0.0

GADGetStringFromVersionNumber(GADMobileAds.sharedInstance().versionNumber)

GADAdLoader hata işlemesinde yapılan değişiklikler

11.0.0 sürümünden itibaren GADAdLoader, delegate istenen reklam türlerinin temsilci protokolüne uygun değilse reklam isteği göndermez. Daha önce, reklam isteği yapıldıktan sonra başarısız oluyordu.

Test davranışındaki değişiklikler

Aşağıdaki mülkler true döndürdüğünde güncellenen koşulları gösteren tabloya bakın.

Sınıf Mülk
GADMediationAdConfiguration isTestRequest
GADCustomEventRequest isTesting
v10.0.0 v11.0.0
  • Cihaz, testDeviceIdentifiers dosyasında açıkça test cihazı olarak tanımlanmıştır.
  • Cihaz, testDeviceIdentifiers dosyasında açıkça test cihazı olarak tanımlanmıştır.
  • Cihaz bir simülatördür.
  • Cihaz, Ad Manager kullanıcı arayüzünde açıkça test cihazı olarak belirtilmiş olmalıdır.

v9'dan v10'a taşıma

iOS 11'de reklam yayını durduruldu

Google Mobile Ads SDK'sı 10.0.0 sürümü yalnızca iOS 12 ve sonraki sürümleri çalıştıran cihazlarda reklam yayınlar.

Google Mobile Ads SDK'sı 10.0.0 sürümüne yükseltme yaptığınızda iOS 11 ve iOS 10 cihazlardaki uygulamanız çalışmaz ancak bu cihazlarda reklam yayınlanmaz.

Ad Manager uygulama kimliği şartı

Ad Manager uygulama kimliği artık tüm Ad Manager uygulamaları için Info.plist içinde zorunludur ve ca-app-pub-################~########## biçimini gerektirir. Daha fazla bilgi için Info.plist dosyanızı güncelleme başlıklı makaleyi inceleyin.

GoogleAppMeasurement.xcframework koşulu

GoogleAppMeasurement.xcframework artık tüm Ad Manager uygulamaları için zorunludur. Google Mobile Ads SDK'sını Cocoapods veya Swift Package Manager üzerinden yüklerseniz ek işlem yapmanız gerekmez. Çerçeveleri manuel olarak yüklerseniz daha fazla bilgi için Manuel İndirme bölümüne bakın.

Bit koduyla derleme artık desteklenmiyor

Google Mobile Ads SDK'sını entegre etmek için artık mobil uygulamalarınızda bit kodunu devre dışı bırakmanız gerekir.

Kaldırılan türler

Tür Notlar
GADGender Değişim yapılmaz.
GADMRewardBasedVideoAdNetworkAdapterProtocol Ağları Seç bölümünde listelenen tüm ödüllü uyumlulaştırma bağdaştırıcılar, bir yıldan uzun süredir bu protokolleri kullanmayı bıraktı. Uyumlulaştırma ve özel etkinlikler için GADMediationAdapter'ı kullanın.
GADMRewardBasedVideoAdNetworkConnectorProtocol

Kaldırılan tesisler

Aşağıdaki özellikler, değiştirilmeden kaldırılır.

v10.0.0 Sınıfı Mülk
GADMediationAdRequest userBirthday
userGender
userHasLocation
userLatitude
userLongitude
userLocationAccuracyInMeters
userLocationDescription
GADCustomEventRequest userHasLocation
userLatitude
userLongitude
userLocationAccuracyInMeters
userLocationDescription

v8'den v9'a taşıma

iOS 10'da reklam yayını durduruldu

Google Mobile Ads SDK'sı 9.0.0 sürümünün desteklediği minimum iOS sürümü iOS 11'dir.

Google Mobile Ads SDK'sı 9.0.0 sürümüne yükseltme yaptığınızda iOS 10 cihazlardaki uygulamanız çalışmaz ancak bu cihazlarda reklam yayınlanmaz.

Durum çubuğu denetimlerinin daha sıkı uygulanması

9.0.0 sürümünden itibaren, tam ekran biçiminde reklamlar sunduğunuzda uygulamanız, reklamların durum çubuğunun sunumunu kontrol edebilmesini sağlamalıdır. Bunu yapmazsanız günlüklerde bir hata mesajı görürsünüz.

Uygulamanızdaki görünüm denetleyicilerinin düzenine bağlı olarak, bu işlemi yapmak için herhangi bir değişiklik yapmanız gerekmeyebilir. Reklamınızın rootViewController bölümünde childViewControllerForStatusBarHidden özelliğini ayarlamanız gerekip gerekmediğini değerlendirin.

adDidPresentFullScreenContent: adWillPresentFullScreenContent: olarak yeniden adlandırın:

Davranışta değişiklik yoktur. Temsilci yöntemi, reklam sunulmadan hemen önce çağrılır. Bu nedenle yeni yöntem adı, işlevini daha iyi yansıtır.

GADRequest'te konum ayarı API'sini kaldırma

Konum verileri Google tarafından reklamları hedeflemek için kullanılmadığından - (void)setLocationWithLatitude:longitude:accuracy:, GADRequest'ten silindi. Gerekirse bilgileri üçüncü taraf reklam ağlarına sağlamak için üçüncü taraf API'leri kullanın.

Özel etkinlik arayüzlerinin desteğinin sonlandırılması

Özel etkinlikler, Ad Manager uyumlulaştırmasını kullanan yayıncıların desteklenen reklam ağlarından biri olmayan bir reklam ağı için şelale uyumlulaştırması eklemesine olanak tanır.

Tüm özel etkinlik protokollerinin desteği sonlandırıldı. Bunun yerine, aynı işlevleri elde etmek için mevcut GADMediationAdapter ve GADMediationAdEventDelegate protokollerini kullanın. Bu değişiklik, netliği artırır ve daha önce kullanılamayan ödüllü reklamlar ve kaydırma reklamları için özel etkinlikler oluşturmanıza olanak tanır.

API'ler

Aşağıdaki tabloda, 9.0.0 sürümünden itibaren kullanılması gereken özel etkinlik API'lerine karşılık gelen uyumlulaştırma bağdaştırıcısı API'leri listelenmiştir.

v8 v9
GADCustomEventBanner
GADCustomEventInterstitial
GADCustomEventNativeAd
GADMediationAdapter GADMediationBannerAd
GADMediationInterstitialAd
GADMediationInterscrollerAd
GADMediationRewardedAd
GADMediationNativeAd
delegate Temsilci, GADMediationAdapter sınıfının her bir yükleme işlevinin yükleme tamamlama işleyicisi tarafından döndürülür
-init -init
-requestBannerAd:parameter:label:request: -loadBannerForAdConfiguration:completionHandler:
-requestInterstitialAdWithParameter:label:request: -loadInterstitialForAdConfiguration:completionHandler:
-requestNativeAdWithParameter:request:adTypes:options:rootViewController: -loadNativeAdForAdConfiguration:completionHandler:
Yok -loadInterscrollerAdForAdConfiguration:completionHandler:
Yok -loadRewardedAdForAdConfiguration:completionHandler:
-presentFromRootViewController: -presentFromViewController:
-handlesUserClicks -handlesUserClicks
-handlesUserImpressions -handlesUserImpressions

Temsilci yöntemleri

Aşağıdaki tabloda, 9.0.0 sürümünden itibaren kullanılması gereken özel etkinlik temsilcisi yöntemlerine karşılık gelen uyumlulaştırma reklam etkinliği temsilcisi yöntemleri listelenmiştir.

v8 v9
GADCustomEventBannerDelegate
GADCustomEventInterstitialDelegate
GADCustomEventNativeAdDelegate
GADMediationAdEventDelegate GADMediationAd
-customEventBanner:didReceiveAd:
-customEventInterstitialDidReceiveAd:
Reklam yükleme durumu, GADMediationAdapter sınıfındaki her yükleme işlevinin yükleme tamamlama işleyicisine dahil edilir.
-customEventBanner:didFailAd:
-customEventInterstitial:didFailAd:
-customEventBannerWasClicked:
-customEventInterstitialWasClicked:
-reportClick
-customEventBannerWillPresentModal:
-customEventInterstitialWillPresentModal:
-willPresentFullScreenView
-customEventBannerWillDismissModal:
-customEventInterstitialWillDismissModal:
-willDismissFullScreenView
-customEventBannerDidDismissModal:
-customEventInterstitialDidDismissModal:
-didDismissFullScreenView
-customEventBannerWillLeaveApplication:
-customEventInterstitialWillLeaveApplication:
-willBackgroundApplication
viewControllerForPresentingModalView -[GADMediationBannerAd view]

Kaldırılan/değiştirilen diğer yöntemler ve sabitler

Yöntem, sabit veya mülkte yapılan değişiklikler
kGAD- ön ek eklenmiş sabitler Kaldırıldı. GAD- ön ekiyle başlayan sabitler kullanın.
GADAdNetworkResponseInfo credentials kaldırıldı. Bunun yerine adUnitMapping
GAMRequest GAMRequest'daki kGAMSimulatorID desteği sonlandırıldı. Bunun yerine GADRequestConfiguration içinde GADSimulatorID kullanın.
GADCustomNativeAd GADCustomNativeAd'daki mediaView için destek sonlandırıldı. Bunun yerine mediaContent politikasını kullanın.
GoogleMobileAds'te Uygulama İçi Satın Alma API'leri GoogleMobileAds'daki inAppPurchase API'leri kaldırıldı.

v7'den v8'e taşıma

Google Mobile Ads SDK'sının 8.0.0 sürümünde, ve API'lerin kaldırılması konusunda ısrarcı olduk.

Tam ekran biçim API güncellemeleri

8.0.0 sürümünden itibaren, geçiş reklamları ve ödüllü reklamlar genel bir tam ekran reklam stilini kullanın. Bu yeni tam ekran reklam API'lerinde iki sürüm 7 tam ekran reklam API'lerinden önemli farkları vardır:

  1. Statik sınıf yöntemi load.

    Tam ekran reklam yüklemeye/göstermeye yönelik önceki yaklaşım şu şekildedir:

    1. Reklam nesnesi örneği oluşturun ve buna referans verin.
    2. Yükleme ve geri çağırma işlevleriyle ilgilenen bir temsilci atayın.
    3. Bir reklam yükleyin.
    4. Reklamın isReady ile yüklenip yüklenmediğini kontrol edin.
    5. Reklamı gösterin.

    8. sürümde yaklaşım biraz değişiyor. Geri çağırmaları yükleme özelliği artık kullanılmıyor görevi görür. Bunun yerine, load yöntemine tamamlama işleyici:

    1. Reklam sınıfında bir statik yükleme yöntemi çağırın ve yükleme tamamlama sağlayın gösterir.
    2. Yükleme tamamlama geri çağırmasında geri döndü.
    3. Program geri çağırmalarıyla ilgilenen bir temsilci atayın.
    4. Reklamı gösterin.

    Yeni yaklaşım şu avantajları sağlar:

    • Yüklenmeyen bir reklama asla atıfta bulunamazsınız.
    • Yükleme sırasında bir reklam nesnesini basılı tutmanız gerekmez.
  2. Tutarlı reklam etkinlikleri.

    Etkinlik türü Mevcut API v8 API'sı
    Yükleme etkinlikleri GADInterstitialDelegate veya GADRewardedAdDelegate GAMInterstitialAdLoadCompletionHandler veya GADRewardedAdLoadCompletionHandler
    Sunu etkinlikleri GADFullScreenContentDelegate

    Önceden, reklam etkinliklerini dinlemek için, bu durumda olan , GADInterstitialDelegate protokolüne eklemeli veya , GADRewardedAdDelegate hangi biçime bağlı olarak ödüllü reklamın yetki verilen mülküne protokol protokolü gösterir. Aynı yetki verilen kullanıcının hem yükleme hem de yüklemeyle ilgili bir reklamın sunu yaşam döngüsü

    Sürüm 8'de, yükleme ve sunu etkinlikleri ayrıdır. Artık şunları yapabilirsiniz: bir kaydettirmek GADFullScreenContentDelegate tek bir anahtar kelime ayarlamanız yerine, bir reklam göstermeden önce yetki vermeniz gerekir. Her birine özel reklam sayısı etkinlikleri biçiminde, yükleme yönteminde iletilen tek bir yükleme tamamlama işleyiciye geçin.

Geçiş reklamı

Reklam yükle

Aşağıdaki kod snippet'leri, bir geçiş reklamını nasıl yükleyeceğinizi ve reklamlar başarıyla yüklenemediğinde veya yüklenemediğinde gerçekleşen etkinlikleri ifade eder.

sürüm 7

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;
  }];
}

Görüntülü reklam

sürüm 7

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");
  }
}

Sunu reklamı etkinlikleri

Aşağıdaki kod snippet'leri, reklamınızın gösterildiği ve sonuç gösterilir (başarıyla veya başarısız bir şekilde) ve kapatıldığında.

sürüm 7

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.");
}

Ödüllü

Reklam yükle

sürüm 7

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;
}

Görüntülü reklam ve ödülü kullan

Ödüllü reklamlar, bir kullanıcı ödül kazandığında etkinliği gerçekleştirmenizi gerektirir. Entegre GADRewardedAd API'nin 7. sürümünü kullanıyorsanız GADRewardedAdDelegate protokolünün bir parçası olarak rewardedAd:userDidEarnReward:. Sürüm 8'de, aşağıdakileri yapmak için GADUserDidEarnRewardHandler'yı uygularsınız: reklamı sunun.

sürüm 7

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");
  }
}

Sunu reklamı etkinlikleri

GADRewardedAd API ile yönteme bir GADRewardedAdDelegate iletirsiniz reklam öğesidir. GADRewardedAd API ile Sunumdan önce reklamda bir özellik olarak GADFullscreenContentDelegate reklam.

sürüm 7

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.");
}

Eski GADÖdüllü TabanlıVideoAd API'nin kaldırılması

Daha yeni GADRewardedAd İlk olarak Mart 2019'da kullanıma sunulan API, 18 aydan uzun süredir API'de. Eski sürüme kıyasla daha fazla iyileştirme yapıldı Birden fazla GADRewardedBasedVideoAd API yükleme özelliği dahil ödüllü reklam örneğidir.

Eski GADRewardedBasedVideoAd API, SDK 8.0.0 sürümünde kaldırılmıştır.

Uyarlanabilir banner'ın yaygınlaşması için akıllı banner'ın kullanımdan kaldırılması

Akıllı banner reklamların desteği sonlandırılıyor uyarlanabilir banner'ın yerine reklam. Uyarlanabilir banner'lar, tüm reklam çalışmalarında daha iyi performans ve daha fazla reklam genişliğini ayarlayabilirsiniz. Tam genişlikte banner'lar kullanmaya devam etmeyi tercih ederseniz aşağıdaki kod snippet'inde gösterildiği gibi uyarlanabilir banner kullanılarak yapılabilir:

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

Uygulama geri arama kaldırma işleminden çık

Tüm reklam biçimleri için willLeaveApplication geri çağırma lehinehasına çıkarıp applicationDidEnterBackground: ve sceneDidEnterBackground: yöntemlerine göz atın. OS düzeyinde API'lerin kullanılması, hangisi olursa olsun kullanıcılar uygulamanızdan ayrıldığında sizi bilgilendirir bir reklam etkileşiminden kaynaklanıp kaynaklanmadığını gösterir.

Geri çağırma işlevinin willLeaveApplication hiçbir zaman tasarlanmadığını unutmayın ve tıklamaları raporlamak için bu geri çağırmaya dayanarak ve doğru bir metrik üretmenizi sağlar. Örneğin, Reklam Seçenekleri'nin tıklanması harici bir tarayıcı başlatan simge tıklayın.

Sınıfları yeniden adlandırma

Aşağıdaki tabloda, şurada değiştirilmiş veya kaldırılmış belirli sınıf adları listelenmiştir: 8. sürüm olduğundan emin olun. Özet olarak:

  • GADUnifiedNativeAd ile ilgili tüm sınıflar şu şekilde yeniden adlandırıldı: GADNativeAd.
  • GADRewardBasedVideoAd, GADNativeExpressAdView ve GADInstreamAd kaldırıldı.
  • DFP ön ekine sahip tüm sınıflar bir GAM önekiyle değiştirildi.
v7.68.0 Sınıfı v8.0.0 Sınıfı
DFPBannerView GAMBannerView
DFPBannerViewOptions GAMBannerViewOptions
DFPInterstitial GAMInterstitialAd
DFPRequest GAMRequest
GADRequestError NSError
GADUnifiedNativeAdView GADNativeAdView
GADBirleşikYerelReklam GADNativeAd
GADUnifiedNativeAdAssetIdentifiers GADNativeAdAssetIdentifiers
GADUnifiedNativeAdDelegate GADNativeAdDelegate
GADUnifiedNativeAdUnconfirmedClickDelegate GADNativeAdUnconfirmedClickDelegate
GADNativeCustomTemplateAd GADCustomNativeAd
GADNativeCustomTemplateAdLoaderDelegate GADCustomNativeAdLoaderDelegate
GADNativeAdDelegate GADCustomNativeAdDelegate
GADInAppPurchase Kaldırıldı
GADInterstitial GADInterstitialAd
GADNativeExpressAdView Kaldırıldı
GADRewardBasedVideoAd Kaldırıldı
GADInstreamAd Kaldırıldı
GADInstreamAdView Kaldırıldı

Kaldırılan/değiştirilen yöntemler

Aşağıdaki tabloda, sürüm 8'deki değişiklikler listelenmiştir. Özet olarak:

  • Daha önce kullanımdan kaldırılan yöntemler ve özellikler kaldırıldı.
  • -willLeaveApplication: yetki verme yöntemi tüm biçimler için kaldırıldı.
  • Reklam ağı sınıf adı GADResponseInfo mülküne taşındı.
  • Test cihazı tanımlayıcısı GADRequestConfiguration alanına taşındı
v7.68.0 Sınıfı sürüm 7.68.0 API sürüm 8.0.0 API Notlar
GADMobileAds +configureWithApplicationID: -startWithCompletionHandler: Uygulama kimliği Info.plist dosyasında ayarlanır.
+disableAutomatedInAppPurchaseReporting -disableAutomatedInAppPurchaseReporting
+disableSDKCrashReporting -disableSDKCrashReporting
GADRequest testDevices GADRequestConfiguration.testdeviceidentifiers testDeviceIdentifiers özelliği tüm reklam istekleri için geçerlidir, eski testDevices özelliği istek başına ayarlandı.
gender Kaldırıldı
doğum günü Kaldırıldı
+sdkVersion GADMobileAds.sharedInstance.sdkVersion
-setBirthdayWithMonth:day:year: Kaldırıldı
-setLocationWithDescription: -setLocationWithLatitude:longitude:accuracy:
-Çocuklara yönelik-Yönelik Değerlendirme: [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment]
GADErrorCode kGADError* GAD Hatası* k öneki tüm hata kodu sabit değerlerinden çıkarılır.
GADBannerView hasAutoRefreshed autoloadEnabled
inAppPurchaseDelegate Kaldırıldı
mediatedAdView Kaldırıldı
adNetworkClassName responseInfo.adNetworkClassName
DFPBannerView -setValidAdSizesWithSizes: -setValidAdSizes:
DFPBannerViewOptions -adSizeDelegate Kaldırıldı
GADBannerViewDelegate -adViewDidReceiveAd: -bannerViewDidReceiveAd:
-adView:didFailToReceiveAdWithError: -bannerView:didFailToReceiveAdWithError:
-adViewWillPresentScreen: -bannerViewWillPresentScreen:
-adViewWillDismissScreen: -bannerViewWillDismissScreen:
-adViewDidDismissScreen: -bannerViewDidDismissScreen:
-adViewWillLeaveApplication: Kaldırıldı
GADNativeCustomTemplateAd templateID GADCustomNativeAd.formatID
-performClickOnAssetWithKey:customClickHandler: -performClickOnAssetWithKey:
GADNativeAdImageAdLoaderOptions preferredImageOrientation GADNativeAdMediaAdOptions.mediaAspectRatio
GADInterstitial inAppPurchaseDelegate Kaldırıldı
isReady Kaldırıldı Bunun yerine canServeFromRootViewController:error: kullanın.
hasBeenUsed Kaldırıldı
-init -initWithAdUnitID:
-setAdUnitID: -initWithAdUnitID:
adNetworkClassName responseInfo.adNetworkClassName
-interstitialWillLeaveApplication: Kaldırıldı
GADBirleşikYerelReklam videoController mediaContent.videoController
adNetworkClassName responseInfo.adNetworkClassName