Penerapan AFS untuk Aplikasi Seluler (AFSMA) untuk iOS

Prasyarat

Panduan penerapan ini mengasumsikan bahwa Anda sudah memahami hal berikut:

Ringkasan

Dokumen ini menguraikan proses untuk mengintegrasikan iklan AFS untuk Aplikasi Seluler (AFSMA) di aplikasi seluler iOS Anda. Iklan AFSMA terkadang juga disebut sebagai iklan dinamis iklan penelusuran tinggi. Untuk meminta dan merender iklan AFSMA di iOS, Anda harus terapkan hal berikut:

GADSearchBannerView

  • Class ini mewarisi dari class UIView iOS dan menampilkan iklan AFSMA. Tujuan GADSearchBannerView membuat permintaan untuk iklan dengan GADDynamicHeightSearchRequest, lalu merender iklan yang ditampilkan. Tujuan GADSearchBannerView harus ditambahkan ke salah satu tampilan aplikasi yang ada; biasanya itu adalah pengontrol tampilan induk yang menyimpan tampilan yang GADSearchBannerView telah ditambahkan. Penerima delegasi yang sesuai harus ditetapkan di GADSearchBannerView.
  • GADSearchBannerView harus dibuat instance-nya dengan initWithAdSize:kGADAdSizeFluid untuk meminta iklan AFSMA. Membuat instance GADSearchBannerView dengan initWithAdSize:kGADAdSizeBanner permintaan AFSMA lama iklan.
  • Properti adUnitID di objek ini harus disetel ke kode properti Anda.

GADDynamicHeightSearchRequest

  • Objek ini merangkum parameter permintaan iklan. Hal ini setara dengan parameter setelan di objek permintaan iklan JavaScript (opsi halaman, unit untuk web seluler dan desktop AFS.

(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size

  • Callback ini dipanggil saat permintaan iklan ditampilkan. Karena iklan yang ditampilkan dapat berisi sejumlah iklan dengan ekstensi yang berbeda, ukuran yang tepat unit iklan tidak diketahui saat permintaan iklan dibuat. Setelah iklan dikembalikan, tampilan spanduk perlu diperbarui untuk mengakomodasi ukuran baru unit iklan. Kode untuk mengubah ukuran GADSearchBannerView di tampilan induknya harus akan diterapkan di sini.

Contoh implementasi

Contoh di bawah menunjukkan penggunaan GBannerViewController untuk membuat GADSearchBannerView sebagai subtampilan dari UIScrollView. Untuk meminta AFSMA dengan benar sebelumnya, objek GADSearchBannerView harus dibuat instance-nya dengan 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];
  }

Dalam GBannerViewController yang sama, buat GADDynamicHeightSearchRequest yang menentukan parameter iklan yang akan dirender di 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"];

Opsi penyesuaian lainnya bisa dilakukan dengan menetapkan properti tambahan pada GADDynamicHeightSearchRequest .

Untuk membuat permintaan iklan, panggil loadRequest dengan GADDynamicHeightSearchRequest dari objek GADSearchBannerView:

[self.searchBannerView loadRequest:searchRequest];

Agar tampilan induk mengakomodasi GADSearchBannerView dengan benar tidak ditampilkan, callback berikut harus diterapkan.

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

Opsi lanjutan

Sebagian besar parameter permintaan iklan dapat ditetapkan melalui properti di Objek GADDynamicHeightSearchRequest (searchRequest di atas). Parameter lainnya harus ditetapkan menggunakan key-value pair dengan setAdvancedOptionValue berikut:

// 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"];

Lihat daftar lengkap parameter yang tersedia.

Menyelidiki error

GADBannerViewDelegate berisi callback untuk membantu Anda menyelidiki error:

- (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"]);
}

Jika permintaan iklan gagal, Anda dapat menggunakan callback ini untuk menangani error dengan benar dan menyelidiki {i>error<i} melalui objek {i>error<i}.