SDK quảng cáo trên thiết bị di động của Google cũng hỗ trợ các kiểu tìm kiếm tuỳ chỉnh. Nếu ứng dụng của bạn đã sử dụng SDK quảng cáo trên thiết bị di động của Google, thì bạn nên sử dụng phiên bản SDK AFSMA.
Điều kiện tiên quyết
- Sử dụng Xcode 8.0 trở lên
- Nhắm đến iOS 8.0 trở lên
- Mã thuộc tính web hợp lệ của nhà xuất bản (ví dụ: vert-ppa-test1-srp)
- CocoaPods
Nhập SDK gốc AFS
CocoaPods
Nhập SDK Google-AFSNative vào một dự án iOS bằng CocoaPods. Hãy mở Podfile của dự án, rồi thêm dòng này vào mục tiêu của ứng dụng:
pod 'Google-AFSNative'
Sau đó, từ dòng lệnh, hãy chạy:
pod install --repo-update
Nếu bạn mới sử dụng CocoaPods, hãy xem tài liệu chính thức để biết thông tin về cách tạo và sử dụng Podfiles.
Tổng quan
Nếu bạn đang nâng cấp lên phiên bản 4.0 trở lên từ 2.0.8 trở xuống, vui lòng xem hướng dẫn di chuyển của chúng tôi.
Tài liệu này trình bày quy trình tích hợp Quảng cáo gốc AFS trong ứng dụng di động iOS.
- Hàm khởi tạo
GANSearchAdController
cần được cung cấp mã thuộc tính web của nhà xuất bản, mã chế độ cài đặt mong muốn và đối tượngGANSearchAdControllerOptions
được liên kết. - Mỗi lệnh gọi đến
loadAds()
cho biết một lượt tìm kiếm mới và điều này sẽ khiến nhóm quảng cáo hiện tại bị loại bỏ và hết hiệu lực. - Mẫu quảng cáo được lưu trữ trong
GANAdView
. - Quảng cáo được chèn vào quảng cáo
GANAdView
bằng phương thứcpopulateAdView
. NgoàiGANAdView
được điền sẵn, phương thức gọi còn cung cấpadIdentifier
(một chuỗi tuỳ ý dùng để xác định duy nhất quảng cáo). Bên trong API, một quảng cáo cụ thể sẽ được chỉ định cho mỗi adIdentifier được truyền vào. Sau đó, bất cứ khi nào adKey đó được chuyển lại trong tương lai, quảng cáo tương tự sẽ được trả về. Ví dụ: nếupopulateAdView
được gọi lần đầu tiên với adIdentifier "keyA", thì mỗi lần gọi tiếp theo đếnpopulateAdView
trong khi chuyển "keyA" làadIdentifier
sẽ dẫn đến cùng một quảng cáo được hiển thị.
- Đây là UIView chứa mẫu quảng cáo đó.
- Điền một quảng cáo vào khung hiển thị này bằng phương thức
populateAdView
trênGANSearchAdController
.
- Truyền đối tượng này đến hàm khởi tạo
GANSearchAdController
để chỉ định hành vi của cách quảng cáo được yêu cầu và hiển thị.
- Gọi phương thức
loadAds
trên bản saoGANSearchAdController
bằng đối tượng này để tạo yêu cầu quảng cáo.
- Hãy triển khai giao diện này và cung cấp giao diện cho
GANSearchAdController
để đăng ký lệnh gọi lại cho một số trạng thái.
Cách triển khai mẫu
Ví dụ bên dưới minh hoạ cách tạo GANSearchAdController
và GANView
để hiển thị quảng cáo trong ViewController
mẫu.
// 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"];
}
}
...