Implementación de AFS para apps para dispositivos móviles (AFSMA) en iOS

Requisitos previos

En esta guía de implementación, se supone que estás familiarizado con los siguientes elementos:

Descripción general

En este documento, se describe el proceso de integración de AFS para anuncios en aplicaciones para dispositivos móviles (AFSMA) en tu app para dispositivos móviles iOS. A veces, los anuncios AFSMA también se denominan dinámicos. anuncios de búsqueda de altura. Para solicitar y renderizar anuncios de AFSMA en iOS, deberás hacer lo siguiente: implementa lo siguiente:

GADSearchBannerView

  • Esta clase se hereda de la clase UIView de iOS y muestra los anuncios de AFSMA. El GADSearchBannerView realiza la solicitud de un anuncio con una GADDynamicHeightSearchRequest y renderiza los anuncios que se muestran. El Se debe agregar GADSearchBannerView a cualquiera de las vistas existentes de la app. por lo general, es el controlador de vista superior Se agregó GADSearchBannerView. Se deben establecer los delegados adecuados en GADSearchBannerView
  • Se debe crear una instancia de GADSearchBannerView con initWithAdSize:kGADAdSizeFluid para solicitar anuncios de AFSMA. Creando una instancia GADSearchBannerView con initWithAdSize:kGADAdSizeBanner solicita AFSMA heredada anuncios.
  • La propiedad adUnitID de este objeto debe establecerse con el código de tu propiedad.

GADDynamicHeightSearchRequest

  • Este objeto encapsula los parámetros de la solicitud de anuncio. Esto es similar a parámetros de configuración en los objetos de solicitud de anuncio de JavaScript (opciones de página, unidades de AFS) para computadoras de escritorio y la Web móvil de AFS.

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

  • Se llama a esta devolución de llamada cuando se muestra la solicitud de anuncio. Desde que el anuncio devuelto podría contener varios anuncios con diferentes extensiones, el tamaño exacto de la unidad de anuncios se desconoce cuando se realiza la solicitud de anuncios. Una vez que el anuncio de muestra, la vista del banner debe actualizarse para adaptarse al nuevo tamaño del la unidad de anuncios. El código para cambiar el tamaño de GADSearchBannerView en su vista superior debe implementarse aquí.

Ejemplo de implementación

En el siguiente ejemplo, se muestra cómo usar un GBannerViewController para crear un GADSearchBannerView como una subvista de un UIScrollView. Solicitar AFSMA de forma adecuada anuncios, se debe crear una instancia del objeto GADSearchBannerView con 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];
  }

Dentro del mismo GBannerViewController, crea un GADDynamicHeightSearchRequest. que determina los parámetros del anuncio que se renderizará en el 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"];

Otras opciones de personalización posibles si configuras propiedades adicionales en el GADDynamicHeightSearchRequest .

Para realizar una solicitud de anuncio, llama a loadRequest con el GADDynamicHeightSearchRequest del objeto GADSearchBannerView:

[self.searchBannerView loadRequest:searchRequest];

Para que la vista superior se ajuste correctamente a GADSearchBannerView una vez que anuncios, se debe implementar la siguiente devolución de llamada.

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

Opciones avanzadas

La mayoría de los parámetros de solicitud de anuncio se pueden configurar con propiedades en la Objeto GADDynamicHeightSearchRequest (searchRequest arriba). Otros parámetros deberá establecerse usando pares clave-valor con el setAdvancedOptionValue método:

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

Consulta la lista completa de los parámetros disponibles.

Investiga errores

GADBannerViewDelegate contiene una devolución de llamada para ayudarte a investigar errores:

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

Si falla una solicitud de anuncio, puedes usar esta devolución de llamada para manejar correctamente el error. y, luego, investigarás el error a través del objeto de error.