Triển khai AFS dành cho ứng dụng di động (AFSMA) cho iOS

Điều kiện tiên quyết

Hướng dẫn triển khai này giả định bạn đã quen thuộc với những điều sau:

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 của bạn. Quảng cáo AFSMA đôi khi cũng được gọi là động quảng cáo tìm kiếm theo chiều cao. Để yêu cầu và hiển thị quảng cáo AFSMA trên iOS, bạn cần phải triển khai như sau:

GADSearchBannerView

  • Lớp này kế thừa từ lớp UIView của iOS và hiển thị các quảng cáo AFSMA. Chiến lược phát hành đĩa đơn GADSearchBannerView đưa ra yêu cầu về một quảng cáo có GADDynamicHeightSearchRequest rồi hiển thị quảng cáo được trả về. Chiến lược phát hành đĩa đơn Bạn phải thêm GADSearchBannerView vào bất kỳ khung hiển thị hiện tại nào của ứng dụng; Thông thường, đó là bộ điều khiển khung hiển thị gốc chứa khung hiển thị mà GADSearchBannerView đã được thêm vào. Bạn phải thiết lập chế độ uỷ quyền thích hợp GADSearchBannerView.
  • Phải tạo thực thể GADSearchBannerView bằng initWithAdSize:kGADAdSizeFluid để yêu cầu quảng cáo AFSMA. Tạo thực thể GADSearchBannerViewinitWithAdSize:kGADAdSizeBanner yêu cầu AFSMA cũ quảng cáo.
  • Bạn cần đặt thuộc tính adUnitID trên đối tượng này thành mã thuộc tính.

GADDynamicHeightSearchRequest

  • Đố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ự với cài đặt thông số trong đối tượng yêu cầu quảng cáo JavaScript (tùy chọn trang, đơn vị ) cho web dành cho thiết bị di động và máy tính để bàn của AFS.

(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ì quảng cáo được trả về đơn vị có thể chứa một số quảng cáo có phần mở rộng khác nhau, kích thước chính xác của đơn vị quảng cáo không biết khi nào yêu cầu quảng cáo được thực hiện. Khi quảng cáo 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. Mã để đổi kích thước GADSearchBannerView trong khung hiển thị mẹ phải được triển khai tại đây.

Cách triển khai mẫu

Ví dụ bên dưới minh hoạ cách sử dụng GBannerViewController để tạo một GADSearchBannerView làm khung hiển thị phụ của UIScrollView. Để yêu cầu AFSMA đúng cách quảng cáo, thì 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 chỉ định các thông số của quảng cáo sẽ được 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"];

Các lựa chọn tuỳ chỉnh khác có thể thực hiện bằng cách đặt các thuộc tính bổ sung trên GADDynamicHeightSearchRequest .

Để tạo yêu cầu quảng cáo, hãy gọi loadRequest bằng GADDynamicHeightSearchRequest đối tượng từ đối tượng GADSearchBannerView:

[self.searchBannerView loadRequest:searchRequest];

Để khung hiển thị mẹ điều chỉnh cho phù hợp với GADSearchBannerView khi quảng cáo trả về, thì bạn phải triển khai lệnh gọi lại sau.

// 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.
  ...
}

Tùy chọn nâng cao

Hầu hết thông số yêu cầu quảng cáo đều có thể được đặt thông qua các thuộc tính trên Đối tượng GADDynamicHeightSearchRequest (searchRequest ở trên). Các thông số khác cần được thiết lập bằng cách sử dụng cặp khoá-giá trị với setAdvancedOptionValue phương thức:

// 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 tham số hiện có.

Điều tra lỗi

GADBannerViewDelegate chứa 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 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.