Pré-requisitos
Este guia de implementação pressupõe que você esteja familiarizado com o seguinte:
- Desenvolvimento de apps iOS.
- Associar o SDK dos anúncios para dispositivos móveis do Google a um projeto do iOS. Faça o download da versão mais recente do SDK.
Informações gerais
Este documento descreve o processo para integrar anúncios do AFSMA em aplicativos para dispositivos móveis (AFSMA, na sigla em inglês) no seu app iOS. Às vezes, esses anúncios também são chamados de anúncios de pesquisa de altura dinâmica. Para solicitar e renderizar anúncios do AFSMA no iOS, será necessário implementar o seguinte:
- Essa classe é herdada da classe UIView do iOS e exibe os anúncios do AFSMA. O
GADSearchBannerView
faz a solicitação de um anúncio com umaGADDynamicHeightSearchRequest
e renderiza os anúncios retornados. OGADSearchBannerView
precisa ser adicionado a qualquer uma das visualizações do app. Geralmente, é o controlador de visualização pai que contém a visualização a que oGADSearchBannerView
é adicionado. Os delegados apropriados precisam ser definidos noGADSearchBannerView
. - O
GADSearchBannerView
precisa ser instanciado cominitWithAdSize:kGADAdSizeFluid
para solicitar anúncios do AFSMA. InstanciarGADSearchBannerView
cominitWithAdSize:kGADAdSizeBanner
solicita anúncios legados do AFSMA. - A propriedade
adUnitID
nesse objeto precisa ser definida como seu código de propriedade.
- Esse objeto encapsula os parâmetros de solicitação de anúncio. Isso é análogo à definição de parâmetros nos objetos de solicitação de anúncio JavaScript (opções de página, opções de bloco) para a Web para computadores e dispositivos móveis do AFS.
(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size
- Esse callback é chamado quando a solicitação de anúncio é retornada. Como o bloco de anúncios retornado pode conter vários anúncios com extensões diferentes, o tamanho exato dele é desconhecido quando a solicitação de anúncio é feita. Depois que o anúncio for retornado, a visualização do banner precisará ser atualizada para acomodar o novo tamanho do bloco de anúncios. O código para redimensionar o
GADSearchBannerView
na visualização mãe precisa ser implementado aqui.
Implementação de exemplo
O exemplo abaixo demonstra o uso de um GBannerViewController
para criar uma
GADSearchBannerView
como uma subvisualização de um UIScrollView
. Para solicitar anúncios do AFSMA corretamente, o objeto GADSearchBannerView
precisa ser instanciado com 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];
}
No mesmo GBannerViewController
, crie uma GADDynamicHeightSearchRequest
que determine os parâmetros do anúncio que vão ser renderizados na 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"];
Outras opções de personalização são possíveis definindo outras propriedades no objeto GADDynamicHeightSearchRequest
.
Para fazer uma solicitação de anúncio, chame loadRequest
com o objeto GADDynamicHeightSearchRequest
do objeto GADSearchBannerView
:
[self.searchBannerView loadRequest:searchRequest];
Para que a visualização mãe acomode corretamente o GADSearchBannerView
quando os
anúncios forem retornados, implemente o callback a seguir.
// 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.
...
}
Opções avançadas
A maioria dos parâmetros de solicitação de anúncio pode ser definida por meio de propriedades no objeto GADDynamicHeightSearchRequest
(searchRequest
acima). Outros parâmetros
precisam ser definidos usando pares de chave-valor com o 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"];
Veja a lista completa de parâmetros disponíveis.
Como investigar erros
O GADBannerViewDelegate
contém um callback para ajudar você a investigar erros:
- (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"]);
}
Se uma solicitação de anúncio falhar, use esse callback para tratar do erro e investigar com o objeto de erro.