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
建構函式 發布商的網站資源代碼、所需的設定 IDGANSearchAdControllerOptions
物件。 - 每次呼叫
loadAds()
都代表新的搜尋,並會達到目前的 。 - 廣告素材儲存在「
GANAdView
」中。 - 使用
populateAdView
方法在廣告GANAdView
中插入廣告。於 除了要填入的GANAdView
以外,呼叫端也會提供adIdentifier
:這是專門用來識別廣告的任意字串。 在 API 中,系統會將特定廣告指派給每個傳遞的 adIdentifier 。如此一來,只要日後再次傳送該廣告金鑰, 。舉例來說,若是首次使用populateAdView
adIdentifier「keyA」時,每次呼叫populateAdView
時, 「keyA」adIdentifier
之後,系統便會顯示相同的廣告。
- 這是包含該廣告素材的 UIView。
- 使用
populateAdView
方法,在檢視區塊中填入廣告GANSearchAdController
。
- 將此物件傳遞至
GANSearchAdController
建構函式來指定 廣告請求和顯示方式的行為
- 使用此程式碼在
GANSearchAdController
執行個體上呼叫loadAds
方法 物件,再提出廣告請求。
- 導入這個介面並提供給
GANSearchAdController
,以便 註冊多個狀態的回呼。
實作範例
以下範例說明如何建立 GANSearchAdController
和 GANView
,在範例 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"];
}
}
...