必要條件
本實作指南假設您已熟悉下列項目:
- iOS 應用程式開發。
- 建立 Google Mobile Ads SDK 與 iOS 專案的關聯。 下載最新版 SDK。
總覽
本文件概述整合 AdSense 行動應用程式搜尋廣告 (AFSMA) 廣告的流程 。AFSMA 廣告有時也稱為「動態」廣告 成效增幅搜尋廣告若要在 iOS 上請求並顯示 AdSense 搜尋廣告,您必須: 實作:
- 這個類別繼承自 iOS UIView 類別,並顯示 AFSMA 廣告。
GADSearchBannerView
會透過GADDynamicHeightSearchRequest
,並顯示傳回的廣告。GADSearchBannerView
應新增至應用程式的任何現有檢視畫面; 通常是用來存取 已新增GADSearchBannerView
。應設定適當的委派代表GADSearchBannerView
。 GADSearchBannerView
必須依據initWithAdSize:kGADAdSizeFluid
,即可請求 AdSense 搜尋廣告。例項化initWithAdSize:kGADAdSizeBanner
的「GADSearchBannerView
」要求舊版 AdSense 搜尋廣告 (AFSMA) 廣告。- 這個物件的
adUnitID
屬性必須設為您的資源代碼。
- 這個物件會封裝廣告請求參數。類似於 在 JavaScript 廣告請求物件 (網頁選項、廣告單元) 中設定參數 。
(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size
- 廣告請求傳回時,就會呼叫這個回呼。因為傳回的廣告
包含多則包含不同額外資訊的廣告,確切大小
。廣告
橫幅廣告檢視畫面需要更新,以配合新的
廣告單元。用來在父項檢視畫面中調整
GADSearchBannerView
的程式碼 在這裡實作。
實作範例
以下範例說明如何使用 GBannerViewController
建立
GADSearchBannerView
為 UIScrollView
的子檢視畫面。能正確請求 AdSense 搜尋廣告
GADSearchBannerView
物件必須透過
initWithAdSize:kGADAdSizeFluid
。
// GBannerViewController.m implementation
@interface GBannerViewController () <GADAdSizeDelegate,
GADBannerViewDelegate>
@property(nonatomic, strong) GADSearchBannerView *searchBannerView;
@property(nonatomic, strong) UIScrollView *scrollView;
@end
@implementation GBannerViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Create the scroll view.
....
....
// Create the banner.
self.searchBannerView = [[GADSearchBannerView alloc] initWithAdSize:kGADAdSizeFluid];
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823).
self.searchBannerView.adUnitID = @"ms-app-pub-################";
// Set the initial location and size of the banner. The initial height
// is set to 0 since we might not get an ad back.
self.searchBannerView.frame = CGRectMake(0,
0,
CGRectGetWidth(self.view.bounds),
0);
self.searchBannerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// Set the delegate properties.
self.searchBannerView.adSizeDelegate = self;
self.searchBannerView.delegate = self;
// Add the new search banner into the parent scrollView.
[self.scrollView addSubview:self.searchBannerView];
}
在同一個 GBannerViewController
中建立 GADDynamicHeightSearchRequest
指定將在 GADSearchView
中顯示的廣告參數。
// Create a search request and load the banner. GADDynamicHeightSearchRequest *searchRequest = [[GADDynamicHeightSearchRequest alloc] init]; // Ad request options (set using GADDynamicHeightSearchRequest properties). searchRequest.query = @"flowers"; searchRequest.numberOfAds = 2; // Replace with the ID of a style from your custom search styles [searchRequest setAdvancedOptionValue:@"0000000001" forKey:@"styleId"];
其他自訂選項
方法是在 GADDynamicHeightSearchRequest
上設定其他屬性
物件。
如要發出廣告請求,請使用 GADDynamicHeightSearchRequest
呼叫 loadRequest
物件中,GADSearchBannerView
物件:
[self.searchBannerView loadRequest:searchRequest];
如要讓父項檢視畫面能正確容納 GADSearchBannerView
,請在
就會傳回下列回呼。
// Callback to update the parent view height.
- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size {
// Update the banner view based on the ad size.
CGRect newFrame = self.searchBannerView.frame;
newFrame.size.height = size.size.height;
self.searchBannerView.frame = newFrame;
// Perform any additional logic needed due to banner view size change.
...
}
進階選項
您可以透過
GADDynamicHeightSearchRequest
物件 (上方 searchRequest
)。其他參數
您必須使用與 setAdvancedOptionValue
的鍵/值組合進行設定
方法:
// Advanced customization options (set using key-value pair).
// Set a parameter (parameter_name) and its value (parameter_value).
[searchRequest setAdvancedOptionValue:@"parameter_value"
forKey:@"parameter_name"];
// Example: Show visible URL below description (domainLinkAboveDescription: false).
[searchRequest setAdvancedOptionValue:@"false"
forKey:@"domainLinkAboveDescription"];
調查錯誤
GADBannerViewDelegate
包含回呼,可協助您調查錯誤:
- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error {
// This callback is triggered when the ad request fails.
// Add code here to debug the error object to discover causes of failure
NSLog(@"Ad call failed due to %@", error.userInfo[@"NSUnderlyingError"]);
}
如果廣告請求失敗,您可以利用此回呼正確處理錯誤 並透過錯誤物件調查錯誤