Реализация AFS для мобильных приложений (AFSMA) для iOS

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Предпосылки

В этом руководстве по внедрению предполагается, что вы знакомы со следующим:

Обзор

В этом документе описывается процесс интеграции объявлений AFS для мобильных приложений (AFSMA) в ваше мобильное приложение iOS. Объявления AFSMA также иногда называют поисковыми объявлениями с динамической высотой. Чтобы запросить и отобразить рекламу AFSMA на iOS, вам необходимо реализовать следующее:

GADSearchBannerView

  • Этот класс наследуется от класса iOS UIView и отображает объявления AFSMA. GADSearchBannerView отправляет запрос объявления с помощью GADDynamicHeightSearchRequest и отображает возвращенные объявления. GADSearchBannerView следует добавить в любое из существующих представлений приложения; обычно родительский контроллер представления содержит представление, к которому добавляется GADSearchBannerView . Соответствующие делегаты должны быть установлены в GADSearchBannerView .
  • Для запроса объявлений GADSearchBannerView необходимо создать экземпляр GADSearchBannerView с параметром initWithAdSize:kGADAdSizeFluid . Создание экземпляра GADSearchBannerView с помощью initWithAdSize:kGADAdSizeBanner запрашивает устаревшие объявления AFSMA.
  • adUnitID этого объекта необходимо присвоить код вашего свойства.

GADDynamicHeightSearchRequest

  • Этот объект инкапсулирует параметры запроса объявления. Это аналогично настройке параметров в объектах запроса объявления JavaScript (параметры страницы, параметры блока) для настольных и мобильных веб-сайтов AFS.

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

  • Этот обратный вызов вызывается, когда возвращается запрос объявления. Поскольку возвращенный рекламный блок может содержать несколько объявлений с разными расширениями, точный размер рекламного блока неизвестен на момент запроса рекламы. После того, как объявление будет возвращено, вид баннера необходимо обновить, чтобы он соответствовал новому размеру рекламного блока. Здесь должен быть реализован код для изменения размера GADSearchBannerView в его родительском представлении.

Пример реализации

В приведенном ниже примере показано использование GBannerViewController для создания GADSearchBannerView в качестве подпредставления UIScrollView . Чтобы правильно запрашивать объявления GADSearchBannerView , объект GADSearchBannerView должен быть создан с помощью 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];
  }

В том же GBannerViewController создайте GADDynamicHeightSearchRequest , определяющий параметры объявления, которое будет отображаться в 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"];

Другие параметры настройки возможны путем установки дополнительных свойств объекта GADDynamicHeightSearchRequest .

Чтобы сделать запрос рекламы, вызовите loadRequest с объектом GADDynamicHeightSearchRequest из объекта GADSearchBannerView :

[self.searchBannerView loadRequest:searchRequest];

Чтобы родительское представление правильно соответствовало GADSearchBannerView после возврата объявлений, необходимо реализовать следующий обратный вызов.

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

Расширенные опции

Большинство параметров запроса объявления можно задать с помощью свойств объекта GADDynamicHeightSearchRequest ( searchRequest выше). Другие параметры нужно будет установить с помощью пар ключ-значение с помощью метода 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"];

См. полный список доступных параметров .

Исследование ошибок

GADBannerViewDelegate содержит обратный вызов, помогающий исследовать ошибки:

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

Если запрос объявления завершается неудачно, вы можете использовать этот обратный вызов, чтобы правильно обработать ошибку и исследовать ее с помощью объекта ошибки.