Estilos nativos

Selecione a plataforma: Android iOS Flutter

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:

  1. Crie um item de linha na interface do Ad Manager e selecione um dos tamanhos predefinidos no menu suspenso do campo Size.

  2. 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 constantes GADAdSize 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.

Baixar a API de demonstração

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;
}