iOS için AFS (Mobil Uygulamalarda AFSMA) Uygulaması

Ön koşullar

Bu uygulama kılavuzunda aşağıdaki öğelere aşina olduğunuz varsayılır:

Genel bakış

Bu dokümanda, Mobil Uygulamalarda AFS (AFSMA) reklamlarını iOS mobil uygulamanıza entegre etme işlemi özetlenmektedir. AFSMA reklamları bazen dinamik yükseklikte 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ınır ve AFSMA reklamlarını görüntüler. GADSearchBannerView, GADDynamicHeightSearchRequest içeren bir reklam isteğinde bulunur ve döndürülen reklamları oluşturur. GADSearchBannerView, uygulamanın mevcut görünümlerine eklenmelidir. Genellikle GADSearchBannerView ürününün eklendiği görünümü barındıran üst görünüm denetleyicisidir. Uygun yetkiler GADSearchBannerView üzerinde ayarlanmalıdır.
  • AFSMA reklamı istemek için GADSearchBannerView, initWithAdSize:kGADAdSizeFluid ile örneklenmelidir. initWithAdSize:kGADAdSizeBanner ile GADSearchBannerView örnekleniyor, eski AFSMA reklamları istiyor.
  • Bu nesnedeki adUnitID özelliğinin mülk kodunuza ayarlanması gerekir.

GADDynamicHeightSearchRequest

  • Bu nesne, reklam isteği parametrelerini içerir. 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üğünde çağrılır. Döndürülen reklam birimi, farklı uzantılara sahip bir dizi reklam içerebileceğinden, reklam isteği yapıldığında reklam biriminin tam boyutu bilinmiyor. Reklam döndürüldükten sonra banner görünümünün reklam biriminin yeni boyutunu karşılayacak şekilde güncellenmesi gerekir. Üst görünümünde GADSearchBannerView boyutunu yeniden boyutlandırmak için kullanılacak kod burada uygulanmalıdır.

Örnek uygulama

Aşağıdaki örnekte, UIScrollView öğesinin alt görünümü olarak GADSearchBannerView oluşturmak için GBannerViewController kullanıldığı gösterilmektedir. AFSMA reklamlarının doğru şekilde istenmesi 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 parametrelerini dikte eden 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ğinde bulunmak için GADSearchBannerView nesnesinden GADDynamicHeightSearchRequest nesnesiyle loadRequest yöntemini çağırın:

[self.searchBannerView loadRequest:searchRequest];

Üst görünümün, reklamlar döndürüldükten sonra GADSearchBannerView adını doğru şekilde barındırması için aşağıdaki geri çağırma uygulanmalıdır.

// 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 özellikler (yukarıda searchRequest) aracılığıyla ayarlanabilir. Diğer parametrelerin setAdvancedOptionValue yöntemiyle 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ı inceleme

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ı doğru bir şekilde işlemek ve hata nesnesi aracılığıyla hatayı incelemek için bu geri çağırmayı kullanabilirsiniz.