iOS'te Mobil Uygulamalarda AFSMA (AFSMA) Uygulaması

Ön koşullar

Bu uygulama kılavuzunda aşağıdakiler hakkında bilgi sahibi olduğunuz varsayılmaktadır:

Genel bakış

Bu dokümanda, Mobil Uygulamalar için AFS (AFSMA) reklamlarını iOS mobil uygulamanıza entegre etme süreci açıklanmaktadır. AFSMA reklamları bazen dinamik yükseklik arama reklamları olarak da adlandırılır. iOS'te AFSMA reklamları istemek ve oluşturmak için aşağıdakileri uygulamanız gerekir:

GADSearchBannerView

  • Bu sınıf, iOS UIView sınıfından devralır ve AFSMA reklamlarını gösterir. GADSearchBannerView, GADDynamicHeightSearchRequest içeren bir reklam isteğinde bulunur ve döndürülen reklamları oluşturur. GADSearchBannerView, uygulamanın mevcut görünümlerinden herhangi birine eklenmelidir. Genellikle GADSearchBannerView öğesinin eklendiği görünümü barındıran üst görünüm denetleyicisidir. Uygun yetki verilmiş kullanıcılar GADSearchBannerView üzerinde ayarlanmalıdır.
  • AFSMA reklamları isteyebilmek için GADSearchBannerView, initWithAdSize:kGADAdSizeFluid ile örneklenmelidir. initWithAdSize:kGADAdSizeBanner için eski AFSMA reklamları isteği ile GADSearchBannerView örneklendirmesi.
  • Bu nesnedeki adUnitID özelliğinin mülk kodunuza ayarlanması gerekir.

GADDynamicHeightSearchRequest

  • Bu nesne, reklam isteği parametrelerini kapsüller. Bu, AFS masaüstü ve mobil web için JavaScript reklam isteği nesnelerindeki (sayfa seçenekleri, birim seçenekleri) parametreleri ayarlamaya benzer.

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

  • Bu geri çağırma, reklam isteği döndürüldüğünde çağrılır. Döndürülen reklam birimi farklı uzantılara sahip birkaç reklam içerebileceği için reklam isteği yapıldığında reklam biriminin tam boyutu bilinmez. Reklam döndürüldükten sonra banner görünümünün, reklam biriminin yeni boyutuna uyacak şekilde güncellenmesi gerekir. GADSearchBannerView öğesini üst görünümünde yeniden boyutlandırma kodu buraya uygulanmalıdır.

Örnek uygulama

Aşağıdaki örnekte, UIScrollView alt görünümü olarak GADSearchBannerView oluşturmak için GBannerViewController kullanılması gösterilmektedir. AFSMA reklamlarını düzgün bir şekilde istemek için GADSearchBannerView nesnesinin initWithAdSize:kGADAdSizeFluid ile örneklenmesi gerekir.

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

Aynı GBannerViewController içinde, GADSearchView içinde oluşturulacak reklamın parametrelerini belirten bir GADDynamicHeightSearchRequest oluşturun.

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

GADDynamicHeightSearchRequest nesnesinde ek özellikler ayarlayarak diğer özelleştirme seçeneklerini kullanabilirsiniz.

Reklam isteği yapmak için GADSearchBannerView nesnesinden GADDynamicHeightSearchRequest nesnesiyle loadRequest çağrısı yapın:

[self.searchBannerView loadRequest:searchRequest];

Üst görünümün, reklamlar geri geldiğinde GADSearchBannerView öğesini düzgün şekilde barındırması için aşağıdaki geri çağırmanın uygulanması gerekir.

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

Gelişmiş seçenekler

Reklam isteği parametrelerinin çoğu GADDynamicHeightSearchRequest nesnesindeki (yukarıda searchRequest) özellikler aracılığıyla ayarlanabilir. Diğer parametrelerin de setAdvancedOptionValue yöntemi ile anahtar/değer çiftleri kullanılarak ayarlanması gerekir:

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

Kullanılabilir parametrelerin tam listesine bakın.

Hataları araştırma

GADBannerViewDelegate, hataları araştırmanıza yardımcı olmak için bir geri çağırma içerir:

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

Bir reklam isteği başarısız olursa, hatayı düzgün şekilde işlemek ve hata nesnesini inceleyerek hatayı incelemek için bu geri çağırmayı kullanabilirsiniz.