Penerapan AFS untuk Aplikasi Seluler (AFSMA) untuk iOS

Prasyarat

Panduan penerapan ini mengasumsikan bahwa Anda telah memahami hal-hal berikut:

Ringkasan

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

GADSearchBannerView

  • Class ini mewarisi dari class UIView iOS dan menampilkan iklan AFSMA. GADSearchBannerView membuat permintaan untuk iklan dengan GADDynamicHeightSearchRequest dan merender iklan yang ditampilkan. GADSearchBannerView harus ditambahkan ke salah satu tampilan yang ada di aplikasi; biasanya pengontrol tampilan induk yang menyimpan tampilan tempat GADSearchBannerView ditambahkan. 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 akan meminta iklan AFSMA lama.
  • Properti adUnitID di objek ini perlu ditetapkan ke kode properti Anda.

GADDynamicHeightSearchRequest

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

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

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

Contoh implementasi

Contoh di bawah menunjukkan penggunaan GBannerViewController untuk membuat GADSearchBannerView sebagai sub-tampilan dari UIScrollView. Untuk meminta iklan AFSMA dengan benar, 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 dapat dilakukan dengan menetapkan properti tambahan pada objek GADDynamicHeightSearchRequest.

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

[self.searchBannerView loadRequest:searchRequest];

Agar tampilan induk mengakomodasi GADSearchBannerView dengan benar setelah iklan 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 pada objek GADDynamicHeightSearchRequest (searchRequest di atas). Parameter lain harus ditetapkan menggunakan key-value pair dengan metode 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"];

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 tepat dan menyelidiki error tersebut melalui objek error.