Google Mobile Ads SDK では、カスタム検索スタイルもサポートされています。アプリですでに Google Mobile Ads SDK を使用している場合は、代わりに AFSMA SDK バージョンを使用することをおすすめします。
前提条件
- Xcode 8.0 以降を使用する
- iOS 8.0 以降をターゲットに設定すること
- パブリッシャーの有効なウェブ プロパティ コード(例: vert-ppa-test1-srp)
- CocoaPods
AFS Native SDK をインポートする
CocoaPods
CocoaPods を使用して、Google-AFSNative SDK を iOS プロジェクトにインポートします。プロジェクトの Podfile を開き、アプリのターゲットに次の行を追加します。
pod 'Google-AFSNative'
次に、コマンドラインから以下を実行します。
pod install --repo-update
CocoaPods を初めてご利用の場合は、CocoaPods の公式ドキュメントで Podfile の作成方法と使用方法をご確認ください。
概要
2.0.8 以前からバージョン 4.0 以降にアップグレードする場合は、移行ガイドをご覧ください。
このドキュメントでは、AFS ネイティブ広告を iOS モバイルアプリに統合するプロセスの概要を説明します。
GANSearchAdController
コンストラクタには、パブリッシャーのウェブ プロパティ コード、必要な設定 ID、関連するGANSearchAdControllerOptions
オブジェクトを指定する必要があります。loadAds()
を呼び出すたびに新しい検索が指示され、現在の広告セットが破棄されて無効化されます。- 広告クリエイティブは
GANAdView
に保存されます。 - 広告は、
populateAdView
メソッドを使用して広告GANAdView
に挿入されます。入力されるGANAdView
に加えて、呼び出し元はadIdentifier
を指定します。これは、広告を一意に識別する任意の文字列です。API 内では、渡された adIdentifier に特定の広告が割り当てられます。その後、その adKey が再度渡されると、同じ広告が返されます。たとえば、adIdentifier「keyA」で初めてpopulateAdView
が呼び出された場合、その後に「keyA」をadIdentifier
として渡しながらpopulateAdView
を呼び出すたびに、同じ広告が表示されます。
- これは、広告クリエイティブを含む UIView です。
GANSearchAdController
でpopulateAdView
メソッドを使用して、このビューに広告を入力します。
- このオブジェクトを
GANSearchAdController
コンストラクタに渡して、広告がリクエストされて表示される方法を指定します。
- このオブジェクトを指定して
GANSearchAdController
インスタンスのloadAds
メソッドを呼び出し、広告リクエストを作成します。
- このインターフェースを実装して
GANSearchAdController
に渡して、いくつかの状態のコールバックを登録します。
実装例
以下の例は、サンプル ViewController
で広告を表示する GANSearchAdController
と GANView
の作成方法を示しています。
// 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"];
}
}
...