本頁面說明 iOS 版 Google Mobile Ads SDK 目前和舊版的遷移作業。12.0.0 版預計於 2025 年 2 月發布。
從 11 遷移至 v12
升級至 Xcode 16.0
支援的最低 Xcode 版本已提高至 16.0。
Swift 命名支援
12.0.0 版包含了一些變更,以符合 Swift API 設計指南中的命名慣例。這些變更只會影響 Swift。Objective-C API 的名稱並未變更。
類別前置字元變更
我們對類別前置字元進行了下列變更:
- 已移除所有類型名稱中的
GAD
前置字串。 - 已將
GAM
前置字串重新命名為AdManager
。 - 已將
GADM
前置字串重新命名為Mediation
。
解決錯誤
如要解決這些變更所造成的錯誤,最好的方法是使用 Fix-It 修正功能。
解決命名衝突
如要解決命名衝突問題,請使用模組提供的命名空間。例如,GADRequest
現已改名為 Request
。以下是 Google Mobile Ads SDK Request
類別的範例命名空間:
import GoogleMobileAds
...
var request: GoogleMobileAds.Request?
Swift 變更的詳細清單
下表列出對 Swift API 所做的變更:
11 版 | 12 版 |
---|---|
GADAdapterInitializationState |
AdapterInitializationState |
GADAdChoicesPosition |
AdChoicesPosition |
GADAdChoicesView |
AdChoicesView |
GADAdFormat |
AdFormat |
GADAdLoader |
AdLoader |
GADAdLoaderAdType |
AdLoaderAdType |
GADAdLoaderDelegate |
AdLoaderDelegate |
GADAdMetadataDelegate |
AdMetadataDelegate |
GADAdMetadataProvider |
AdMetadataProvider |
GADAdNetworkExtras |
AdNetworkExtras |
GADAdNetworkResponseInfo |
AdNetworkResponseInfo |
GADAdReward |
AdReward |
GADAdSize |
AdSize |
GADAdSizeDelegate |
AdSizeDelegate |
GADAdValue |
AdValue |
GADAdValuePrecision |
AdValuePrecision |
GADAppEventDelegate |
AppEventDelegate |
GADAppOpenAd |
AppOpenAd |
GADAppOpenSignalRequest |
AppOpenSignalRequest |
GADAudioVideoManager |
AudioVideoManager |
GADAudioVideoManagerDelegate |
AudioVideoManagerDelegate |
GADBannerSignalRequest |
BannerSignalRequest |
GADBannerView |
BannerView |
GADBannerViewDelegate |
BannerViewDelegate |
GADCustomEventExtras |
CustomEventExtras |
GADCustomEventRequest |
CustomEventRequest |
GADCustomNativeAd |
CustomNativeAd |
GADCustomNativeAdLoaderDelegate |
CustomNativeAdLoaderDelegate |
GADCustomNativeAdDelegate |
CustomNativeAdDelegate |
GADDebugOptionsViewControllerDelegate |
DebugOptionsViewControllerDelegate |
GADDebugOptionsViewController |
DebugOptionsViewController |
GADDisplayAdMeasurement |
DisplayAdMeasurement |
GADExtras |
Extras |
GADFullScreenPresentingAd |
FullScreenPresentingAd |
GADFullScreenContentDelegate |
FullScreenContentDelegate |
GADAdapterStatus |
AdapterStatus |
GADInitializationStatus |
InitializationStatus |
GADInterstitialAd |
InterstitialAd |
GADInterstitialSignalRequest |
InterstitialSignalRequest |
GADMediaAspectRatio |
MediaAspectRatio |
GADMediaContent |
MediaContent |
GADMediaView |
MediaView |
GADMobileAds |
MobileAds |
GADMultipleAdsAdLoaderOptions |
MultipleAdsAdLoaderOptions |
GADMuteThisAdReason |
MuteThisAdReason |
GADNativeAd |
NativeAd |
GADNativeAdLoaderDelegate |
NativeAdLoaderDelegate |
GADNativeAdView |
NativeAdView |
GADNativeAdCustomClickGestureOptions |
NativeAdCustomClickGestureOptions |
GADNativeAdDelegate |
NativeAdDelegate |
GADNativeAdImage |
NativeAdImage |
GADNativeAdImageAdLoaderOptions |
NativeAdImageAdLoaderOptions |
GADNativeAdInlineBehavior |
NativeAdInlineBehavior |
GADNativeAdInlineBehaviorOptions |
NativeAdInlineBehaviorOptions |
GADNativeAdMediaAdLoaderOptions |
NativeAdMediaAdLoaderOptions |
GADNativeAdUnconfirmedClickDelegate |
NativeAdUnconfirmedClickDelegate |
GADNativeAdViewAdOptions |
NativeAdViewAdOptions |
GADNativeMuteThisAdLoaderOptions |
NativeMuteThisAdLoaderOptions |
GADNativeSignalRequest |
NativeSignalRequest |
GADPresentationError |
PresentationError |
GADPublisherPrivacyPersonalizationState |
PublisherPrivacyPersonalizationState |
GADQueryInfo |
QueryInfo |
GADRequest |
Request |
GADRequestError |
RequestError |
GADRequestConfiguration |
RequestConfiguration |
GADResponseInfo |
ResponseInfo |
GADRewardedAd |
RewardedAd |
GADRewardedSignalRequest |
RewardedSignalRequest |
GADRewardedInterstitialAd |
RewardedInterstitialAd |
GADRewardedInterstitialSignalRequest |
RewardedInterstitialSignalRequest |
GADSearchBannerView |
SearchBannerView |
GADServerSideVerificationOptions |
ServerSideVerificationOptions |
GADSignal |
Signal |
GADSignalRequest |
SignalRequest |
GADVersionNumber |
VersionNumber |
GADVideoController |
VideoController |
GADVideoControllerDelegate |
VideoControllerDelegate |
Ad Manager | |
GAMBannerAdLoaderDelegate |
AdManagerBannerAdLoaderDelegate |
GAMBannerView |
AdManagerBannerView |
GAMBannerViewOptions |
AdManagerBannerViewOptions |
GAMInterstitialAd |
AdManagerInterstitialAd |
GAMRequest |
AdManagerRequest |
中介服務 | |
GADMAdNetworkAdapter |
MediationAdNetworkAdapter |
GADMAdNetworkConnector |
MediationAdNetworkConnector |
GADMBannerAnimationType |
MediationBannerAnimationType |
GADMediatedUnifiedNativeAd |
MediationUnifiedNativeAd |
GADMediatedUnifiedNativeAdNotificationSource |
MediationUnifiedNativeAdNotificationSource |
GADMediationAd |
MediationAd |
GADMediationAdConfiguration |
MediationAdConfiguration |
GADMediationAdEventDelegate |
MediationAdEventDelegate |
GADMediationAdRequest |
MediationAdRequest |
GADMediationAdapter |
MediationAdapter |
GADMediationAppOpenAd |
MediationAppOpenAd |
GADMediationAppOpenAdEventDelegate |
MediationAppOpenAdEventDelegate |
GADMediationBannerAd |
MediationBannerAd |
GADMediationBannerAdConfiguration |
MediationBannerAdConfiguration |
GADMediationBannerAdEventDelegate |
MediationBannerAdEventDelegate |
GADMediationCredentials |
MediationCredentials |
GADMediationInterstitialAd |
MediationInterstitialAd |
GADMediationInterstitialAdConfiguration |
MediationInterstitialAdConfiguration |
GADMediationInterstitialAdEventDelegate |
MediationInterstitialAdEventDelegate |
GADMediationNativeAd |
MediationNativeAd |
GADMediationNativeAdConfiguration |
MediationNativeAdConfiguration |
GADMediationNativeAdEventDelegate |
MediationNativeAdEventDelegate |
GADMediationRewardedAd |
MediationRewardedAd |
GADMediationRewardedAdConfiguration |
MediationRewardedAdConfiguration |
GADMediationRewardedAdEventDelegate |
MediationRewardedAdEventDelegate |
GADMediationServerConfiguration |
MediationServerConfiguration |
即時出價 | |
GADRTBAdapter |
RTBAdapter |
GADRTBMediationSignalsConfiguration |
RTBMediationSignalsConfiguration |
GADRTBRequestParameters |
RTBRequestParameters |
常數
11 版 | 12 版 |
---|---|
GADAdLoaderAdType.gamBanner |
AdLoaderAdType.adManagerBanner |
GADAdSizeBanner |
AdSizeBanner |
GADAdSizeFluid |
AdSizeFluid |
GADAdSizeFullBanner |
AdSizeFullBanner |
GADAdSizeInvalid |
AdSizeInvalid |
GADAdSizeLargeBanner |
AdSizeLargeBanner |
GADAdSizeLeaderboard |
AdSizeLeaderboard |
GADAdSizeMediumRectangle |
AdSizeMediumRectangle |
GADAdSizeSkyscraper |
AdSizeSkyscraper |
GoogleMobileAdsVersionString |
GoogleMobileAdsVersion |
屬性
類型 | 11 版 | 12 版 |
---|---|---|
GADAdLoader | loading |
isLoading |
GADAudioVideoManager | audioSessionApplicationManaged |
isAudioSessionApplicationManaged |
GADBannerView | autoloadEnabled |
isAutoloadEnabled |
GADMobileAds | sharedInstance |
shared |
applicationMuted |
isApplicationMuted |
|
GADMuteThisAdReason | reasonDescription |
reason |
GADNativeAd | customMuteThisAdAvailable |
isCustomMuteThisAdAvailable |
GADNativeAdCustomClickGestureOptions | tapsAllowed |
areTapsAllowed |
GADNativeAdImageAdLoaderOptions | imageLoadingDisabled |
isImageLoadingDisabled |
GADNativeMuteThisAdLoaderOptions | customMuteThisAdRequested |
isCustomMuteThisAdRequested |
GADNativeSignalRequest | imageLoadingDisabled |
isImageLoadingDisabled |
customMuteThisAdRequested |
isCustomMuteThisAdRequested |
|
GADRequest | neighboringContentURLStrings |
neighboringContentURLs |
GADResponseInfo | extrasDictionary |
extras |
GADServerSideVerificationOptions | customRewardString |
customRewardText |
GADSignal | signalString |
signal |
GADSignalRequest | neighboringContentURLStrings |
neighboringContentURLs |
GADVideoController | customControlsRequested |
areCustomControlsRequested |
clickToExpandEnabled |
isClickToExpandEnabled |
|
GADVideoOptions | startMuted |
shouldStartMuted |
customControlsRequested |
areCustomControlsRequested |
|
clickToExpandRequested |
isClickToExpandRequested |
函式
類型 | 11 版 | 12 版 |
---|---|---|
GADAdSize | GADPortraitInlineAdaptiveBannerAdSizeWithWidth(_:) |
portraitInlineAdaptiveBanner(width:) |
GADLandscapeInlineAdaptiveBannerAdSizeWithWidth(_:) |
landscapeInlineAdaptiveBanner(width:) |
|
GADCurrentOrientationInlineAdaptiveBannerAdSizeWithWidth(_:) |
currentOrientationInlineAdaptiveBanner(width:) |
|
GADInlineAdaptiveBannerAdSizeWithWidthAndMaxHeight(_:, _:) |
inlineAdaptiveBanner(width:maxHeight:) |
|
GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth(_:) |
portraitAnchoredAdaptiveBanner(width:) |
|
GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(_:) |
landscapeAnchoredAdaptiveBanner(width:) |
|
GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(_:) |
currentOrientationAnchoredAdaptiveBanner(width:) |
|
GADAdSizeFromCGSize(_:) |
adSizeFor(cgSize:) |
|
GADAdSizeFullWidthPortraitWithHeight(_:) |
fullWidthPortrait(height:) |
|
GADAdSizeFullWidthLandscapeWithHeight(_:) |
fullWidthLandscape(height:) |
|
GADAdSizeEqualToSize(_:, _:) |
isAdSizeEqualToSize(size1:size2:) |
|
IsGADAdSizeValid(_:) |
isAdSizeValid(size:) |
|
GADAdSizeIsFluid(_:) |
isAdSizeFluid(size:) |
|
CGSizeFromGADAdSize(_:) |
cgSize(for:) |
|
NSStringFromGADAdSize(_:) |
string(for:) |
|
NSValueFromGADAdSize(_:) |
nsValue(for:) |
|
GADAdSizeFromNSValue(_:) |
adSizeFor(nsValue:) |
|
GADClosestValidSizeForAdSizes(_:_:) |
closestValidSizeForAdSizes(original:possibleAdSizes:) |
|
GADAppEventDelegate | adView(_:didReceiveAppEvent:withInfo:) |
adView(_:didReceiveAppEvent:with:) |
interstitialAd(_:didReceiveAppEvent:withInfo:) |
adView(_:didReceiveAppEvent:with:) |
|
GADAppOpenAd | load(withAdResponseString:) |
load(with:) |
load(withAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
|
canPresent(fromRootViewController:) |
canPresent(from:) |
|
present(fromRootViewController:) |
present(from:) |
|
GADBannerView | load(withAdResponseString:) |
load(with:) |
GADInterstitial | load(withAdResponseString:) |
load(with:) |
load(withAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
|
canPresent(fromRootViewController:) |
canPresent(from:) |
|
present(fromRootViewController:) |
present(from:) |
|
GADRewardedAd | load(withAdResponseString:) |
load(with:) |
load(withAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
|
canPresent(fromRootViewController:) |
canPresent(from:) |
|
present(fromRootViewController:userDidEarnRewardHandler:) |
present(from:userDidEarnRewardHandler:) |
|
GADRewardedInterstitialAd | load(withAdResponseString:) |
load(with:) |
load(withAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
|
canPresent(fromRootViewController:) |
canPresent(from:) |
|
present(fromRootViewController:userDidEarnRewardHandler:) |
present(from:userDidEarnRewardHandler:) |
|
GADVersionNumber | GADGetStringFromVersionNumber(_ version: GADVersionNumber) |
string(for:) |
中介服務 | ||
GADMAdNetworkAdapter | getBannerWith(_:) |
getBanner(with:) |
presentInterstitial(fromRootViewController:) |
presentInterstitial(from:) |
|
getNativeAd(withAdTypes:options:) |
getNativeAd(with:options:) |
|
GADMediatedUnifiedNativeAd | didRecordClickOnAsset(withName:view:viewController:) |
didRecordClickOnAsset(with:view:viewController:) |
GADMediationAdapter | setUpWith(_:completionHandler:) |
setUp(with:completionHandler:) |
GADMediationAdSize | present(fromRootViewController:) |
present(from:) |
GADMediationAppOpenAd | present(fromRootViewController:) |
present(from:) |
GADMediationInterstitialAd | present(fromRootViewController:) |
present(from:) |
GADMediationRewardedAd | present(fromRootViewController:) |
present(from:) |
GAMInterstitialAd | load(withAdManagerAdUnitID:request:completionHandler:) |
load(with:request:completionHandler:) |
控制影片靜音狀態的 API 異動
isMuted
屬性和 setMute:
方法會替換為 muted
屬性。GADVideoController
內嵌自動調整廣告異動
為了盡量提高空間利用率,內嵌式自動調整式廣告一開始不會占用畫面中的空間。使用內嵌式自動調整廣告大小呼叫 CGSizeFromGADAdSize(_:)
時,現在會傳回 0
高度,直到 Google Mobile Ads SDK 傳回廣告為止。
已移除自訂搜尋廣告
以下類別已移除,且沒有替代方案:
GADDynamicHeightSearchBannerView
GADDynamicHeightSearchRequest
GADSearchBannerView
錯誤代碼異動
下列錯誤代碼已變更:
類別 | 附註 |
---|---|
GADErrorMediationNoFill |
錯誤現在會以 GADErrorNoFill 的形式傳回。 |
GADErrorReceivedInvalidResponse |
已由 GADErrorReceivedInvalidAdString 取代。 |
已移除 GADSimulatorID
已移除 GADSimulatorID
。根據預設,模擬器已處於測試模式。
自訂指定目標異動
GADRequest
上的 customTargeting
字典現在使用 Any
做為值類型,而非 String
。這樣一來,您就能將數值傳遞至 API。
額外參數的異動
- 將鍵傳遞至
additionalParameters
時,系統不會再將自訂指定目標套用至 Ad Manager 廣告請求。如要套用自訂指定目標,請參閱「自訂指定目標」。
- 系統不再支援將
max_ad_content_rating
鍵傳入additionalParameters
。如要設定廣告內容分級上限,請參閱廣告內容篩選。
從 v10 遷移至 v11
最低部署作業目標
最低部署目標已提高至 iOS 12。
最低 Xcode 版本
最低支援的 Xcode 版本已提高至 15.1。
廣告停止在 iOS 12 放送
Google Mobile Ads SDK 11.0.0 版本僅支援執行 iOS 13 以上版本的裝置。
已移除 GoogleAppMeasurement 依附元件
在 11.0.0 版中,已移除對 GoogleAppMeasurement
的依附元件。這個依附元件可在 AdMob 中啟用使用者指標切換按鈕,但將於 2024 年初停用。如要繼續透過 AdMob 收集使用者指標,請將 AdMob 應用程式連結至 Firebase,然後在應用程式中整合 Google Analytics for Firebase SDK。
全螢幕廣告呈現方式異動
以下異動會影響各種廣告格式:
- 應用程式開啟
- 插頁式
- 已獲得獎勵
- 插頁式獎勵廣告
-canPresentFromRootViewController:error:
和 -presentFromRootViewController:
中的 View Controller 參數可為空值。如果傳遞的值為空值,廣告會從檢視畫面階層中位於最上層的檢視畫面控制器呈現。
已移除的方法
下列方法已遭移除。
11.0.0 版 | 方法 | 附註 |
---|---|---|
GADAppOpenAd | load(withAdUnitID adUnitID: String, request: GADRequest?, orientation: UIInterfaceOrientation) |
請改用 load(withAdUnitID adUnitID: String, request: GADRequest?) 。 |
GADMediationBannerAdEventDelegate | willBackgroundApplication() |
不提供替換品。 |
GADMediationInterstitialAdEventDelegate | willBackgroundApplication() |
不提供替換品。 |
GADMediationNativeAdEventDelegate | willBackgroundApplication() |
不提供替換品。 |
GADMediationRewardedAdEventDelegate | didRewardUser(with reward: GADAdReward) |
請改用 didRewardUser() 。 |
GADMediatedUnifiedNativeAdNotificationSource | mediatedNativeAdWillLeaveApplication(_ mediatedNativeAd: GADMediatedUnifiedNativeAd) |
不提供替換品。 |
GADRequestConfiguration | setSameAppKeyEnabled(_ enabled: Bool) |
請改用 setPublisherFirstPartyIDEnabled(_ enabled: Bool) 。 |
tagForUnderAge(ofConsent underAgeOfConsent: Bool) |
請改用 tagForUnderAgeOfConsent 屬性。 |
|
tag(forChildDirectedTreatment childDirectedTreatment: Bool) |
請改用 tagForChildDirectedTreatment 屬性。 |
已移除的資源
系統會移除下列屬性。
11.0.0 版 | 屬性 | 附註 |
---|---|---|
GADMediationAdConfiguration | hasUserLocation | 不提供替換品。 |
userLatitude | ||
userLongitude | ||
userLocationAccuracyInMeters | ||
childDirectedTreatment | 請改用 GADMobileAds.sharedInstance.requestConfiguration.tagForChildDirectedTreatment 。 |
|
GADResponseInfo | adNetworkClassName | 請改用 loadedAdNetworkResponseInfo 中的 adNetworkClassName 。 |
已移除 GADAdFormatUnknown
移除了 GADAdFormatUnknown
,且沒有任何替換內容。
記錄 SDK 版本的異動
11.0.0 版已移除 sdkVersion
。如要記錄 Google Mobile Ads SDK 版本,請改用 versionNumber
。
10.0.0 版
GADMobileAds.sharedInstance().sdkVersion
11.0.0 版
GADGetStringFromVersionNumber(GADMobileAds.sharedInstance().versionNumber)
GADAdLoader 錯誤處理機制的變更
從 11.0.0 版開始,如果 GADAdLoader
的 delegate
不符合要求的廣告類型委派程式,GADAdLoader
就不會提出廣告請求。先前在廣告請求發出後就會失敗。
測試行為異動
請參閱下表,瞭解下列屬性傳回 true
時的更新條件。
類別 | 屬性 |
---|---|
GADMediationAdConfiguration | isTestRequest |
GADCustomEventRequest | isTesting |
v10.0.0 | v11.0.0 |
|
|
從 v9 遷移至 v10
停止在 iOS 11 放送廣告
Google Mobile Ads SDK 10.0.0 版本僅支援執行 iOS 12 以上版本的裝置。
升級至 Google Mobile Ads SDK 10.0.0 版不會導致 iOS 11 和 iOS 10 裝置上的應用程式無法運作,但這些裝置不會放送廣告。
Ad Manager 應用程式 ID 規定
所有 Ad Manager 應用程式現在都必須在 Info.plist
中提供 Ad Manager 應用程式 ID,且必須採用 ca-app-pub-################~##########
格式。詳情請參閱「更新 Info.plist」。
GoogleAppMeasurement.xcframework 的必要條件
所有 Ad Manager 應用程式現在都必須使用 GoogleAppMeasurement.xcframework。如果您是透過 Cocoapods 或 Swift Package Manager 安裝 Google Mobile Ads SDK,則不需要採取其他行動。如果您是手動安裝架構,請參閱「手動下載」一節瞭解詳情。
不再支援使用位元碼建構
如要整合 Google Mobile Ads SDK,現在必須在行動應用程式中停用位元碼。
已移除的類型
類型 | 附註 |
---|---|
GADGender | 不提供替換品。 |
GADMRewardBasedVideoAdNetworkAdapterProtocol | Choose Networks 上列出的所有獎勵型中介服務轉接器,已停止使用這些通訊協定超過一年。使用 GADMediationAdapter 進行中介服務和自訂事件。 |
GADMRewardBasedVideoAdNetworkConnectorProtocol |
已移除的資源
下列屬性已移除,且沒有替代方案。
10.0.0 版 | 屬性 |
---|---|
GADMediationAdRequest | userBirthday |
userGender | |
userHasLocation | |
userLatitude | |
userLongitude | |
userLocationAccuracyInMeters | |
userLocationDescription | |
GADCustomEventRequest | userHasLocation |
userLatitude | |
userLongitude | |
userLocationAccuracyInMeters | |
userLocationDescription |
從 v8 遷移至 v9
廣告停止在 iOS 10 放送
Google Mobile Ads SDK 9.0.0 版支援的最低 iOS 版本為 iOS 11。
升級至 Google Mobile Ads SDK 9.0.0 版不會導致 iOS 10 裝置上的應用程式無法運作,但這些裝置不會放送廣告。
更嚴格地強制執行狀態列控制項
自 9.0.0 版起,當您顯示全螢幕格式廣告時,應用程式應確保廣告能夠控制狀態列的顯示方式。如果未執行此操作,記錄中就會顯示錯誤訊息。
視應用程式中 View Controller 的具體版面配置而定,您可能不需要進行任何變更即可確保這一點。請考慮是否需要在廣告的 rootViewController
上設定 childViewControllerForStatusBarHidden
屬性。
將 adDidPresentFullScreenContent: 重新命名為 adWillPresentFullScreenContent:
行為並未改變。系統會在廣告即將顯示前呼叫委派方法,因此新方法名稱更能反映其功能。
在 GADRequest 上移除位置設定 API
由於 Google 不會使用位置資料指定廣告,因此已從 GADRequest
中刪除 - (void)setLocationWithLatitude:longitude:accuracy:
。視需要使用第三方 API,將資訊提供給第三方廣告聯播網。
自訂事件介面已淘汰
自訂事件可讓使用 Ad Manager 中介服務的發布商,為非支援的廣告聯播網新增刊登序列中介服務。
所有自訂事件通訊協定已淘汰。請改用現有的 GADMediationAdapter
和 GADMediationAdEventDelegate
通訊協定,以便執行相同的功能。這項變更可提升資訊清楚度,並讓您為獎勵廣告和插頁式廣告建立自訂事件,這類事件先前並未提供。
API
下表列出自訂事件 API 的對應中介服務轉接器 API,這些 API 應從 9.0.0 版開始使用。
v8 | v9 | |
---|---|---|
GADCustomEventBanner GADCustomEventInterstitial GADCustomEventNativeAd |
GADMediationAdapter | GADMediationBannerAd GADMediationInterstitialAd GADMediationInterscrollerAd GADMediationRewardedAd GADMediationNativeAd |
delegate
|
委派會由 GADMediationAdapter 類別的每個載入函式載入完成處理常式傳回 |
|
-init |
-init |
|
-requestBannerAd:parameter: |
-loadBannerForAdConfiguration: |
|
-requestInterstitialAdWith |
-loadInterstitialFor |
|
-requestNativeAdWithParameter:
|
-loadNativeAdFor |
|
無 | -loadInterscrollerAdFor |
|
無 | -loadRewardedAdFor |
|
-presentFromRootViewController:
|
-presentFromViewController: |
|
-handlesUserClicks |
-handlesUserClicks |
|
-handlesUserImpressions |
-handlesUserImpressions |
委派方法
下表列出自訂事件委派方法的對應中介服務廣告事件委派方法,這些方法應從 9.0.0 版開始使用。
v8 | v9 | |
---|---|---|
GADCustomEventBannerDelegate GADCustomEventInterstitialDelegate GADCustomEventNativeAdDelegate |
GADMediationAdEventDelegate | GADMediationAd |
-customEventBanner:didReceiveAd: -customEventInterstitialDidReceiveAd:
|
廣告載入狀態會納入 GADMediationAdapter 類別中每個載入函式的載入完成處理常式中 |
|
-customEventBanner:didFailAd: -customEventInterstitial:didFailAd:
|
||
-customEventBannerWasClicked: -customEventInterstitialWasClicked:
|
-reportClick |
|
-customEventBannerWill -customEventInterstitialWill
|
-willPresentFullScreenView |
|
-customEventBannerWill -customEventInterstitialWill
|
-willDismissFullScreenView |
|
-customEventBannerDid -customEventInterstitialDid
|
-didDismissFullScreenView |
|
-customEventBannerWill -customEventInterstitialWill
|
-willBackgroundApplication |
|
viewControllerFor |
-[GADMediationBannerAd view] |
其他已移除/取代的常數和方法
方法、常數或屬性的變更 | |
---|---|
kGAD- 前置常數 |
已移除。使用 GAD- 前置常數。 |
GADAdNetworkResponseInfo
|
credentials 已移除。請改用 adUnitMapping 。 |
GAMRequest
|
GAMRequest 中的 kGAMSimulatorID 已淘汰。請改用 GADRequestConfiguration 中的 GADSimulatorID 。 |
GADCustomNativeAd
|
GADCustomNativeAd 中的 mediaView 已淘汰。請改用 mediaContent 。 |
GoogleMobileAds 中的應用程式內購 API |
GoogleMobileAds 中的 inAppPurchase API 已遭到移除。 |
從 v7 遷移至 v8
Google Mobile Ads SDK 8.0.0 版推出了幾項重大異動, 部分 API 重新命名和移除
全螢幕格式 API 更新
自 8.0.0 版起,插頁式廣告和獎勵廣告將共用通用 讓廣告樣式更一致這些全新的全螢幕廣告 API 有兩個 與第 7 版全螢幕廣告 API 的差別:
靜態類別方法
load
。先前的載入/顯示全螢幕廣告的方法如下:
- 建立廣告物件例項並保留其參照。
- 指派負責處理負載及顯示回呼的委派。
- 載入廣告。
- 使用
isReady
檢查廣告是否已載入。 - 放送廣告。
在第 8 版中,做法略有不同。載入回呼 委派代表。而是會做為
load
方法的 完成處理常式:- 呼叫廣告類別上的靜態載入方法,並提供載入完成 處理常式。
- 在載入完成回呼中,保留所載入廣告的參照 。
- 指派代表處理顯示回呼的委派。
- 放送廣告。
新做法有以下優點:
- 您不會有廣告未載入的參照。
- 您不需要在廣告物件載入期間按住該物件。
一致的廣告事件:
事件類型 現有 API 第 8 版 API 載入事件 GADInterstitialDelegate
或GADRewardedAdDelegate
GAMInterstitialAdLoadCompletionHandler
或GADRewardedAdLoadCompletionHandler
簡報活動 GADFullScreenContentDelegate
先前,要監聽任何廣告事件,您需要註冊一個類別 會實作
GADInterstitialDelegate
敬上 指向插頁式廣告委派屬性的通訊協定,或是註冊一個 會實作GADRewardedAdDelegate
。 指向獎勵廣告委派屬性的通訊協定 (視哪種格式而定) 您使用的資源同一委派項目具有與載入和載入作業相關的方法 廣告的生命週期在第 8 版中,載入事件和顯示事件會分開計算。您現在可以 註冊
GADFullScreenContentDelegate
敬上 完全不必設定一個 。每個專屬的廣告載入事件 格式,請移至載入方法中傳遞的單一載入完成處理常式。
插頁式
載入廣告
下方程式碼片段說明如何載入插頁式廣告,並監聽 事件。
第 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; }]; }
多媒體廣告
第 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"); } }
簡報廣告事件
以下程式碼片段說明如何處理廣告出現時的回呼 表示 (成功或失敗) 以及關閉時。
第 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."); }
已獲得獎勵
載入廣告
第 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; }
多媒體廣告及處理獎勵
您必須針對使用者獲得獎勵的事件進行處理,才能放送獎勵廣告。取代為
GADRewardedAd
API 第 7 版時,您需要
rewardedAd:userDidEarnReward:
作為 GADRewardedAdDelegate
通訊協定的一部分。
在第 8 版中,您必須實作 GADUserDidEarnRewardHandler
,才能
而非放送該廣告
第 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"); } }
簡報廣告事件
使用 GADRewardedAd
API 時,您可將 GADRewardedAdDelegate
傳遞至方法
用來顯示廣告您可以使用 GADRewardedAd
API
GADFullscreenContentDelegate
做為廣告的屬性,才能
廣告。
第 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."); }
移除舊版 GAD 獎勵 VideoAd API
更新
GADRewardedAd
敬上
API 是在 2019 年 3 月首次推出,也是使用者首選的獎勵廣告
擁有超過 18 個月。強化項目比舊版更多
GADRewardedBasedVideoAd
API,包括可載入多個
放送獎勵廣告
舊版 GADRewardedBasedVideoAd
API 已從 SDK 8.0.0 版中移除。
淘汰智慧型橫幅廣告,改用自動調整橫幅廣告
智慧型橫幅廣告廣告已淘汰 建議採用自動調整橫幅廣告 廣告。自動調整橫幅廣告能提供優異成效,更靈活地 設定廣告寬度如果您偏好繼續使用全寬橫幅廣告,可以 但仍須使用自動調整橫幅廣告,如以下程式碼片段所示:
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
退出應用程式回呼移除作業
所有廣告格式的 willLeaveApplication
回呼都已產生
移除、
applicationDidEnterBackground:
和
sceneDidEnterBackground:
方法。只要使用 OS 層級 API,無論使用者何時離開您的應用程式,
是否與廣告互動有關
請注意, willLeaveApplication
回呼並非刻意設計
廣告點擊處理常式,並仰賴此回呼回報點擊並未
以便產生準確的指標例如,按一下 AdChoices 圖示
啟動外部瀏覽器叫用回呼的圖示,但未計算
點擊。
重新命名類別
下表列出已變更或移除的特定類別名稱 8.0 版。摘要說明:
- 與「
GADUnifiedNativeAd
」相關的所有課程已重新命名為GADNativeAd
。 GADRewardBasedVideoAd
、GADNativeExpressAdView
和GADInstreamAd
有 已移除- 所有包含
DFP
前置字串的類別都已替換為GAM
前置字串。
7.68.0 版類別 | 8.0.0 版類別 |
---|---|
DFPBannerView | GAMBannerView |
DFPBannerViewOptions | GAMBannerViewOptions |
DFPInterstitial | GAMInterstitialAd |
DFPRequest | GAMRequest |
GADRequestError | NSError |
GADUnifiedNativeAdView | GADNativeAdView |
GADUnifiedNativeAd | GADNativeAd |
GADUnifiedNativeAdAssetIdentifiers | GADNativeAdAssetIdentifiers |
GADUnifiedNativeAdDelegate | GADNativeAdDelegate |
GADUnifiedNativeAdUnconfirmedClickDelegate | GADNativeAdUnconfirmedClickDelegate |
GADNativeCustomTemplateAd | GADCustomNativeAd |
GADNativeCustomTemplateAdLoaderDelegate | GADCustomNativeAdLoaderDelegate |
GADNativeAdDelegate | GADCustomNativeAdDelegate |
GADInAppPurchase | 已移除 |
GADInterstitial | GADInterstitialAd |
GADNativeExpressAdView | 已移除 |
GADRewardBasedVideoAd | 已移除 |
GADInstreamAd | 已移除 |
GADInstreamAdView | 已移除 |
移除/取代的方法
下表列出了第 8 版的各項異動。摘要說明:
- 已移除先前淘汰的方法和屬性。
- 已移除所有格式的
-willLeaveApplication:
委派方法。 - 廣告聯播網類別名稱已移至
GADResponseInfo
屬性。 - 測試裝置 ID 已移至
GADRequestConfiguration
資源。
7.68.0 版類別 | 7.68.0 版 API | API 8.0.0 版 | 附註 |
---|---|---|---|
GADMobileAds | +configureWithApplicationID: | -startWithCompletionHandler: | 應用程式 ID 現在是在 Info.plist 中設定。 |
+disableAutomatedInApp |
-disableAutomatedInApp |
||
+disableSDKCrashReporting | -disableSDKCrashReporting | ||
GADRequest | testDevices | GADRequestConfiguration |
testDeviceIdentifiers 屬性適用於所有廣告請求,而 每項要求都設定舊的 testDevice 屬性。 |
性別 | 已移除 | ||
生日 | 已移除 | ||
+sdkVersion | GADMobileAds.sharedInstance |
||
-setBirthday |
已移除 | ||
-setLocationWithDescription: | -setLocationWith |
||
-tagForChildDirectedTreatment: | [GADMobileAds.sharedInstance.requestConfiguration 標記 ForChildDirectedTreatment] | ||
GADErrorCode | kGADError* | GADError* | 系統會從所有錯誤代碼常數中捨棄 k 前置字串。
|
GADBannerView | hasAutoRefreshed | autoloadEnabled | |
inAppPurchaseDelegate | 已移除 | ||
mediatedAdView | 已移除 | ||
adNetworkClassName | responseInfo |
||
DFPBannerView | -setValidAdSizesWithSizes: | -setValidAdSizes: | |
DFPBannerViewOptions | -adSizeDelegate | 已移除 | |
GADBannerViewDelegate | -adViewDidReceiveAd: | -bannerViewDidReceiveAd: | |
-adView:didFailToReceive |
-bannerView:didFailToReceive |
||
-adViewWillPresentScreen: | -bannerViewWillPresentScreen: | ||
-adViewWillDismissScreen: | -bannerViewWillDismissScreen: | ||
-adViewDidDismissScreen: | -bannerViewDidDismissScreen: | ||
-adViewWillLeaveApplication: | 已移除 | ||
GADNativeCustomTemplateAd | templateID | GADCustomNativeAd.formatID | |
-performClickOnAssetWithKey: |
-performClickOnAssetWithKey: | ||
GADNativeAdImageAd |
preferredImageOrientation | GADNativeAdMediaAdOptions |
|
GADInterstitial | inAppPurchaseDelegate | 已移除 | |
isReady | 已移除 | 請改用 canPresentFrom |
|
hasBeenUsed | 已移除 | ||
-init | -initWithAdUnitID: | ||
-setAdUnitID: | -initWithAdUnitID: | ||
adNetworkClassName | responseInfo |
||
-interstitialWill |
已移除 | ||
GADUnifiedNativeAd | videoController | mediaContent.videoController | |
adNetworkClassName | responseInfo |