iOS 適用的 AdSense 搜尋廣告原生導入

Google Mobile Ads SDK 也支援自訂搜尋樣式。如果您的應用程式 目前已經採用 Google Mobile Ads SDK,建議您改用 AFSMA SDK 版本 。

必要條件

  • 使用 Xcode 8.0 以上版本
  • 指定 iOS 8.0 以上版本
  • 有效的發布商網站資源代碼 (例如 vert-ppa-test1-srp)
  • CocoaPods

匯入 AdSense 搜尋廣告原生 SDK

CocoaPods

使用下列程式碼,將 Google AFSNative SDK 匯入 iOS 專案: CocoaPods:開啟專案的 Podfile,然後將這一行新增至應用程式的目標:

pod 'Google-AFSNative'

接著,從指令列執行下列指令:

pod install --repo-update

如果是 CocoaPods 新手,請參閱 詳情請參閱官方文件。 說明如何建立及使用 Podfiles

總覽

如果您要從 2.0.8 或更舊版本升級至 4.0 以上版本,請參閱 遷移指南

本文件將概述 AdSense 搜尋廣告原生廣告的整合程序 。

GANSearchAdController

  • 您必須提供 GANSearchAdController 建構函式 發布商的網站資源代碼、所需的設定 ID GANSearchAdControllerOptions 物件。
  • 每次呼叫 loadAds() 都代表新的搜尋,並會達到目前的 。
  • 廣告素材儲存在「GANAdView」中。
  • 使用 populateAdView 方法在廣告 GANAdView 中插入廣告。於 除了要填入的 GANAdView 以外,呼叫端也會提供 adIdentifier:這是專門用來識別廣告的任意字串。 在 API 中,系統會將特定廣告指派給每個傳遞的 adIdentifier 。如此一來,只要日後再次傳送該廣告金鑰, 。舉例來說,若是首次使用populateAdView adIdentifier「keyA」時,每次呼叫 populateAdView 時, 「keyA」adIdentifier 之後,系統便會顯示相同的廣告。

GANAdView

  • 這是包含該廣告素材的 UIView。
  • 使用 populateAdView 方法,在檢視區塊中填入廣告 GANSearchAdController

GANSearchAdControllerOptions

  • 將此物件傳遞至 GANSearchAdController 建構函式來指定 廣告請求和顯示方式的行為

GANSearchAdRequest

  • 使用此程式碼在 GANSearchAdController 執行個體上呼叫 loadAds 方法 物件,再提出廣告請求。

GANSearchAdControllerDelegate

  • 導入這個介面並提供給 GANSearchAdController,以便 註冊多個狀態的回呼。

實作範例

以下範例說明如何建立 GANSearchAdControllerGANView,在範例 ViewController 中顯示廣告。

// SampleAppViewController.m implementation

#import <AFSNative/AFSNative.h>

@interface GBannerViewController () {
  // The Ad Controller used by the sample application.
  GANSearchAdController *_adController;

  // The Ad View to display the loaded ad.
  GANAdView *_adView;
}
// scrollView will be where we place our ads in this example.
@property(nonatomic, strong) UIScrollView *scrollView;
@end
...

- (void)viewDidLoad {
  [super viewDidLoad];

  // Create the scroll view.
  ...
  [self.view addSubview:scrollView];

  // Create a test button and link the ad request to its action.
  UIButton *loadBannerButton = [UIButton buttonWithType:UIButtonTypeCustom];
  ...
  [loadBannerButton addTarget:self
                       action:@selector(loadAd:)
             forControlEvents:UIControlEventTouchUpInside];
  [self.scrollView addSubview:loadBannerButton];

  // Construct the Ad Controller.
  GANSearchAdControllerOptions *options = [[GANSearchAdControllerOptions alloc] init];
  options.prefetchEnabled = YES;
  options.adType = GANSearchAdTypeSPA;
  options.adFetchCount = 3;

  _adController = [[GANSearchAdController alloc]
                     initWithPublisherID: @"your-client-id"
                                 styleID: @"your-settings-id"
                                 options: options
                                delegate: self];

  _adView = [_adController adView];
  [self.scrollView addSubview:_adView];
}

// Request ads when the test button is pressed.
- (void)loadAd:(id)sender {
  // Construct the Ad Request.
  GANSearchAdRequest *adRequest = [[GANSearchAdRequest alloc] init];
  adRequest.query =  @"some-query";
  // Start loading ads. Note that the loading is asynchronous.
  [_adController loadAds: adRequest];
}

// Insert ads into GANAdView if the request returns successfully.
- (void)searchAdController:(GANSearchAdController *)adController  
                didLoadAds:(NSInteger)numberOfAds {
  if (numberOfAds <= 0) {
    NSLog(@"No ads found on the server");
  } else {
    [_adController populateAdView:_adView identifier:@"demoAd"];
  }
}
...