Điều kiện tiên quyết
Hướng dẫn triển khai này giả định bạn đã quen với các yêu cầu sau:
- Phát triển ứng dụng iOS.
- Liên kết SDK quảng cáo trên thiết bị di động của Google với một dự án iOS. Tải phiên bản SDK mới nhất xuống.
Tổng quan
Tài liệu này trình bày quy trình tích hợp quảng cáo AFS dành cho ứng dụng di động (AFSMA) trong ứng dụng di động iOS. Quảng cáo AFSMA đôi khi còn được gọi là quảng cáo tìm kiếm theo chiều cao động. Để yêu cầu và hiển thị quảng cáo AFSMA trên iOS, bạn cần triển khai những phương thức sau:
- Lớp này kế thừa từ lớp UIView của iOS và hiển thị quảng cáo AFSMA.
GADSearchBannerView
gửi yêu cầu quảng cáo bằngGADDynamicHeightSearchRequest
và hiển thị quảng cáo được trả về. Bạn phải thêmGADSearchBannerView
vào bất kỳ khung hiển thị hiện có nào của ứng dụng; thường thì bộ điều khiển khung hiển thị gốc lưu giữ khung hiển thị màGADSearchBannerView
được thêm vào. Bạn nên đặt thực thể đại diện phù hợp trênGADSearchBannerView
. - Bạn phải tạo bản sao
GADSearchBannerView
vớiinitWithAdSize:kGADAdSizeFluid
để yêu cầu quảng cáo AFSMA. Tạo bản saoGADSearchBannerView
bằnginitWithAdSize:kGADAdSizeBanner
yêu cầu quảng cáo AFSMA cũ. - Bạn cần đặt thuộc tính
adUnitID
trên đối tượng này thành mã thuộc tính.
- Đối tượng này đóng gói các thông số yêu cầu quảng cáo. Điều này tương tự như việc cài đặt thông số trong đối tượng yêu cầu quảng cáo JavaScript (tuỳ chọn trang, lựa chọn đơn vị) cho AFS trên máy tính và web dành cho thiết bị di động.
(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size
- Lệnh gọi lại này được gọi khi yêu cầu quảng cáo trả về. Vì đơn vị quảng cáo được trả về có thể chứa một số quảng cáo có các phần mở rộng khác nhau, nên kích thước chính xác của đơn vị quảng cáo đó là không xác định khi yêu cầu quảng cáo được thực hiện. Sau khi quảng cáo được trả về, chế độ xem biểu ngữ cần được cập nhật để phù hợp với kích thước mới của đơn vị quảng cáo. Bạn cần triển khai mã đổi kích thước
GADSearchBannerView
trong khung hiển thị mẹ tại đây.
Cách triển khai mẫu
Ví dụ bên dưới minh hoạ việc sử dụng GBannerViewController
để tạo GADSearchBannerView
dưới dạng khung hiển thị phụ của UIScrollView
. Để yêu cầu quảng cáo AFSMA đúng cách, bạn phải tạo thực thể cho đối tượng GADSearchBannerView
bằng 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];
}
Trong cùng một GBannerViewController
, hãy tạo một GADDynamicHeightSearchRequest
điều chỉnh các tham số của quảng cáo sẽ hiển thị trong 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"];
Bạn có thể các tuỳ chọn tuỳ chỉnh khác bằng cách đặt thuộc tính bổ sung cho đối tượng GADDynamicHeightSearchRequest
.
Để tạo yêu cầu quảng cáo, hãy gọi loadRequest
bằng đối tượng GADDynamicHeightSearchRequest
từ đối tượng GADSearchBannerView
:
[self.searchBannerView loadRequest:searchRequest];
Để khung hiển thị gốc chứa GADSearchBannerView
đúng cách sau khi quảng cáo trả về, bạn phải triển khai lệnh gọi lại sau đây.
// 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.
...
}
Tuỳ chọn nâng cao
Bạn có thể đặt hầu hết các thông số yêu cầu quảng cáo thông qua các thuộc tính trên
đối tượng GADDynamicHeightSearchRequest
(searchRequest
ở trên). Bạn cần đặt các thông số khác bằng cách sử dụng các cặp khoá-giá trị với phương thức 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"];
Xem danh sách đầy đủ các thông số có sẵn.
Điều tra lỗi
GADBannerViewDelegate
chứa một lệnh gọi lại để giúp bạn điều tra lỗi:
- (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"]);
}
Nếu một yêu cầu quảng cáo không thành công, bạn có thể sử dụng lệnh gọi lại này để xử lý lỗi đúng cách và điều tra lỗi thông qua đối tượng lỗi.