Triển khai gốc AFS dành cho iOS

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.

GANSearchAdController

  • 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ượng GANSearchAdControllerOptions đượ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ức populateAdView. Ngoài GANAdView được điền sẵn, phương thức gọi còn cung cấp adIdentifier (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ếu populateAdView được gọi lần đầu tiên với adIdentifier "keyA", thì mỗi lần gọi tiếp theo đến populateAdView trong khi chuyển "keyA" là adIdentifier sẽ dẫn đến cùng một quảng cáo được hiển thị.

GANAdView

  • Đâ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ên GANSearchAdController.

GANSearchAdControllerOptions

  • 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ị.

GANSearchAdRequest

  • Gọi phương thức loadAds trên bản sao GANSearchAdController bằng đối tượng này để tạo yêu cầu quảng cáo.

GANSearchAdControllerDelegate

  • 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 GANSearchAdControllerGANView để 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"];
  }
}
...