iOS 專用 AdSense 行動應用程式搜尋廣告 (AFSMA) 導入作業

必要條件

本實作指南假設您已熟悉下列項目:

  • iOS 應用程式開發。
  • 建立 Google Mobile Ads SDK 與 iOS 專案的關聯。 下載最新版 SDK

總覽

本文件概述整合 AdSense 行動應用程式搜尋廣告 (AFSMA) 廣告的流程 。AFSMA 廣告有時也稱為「動態」廣告 成效增幅搜尋廣告若要在 iOS 上請求並顯示 AdSense 搜尋廣告,您必須: 實作:

GADSearchBannerView

  • 這個類別繼承自 iOS UIView 類別,並顯示 AFSMA 廣告。 GADSearchBannerView 會透過 GADDynamicHeightSearchRequest,並顯示傳回的廣告。 GADSearchBannerView 應新增至應用程式的任何現有檢視畫面; 通常是用來存取 已新增 GADSearchBannerView。應設定適當的委派代表 GADSearchBannerView
  • GADSearchBannerView 必須依據 initWithAdSize:kGADAdSizeFluid,即可請求 AdSense 搜尋廣告。例項化 initWithAdSize:kGADAdSizeBanner的「GADSearchBannerView」要求舊版 AdSense 搜尋廣告 (AFSMA) 廣告。
  • 這個物件的 adUnitID 屬性必須設為您的資源代碼。

GADDynamicHeightSearchRequest

  • 這個物件會封裝廣告請求參數。類似於 在 JavaScript 廣告請求物件 (網頁選項、廣告單元) 中設定參數 。

(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size

  • 廣告請求傳回時,就會呼叫這個回呼。因為傳回的廣告 包含多則包含不同額外資訊的廣告,確切大小 。廣告 橫幅廣告檢視畫面需要更新,以配合新的 廣告單元。用來在父項檢視畫面中調整 GADSearchBannerView 的程式碼 在這裡實作。

實作範例

以下範例說明如何使用 GBannerViewController 建立 GADSearchBannerViewUIScrollView 的子檢視畫面。能正確請求 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"]);
}

如果廣告請求失敗,您可以利用此回呼正確處理錯誤 並透過錯誤物件調查錯誤