Requisitos previos
En esta guía de implementación, se da por sentado que estás familiarizado con lo siguiente:
- Desarrollo de apps para iOS.
- Asocia el SDK de Google Mobile Ads con un proyecto de iOS. Descarga la última versión del SDK.
Descripción general
En este documento, se describe el proceso de integración de los anuncios de AFS para aplicaciones para dispositivos móviles (AFSMA) en tu app para dispositivos móviles con iOS. A veces, estos anuncios también se conocen como anuncios de búsqueda de altura dinámica. Para solicitar y renderizar anuncios de AFSMA en iOS, deberás implementar lo siguiente:
- 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 unGADDynamicHeightSearchRequest
y procesa los anuncios que se muestran. Se debe agregar laGADSearchBannerView
a cualquiera de las vistas existentes de la app. Por lo general, es el controlador de vista superior que contiene la vista a la que se agrega laGADSearchBannerView
. Se deben establecer los delegados adecuados enGADSearchBannerView
. - Para crear anuncios de AFSMA, es necesario crear una instancia de
GADSearchBannerView
coninitWithAdSize:kGADAdSizeFluid
. La creación de instancias deGADSearchBannerView
coninitWithAdSize:kGADAdSizeBanner
solicita anuncios AFSMA heredados. - La propiedad
adUnitID
de este objeto se debe establecer en tu código de propiedad.
- Este objeto encapsula los parámetros de solicitud de anuncio. Esto es similar a la configuración de parámetros en los objetos de solicitud de anuncio de JavaScript (opciones de página, opciones de unidades) para AFS de escritorio y la Web móvil.
(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size
- Se llama a esta devolución de llamada cuando se muestra la solicitud de anuncio. Dado que el bloque de anuncios que se muestra puede contener una cantidad de anuncios con diferentes extensiones, se desconoce el tamaño exacto del bloque de anuncios cuando se realiza la solicitud de anuncio. Una vez que se muestra el anuncio, la vista del banner debe actualizarse para adaptarse al nuevo tamaño del bloque de anuncios. Aquí se debe implementar código para cambiar el tamaño de
GADSearchBannerView
en su vista superior.
Ejemplo de implementación
En el siguiente ejemplo, se muestra cómo usar un GBannerViewController
para crear un GADSearchBannerView
como subvista de un UIScrollView
. Para solicitar los anuncios de AFSMA de manera correcta, debes 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 de la misma GBannerViewController
, crea un GADDynamicHeightSearchRequest
que dicte los parámetros del anuncio que se renderizará en 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"];
Puedes configurar otras opciones de personalización si configuras propiedades adicionales en el objeto GADDynamicHeightSearchRequest
.
Para realizar una solicitud de anuncio, llama a loadRequest
con el objeto GADDynamicHeightSearchRequest
desde el objeto GADSearchBannerView
:
[self.searchBannerView loadRequest:searchRequest];
Para que la vista superior se adapte correctamente al elemento GADSearchBannerView
una vez que se muestran los 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 anuncios se pueden establecer mediante propiedades en el objeto GADDynamicHeightSearchRequest
(searchRequest
en la parte superior). Otros parámetros deberán establecerse mediante pares clave-valor con el método 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"];
Consulte 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 una solicitud de anuncio falla, puedes usar esta devolución de llamada para manejar correctamente el error y, luego, investigar el error a través del objeto de error.