Com as configurações de estilo nativo,
o Google Ad Manager pode gerenciar a renderização dos anúncios desse tipo com base nos estilos
nativos especificados no produto. Primeiro, especifique o tamanho e a segmentação.
Em seguida, adicione HTML, CSS e JavaScript para definir anúncios responsivos
e produzir uma exibição de qualidade em todas as telas. Você não precisa fazer nenhuma
renderização. O Ad Manager aplica automaticamente o estilo nativo
certo ao destino. Os estilos nativos são implementados como anúncios de banner,
usando um GAMBannerView
. Eles podem ser usados com um tamanho de anúncio fixo
determinado com antecedência ou com um tamanho flexível determinado no tempo de execução.
Pré-requisitos
- SDK dos anúncios para dispositivos móveis do Google versão 7.67.0 ou mais recente
Este guia presume que você tenha um conhecimento razoável sobre o funcionamento do SDK dos anúncios para dispositivos móveis do Google. Se não for o caso, consulte nosso guia Como começar.
Tamanho fixo
Os estilos nativos com tamanho fixo permitem controlar a largura e a altura do anúncio nativo. Para definir um tamanho fixo, siga estas etapas:
Crie um item de linha na interface do Ad Manager e selecione um dos tamanhos predefinidos no menu suspenso do campo
Size
.No Interface Builder, defina a largura e a altura do
GAMBannerView
para corresponder ao tamanho predefinido selecionado na etapa 1. Confira uma lista de tamanhos e as constantesGADAdSize
correspondentes na seção Banner Size.
Para implementar estilos nativos com um tamanho fixo, basta seguir as instruções em Your first banner request. O diferencial é que você tem flexibilidade e controle sobre o HTML, o CSS e o JavaScript, dando ao seu anúncio de banner uma aparência nativa que combina com o app.
Tamanho flexível
Em alguns casos, um tamanho fixo pode não fazer sentido. Por exemplo, talvez você
queira que a largura do anúncio corresponda ao conteúdo do app, mas que a altura
seja ajustada dinamicamente para se adequar ao conteúdo do anúncio. Nesse caso,
especifique Fluid
como o tamanho do anúncio na interface do Ad Manager para
que ele seja determinado no tempo de execução no app.
O SDK fornece uma constante GADAdSize
especial, a kGADAdSizeFluid
, para lidar com essa situação. A altura do anúncio flexível é determinada de modo dinâmico,
com base na largura definida pelo publisher. Assim, o
GAMBannerView
ajusta a própria altura para ser igual à do criativo.
Solicitação flexível
Ao contrário de outros formatos de anúncio, o tamanho kGADAdSizeFluid
não tem
uma largura predefinida. Portanto, defina explicitamente a largura do frame do banner
no código ou no Interface Builder. Se isso não ocorrer,
o SDK vai definir a altura do banner com base na
largura total do dispositivo por padrão.
Se você fizer uma solicitação de vários tamanhos com kGADAdSizeFluid
,
o anúncio retornado sempre será colocado em um contêiner flexível e
terá um comportamento do mesmo tipo. Caso um criativo não responsivo seja
retornado nesse contêiner flexível, o SDK vai centralizar o anúncio no
contêiner, para que você não precise modificar a restrição de largura
sempre que um novo anúncio for retornado.
A implementação para fazer uma solicitação flexível de um ou de vários tamanhos
é muito semelhante. A única diferença é que, para uma solicitação de vários tamanhos,
você define a propriedade validAdSizes
para especificar todos os
que serão válidos para ela:
Swift
bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
Objective-C
_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner) ];
Confira como fica a implementação completa no código:
Swift
var bannerView: AdManagerBannerView!
override func viewDidLoad() {
super.viewDidLoad()
// Create the GAMBannerView and set its width to a width that makes sense for your
// app. In this example, the width is set to the width of the UIViewController's
// root view.
bannerView = AdManagerBannerView(adSize: AdSizeFluid)
var frameRect = bannerView.frame
frameRect.size.width = view.bounds.width
bannerView.frame = frameRect
// Uncomment this code for a multisize fluid request.
// bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
bannerView.adUnitID = "YOUR_AD_UNIT_ID"
bannerView.rootViewController = self
// Make the ad request.
bannerView.load(AdManagerRequest())
}
Objective-C
GAMBannerView *_bannerView;
- (void)viewDidLoad {
[super viewDidLoad];
// Create the GAMBannerView and set its width to a width that makes sense for your
// app. In this example, the width is set to the width of the UIViewController's
// root view.
_bannerView = [[GAMBannerView alloc] initWithAdSize:kGADAdSizeFluid];
CGRect frameRect = _bannerView.frame;
frameRect.size.width = CGRectGetWidth(self.view.bounds);
_bannerView.frame = frameRect;
// Uncomment this code for a multisize fluid request.
// _bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
// NSValueFromGADAdSize(kGADAdSizeBanner) ];
_bannerView.adUnitID = @"YOUR_AD_UNIT_ID";
_bannerView.rootViewController = self;
// Make the ad request.
[_bannerView loadRequest:[GAMRequest request]];
}
Para ver um exemplo de implementação de tamanho de anúncio flexível do Ad Manager, baixe o app de demonstração da API iOS em Swift ou Objective-C.
Protocolo GADAdSizeDelegate
Talvez você queira saber a altura de um banner antes que o tamanho do anúncio mude.
O callback adView:willChangeAdSizeTo:
notifica o delegado antes que
a visualização do banner mude para o novo GADAdSize
. Para receber uma notificação
antes que a visualização do banner seja alterada, sua classe precisa estar em conformidade com
o protocolo GADAdSizeDelegate
.
Confira um exemplo de implementação do callback adView:willChangeAdSizeTo:
que mostra como receber a nova largura e altura do banner:
Swift
// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
bannerView.adSizeDelegate = self
// MARK: - GADAdSizeDelegate
func adView(_ bannerView: BannerView, willChangeAdSizeTo adSize: AdSize) {
let height = adSize.size.height
let width = adSize.size.width
}
Objective-C
// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
_bannerView.adSizeDelegate = self;
#pragma mark - GADAdSizeDelegate
- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)adSize {
CGFloat height = adSize.size.height;
CGFloat width = adSize.size.width;
}