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ılmadı.
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 öğeAdManager
olarak yeniden adlandırıldı.GADM
ön ekiyle başlayan öğeMediation
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.
max_ad_content_rating
anahtarınınadditionalParameters
içine aktarılması artık desteklenmiyor. Maksimum reklam içeriği derecelendirmesi ayarlamak için reklam içeriği filtreleme bölümüne bakın.
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) 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 |
|
|
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 gereklidir 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 özel 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: |
-loadBannerForAdConfiguration: |
|
-requestInterstitialAdWith |
-loadInterstitialFor |
|
-requestNativeAdWithParameter:
|
-loadNativeAdFor |
|
Yok | -loadInterscrollerAdFor |
|
Yok | -loadRewardedAdFor |
|
-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 |
|
-customEventBannerWill -customEventInterstitialWill
|
-willPresentFullScreenView |
|
-customEventBannerWill -customEventInterstitialWill
|
-willDismissFullScreenView |
|
-customEventBannerDid -customEventInterstitialDid
|
-didDismissFullScreenView |
|
-customEventBannerWill -customEventInterstitialWill
|
-willBackgroundApplication |
|
viewControllerFor |
-[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 ekli 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 desteği sonlandırıldı.
Bunun yerine mediaContent 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, bazı API'lerle ilgili yeniden adlandırma ve kaldırma işlemlerinin yanı sıra birkaç önemli değişiklik yapılmıştır.
Tam ekran biçimi API güncellemeleri
8.0.0 sürümünden itibaren geçiş reklamları ve ödüllü reklamlar, daha tutarlı bir deneyim için genel bir tam ekran reklam stilini paylaşır. Bu yeni tam ekran reklam API'lerinin 7. sürüm tam ekran reklam API'lerinden iki önemli farkı vardır:
Statik sınıf yöntemi
load
.Tam ekran reklam yükleme/göstermeyle ilgili önceki yaklaşım aşağıdaki gibidir:
- Bir reklam nesnesi örneği oluşturun ve bu nesneye ait bir referans tutun.
- Yükleme ve gösterme geri çağırmalarını işleyen bir temsilci atayın.
- Reklam yükleyin.
- Reklamın
isReady
kullanılarak yüklenip yüklenmediğini kontrol edin. - Reklamı gösterin.
8. sürümde yaklaşım biraz değişir. Yükleme geri çağırma işlevleri artık temsilcinin bir parçası değildir. Bunun yerine, tamamlama işleyicisi olarak
load
yöntemine iletilir:- Reklam sınıfında statik bir yükleme yöntemi çağırın ve yükleme tamamlanma işleyicisi sağlayın.
- Yükleme tamamlanma geri çağırma işlevinde, döndürülen yüklenmiş reklama referans verin.
- Gösterme geri aramalarını işleyen bir temsilci atayın.
- Reklamı gösterin.
Yeni yaklaşımın sağladığı avantajlar şunlardır:
- Yüklenmemiş bir reklama referans vermezsiniz.
- Yüklenmekte olan bir reklam nesnesini tutmanız gerekmez.
Tutarlı reklam etkinlikleri.
Etkinlik türü Mevcut API v8 API Yükleme etkinlikleri GADInterstitialDelegate
veyaGADRewardedAdDelegate
GAMInterstitialAdLoadCompletionHandler
veyaGADRewardedAdLoadCompletionHandler
Sunu etkinlikleri GADFullScreenContentDelegate
Daha önce, reklam etkinliklerini dinlemek için
GADInterstitialDelegate
protokolünü bir geçiş reklamının temsilci mülküne uygulayan bir sınıf veya kullandığınız biçime bağlı olarakGADRewardedAdDelegate
protokolünü bir ödüllü reklamın temsilci mülküne uygulayan bir sınıf kaydederdiniz. Aynı temsilcinin, bir reklamın hem yükleme hem de sunum yaşam döngüsü ile ilgili yöntemleri vardı.8. sürümde yükleme ve sunum etkinlikleri ayrıdır. Artık reklamı yüklemeden önce tek bir temsilci ayarlamak yerine, reklamı göstermeden önce dilediğiniz zaman
GADFullScreenContentDelegate
kaydedebilirsiniz. Her biçime özgü reklam yükleme etkinlikleri, load yönteminde iletilen tek bir yükleme tamamlama işleyicisine taşınır.
Geçiş reklamı
Reklam yükleme
Aşağıdaki kod snippet'lerinde, geçiş reklamını nasıl yükleyeceğiniz ve reklam yüklendiğinde veya yüklenmediğinde etkinlikleri nasıl dinleyeceğiniz gösterilmektedir.
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"); } }
Sunum reklam etkinlikleri
Aşağıdaki kod snippet'lerinde, reklamın gösterilmesi (başarılı veya başarısız) ve kapatılması için geri çağırma işlevlerini nasıl işleyeceğiniz gösterilmektedir.
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ükleme
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ü ele alma
Ödüllü reklamlar, kullanıcı ödül kazandığında etkinliği yönetmenizi gerektirir. GADRewardedAd
API'sinin 7. sürümünde, rewardedAd:userDidEarnReward:
'yi GADRewardedAdDelegate
protokolünün bir parçası olarak uygularsınız.
8. sürümde, reklamı sunmak için GADUserDidEarnRewardHandler
öğesini uygularsınız.
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"); } }
Sunum reklam etkinlikleri
GADRewardedAd
API ile reklamı sunan yönteme bir GADRewardedAdDelegate
iletebilirsiniz. GADRewardedAd
API ile, reklamı sunmadan önce reklamda GADFullscreenContentDelegate
öğesini mülk olarak ayarlarsınız.
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 GADRewardBasedVideoAd API'sinin kaldırılması
Daha yeni olan GADRewardedAd
API, ilk olarak Mart 2019'da kullanıma sunuldu ve 18 aydan uzun süredir tercih edilen ödüllü API oldu. Tek seferde birden fazla ödüllü reklam yükleme özelliği de dahil olmak üzere eski GADRewardedBasedVideoAd
API'ye kıyasla daha fazla geliştirme yapılmıştır.
Eski GADRewardedBasedVideoAd
API'si, SDK 8.0.0 sürümünde kaldırılmıştır.
Akıllı banner'ın kullanımdan kaldırılması ve uyarlanabilir banner'ın kullanıma sunulması
Akıllı banner reklamların desteği sonlandırılarak uyarlanabilir banner reklamlara geçiş yapılıyor. Uyarlanabilir banner'lar, reklam genişliğini belirleme konusunda üstün performans ve daha fazla esneklik sağlar. Tam genişlikli banner'ları kullanmaya devam etmek istiyorsanız bunu aşağıdaki kod snippet'inde gösterildiği gibi uyarlanabilir banner'ı kullanarak da yapabilirsiniz:
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
Leave application callback removal
Tüm reklam biçimleri için willLeaveApplication
geri çağırma işlevi, applicationDidEnterBackground:
ve sceneDidEnterBackground:
yöntemlerinin kullanılması için kaldırıldı. OS düzeyindeki API'leri kullanarak, kullanıcılar uygulamanızdan ayrıldığında (reklam etkileşiminden kaynaklanıp kaynaklanmadığına bakılmaksızın) bildirim alırsınız.
willLeaveApplication
geri çağırma işlevinin hiçbir zaman bir reklam tıklaması işleyicisi olarak tasarlanmadığını ve tıklamaları bildirmek için bu geri çağırmaya güvenmenin doğru bir metrik oluşturmadığını unutmayın. Örneğin, harici bir tarayıcı başlatan AdChoices simgesinin tıklanması geri çağırma işlevini tetikler ancak tıklama olarak sayılmaz.
Sınıf yeniden adlandırmaları
Aşağıdaki tabloda, 8. sürümde değişen veya kaldırılan belirli sınıf adları listelenmiştir. Özet olarak:
GADUnifiedNativeAd
ile ilgili tüm sınıflarGADNativeAd
olarak yeniden adlandırıldı.GADRewardBasedVideoAd
,GADNativeExpressAdView
veGADInstreamAd
kaldırıldı.DFP
ön ekiyle başlayan tüm sınıflarGAM
ön ekiyle 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 |
GADUnifiedNativeAd | 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, 8. sürümdeki değişiklikler listelenmiştir. Özet olarak:
- Daha önce kullanımdan kaldırılan yöntemler ve özellikler kaldırıldı.
-willLeaveApplication:
temsilci yöntemleri 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
mülküne taşındı.
v7.68.0 Sınıfı | v7.68.0 API | v8.0.0 API | Notlar |
---|---|---|---|
GADMobileAds | +configureWithApplicationID: | -startWithCompletionHandler: | Uygulama kimliği artık Info.plist'te ayarlanmıştır. |
+disableAutomatedInApp |
-disableAutomatedInApp |
||
+disableSDKCrashReporting | -disableSDKCrashReporting | ||
GADRequest | testDevices | GADRequestConfiguration |
testDeviceIdentifiers mülkü tüm reklam istekleri için geçerlidir. Eski testDevices mülkü ise istek başına ayarlanıyordu. |
gender | Kaldırıldı | ||
doğum günü | Kaldırıldı | ||
+sdkVersion | GADMobileAds.sharedInstance |
||
-setBirthday |
Kaldırıldı | ||
-setLocationWithDescription: | -setLocationWith |
||
-tagForChildDirectedTreatment: | [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment] | ||
GADErrorCode | kGADError* | GADError* | k ön eki tüm hata kodu sabitlerinden çıkarılır.
|
GADBannerView | hasAutoRefreshed | autoloadEnabled | |
inAppPurchaseDelegate | Kaldırıldı | ||
mediatedAdView | Kaldırıldı | ||
adNetworkClassName | responseInfo |
||
DFPBannerView | -setValidAdSizesWithSizes: | -setValidAdSizes: | |
DFPBannerViewOptions | -adSizeDelegate | Kaldırıldı | |
GADBannerViewDelegate | -adViewDidReceiveAd: | -bannerViewDidReceiveAd: | |
-adView:didFailToReceive |
-bannerView:didFailToReceive |
||
-adViewWillPresentScreen: | -bannerViewWillPresentScreen: | ||
-adViewWillDismissScreen: | -bannerViewWillDismissScreen: | ||
-adViewDidDismissScreen: | -bannerViewDidDismissScreen: | ||
-adViewWillLeaveApplication: | Kaldırıldı | ||
GADNativeCustomTemplateAd | templateID | GADCustomNativeAd.formatID | |
-performClickOnAssetWithKey: |
-performClickOnAssetWithKey: | ||
GADNativeAdImageAd |
preferredImageOrientation | GADNativeAdMediaAdOptions |
|
GADInterstitial | inAppPurchaseDelegate | Kaldırıldı | |
isReady | Kaldırıldı | Bunun yerine canPresentFrom |
|
hasBeenUsed | Kaldırıldı | ||
-init | -initWithAdUnitID: | ||
-setAdUnitID: | -initWithAdUnitID: | ||
adNetworkClassName | responseInfo |
||
-interstitialWill |
Kaldırıldı | ||
GADUnifiedNativeAd | videoController | mediaContent.videoController | |
adNetworkClassName | responseInfo |