Anúncios

Os anúncios de banner ocupam um lugar no layout de um aplicativo, na parte superior ou inferior da tela do dispositivo. Eles permanecem na tela enquanto os usuários interagem com o aplicativo e podem ser atualizados automaticamente após um determinado período de tempo. Se você é novo na publicidade para celular, eles são um ótimo lugar para começar.Estudo de caso .

Este guia mostra como integrar anúncios de banner deAdMob em um aplicativo iOS. Além de trechos de código e instruções, ele inclui informações sobre o dimensionamento adequado de banners e links para recursos adicionais.

Pré-requisitos

Sempre teste com anúncios de teste

Ao criar e testar seus aplicativos, use anúncios de teste em vez de anúncios de produção ao vivo. O não cumprimento pode levar à suspensão da sua conta.

A maneira mais fácil de carregar anúncios de teste é usar nosso ID de bloco de anúncios de teste dedicado para banners iOS:ca-app-pub-3940256099942544/2934735716

Ele foi especialmente configurado para retornar anúncios de teste para cada solicitação, e você pode usá-lo em seus próprios aplicativos durante a codificação, teste e depuração. Apenas certifique-se de substituí-lo por seu próprio ID de bloco de anúncios antes de publicar seu aplicativo.

Para obter mais informações sobre como os anúncios de teste do SDK de anúncios para dispositivos móveis funcionam, consulte Anúncios de teste .

Crie um GADBannerView

Os anúncios de banner são exibidos em objetos GADBannerView , portanto, a primeira etapa para integrar os anúncios de banner é incluir um GADBannerView em sua hierarquia de visualização. Isso geralmente é feito com o Interface Builder ou programaticamente.

Construtor de Interface

Um GADBannerView pode ser adicionado a um storyboard ou arquivo xib como qualquer visualização típica. Ao usar esse método, certifique-se de adicionar restrições de largura e altura para corresponder ao tamanho do anúncio que você deseja exibir. Por exemplo, ao exibir um banner (320 x 50), use uma restrição de largura de 320 pontos e uma restrição de altura de 50 pontos.

Programaticamente

Um GADBannerView também pode ser instanciado diretamente. Veja um exemplo de como criar um GADBannerView , alinhado ao centro inferior da área segura da tela, com um tamanho de banner de 320x50:

Rápido

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    
    // In this case, we instantiate the banner with desired ad size.
    bannerView = GADBannerView(adSize: GADAdSizeBanner)

    addBannerViewToView(bannerView)
  }

  func addBannerViewToView(_ bannerView: GADBannerView) {
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(bannerView)
    view.addConstraints(
      [NSLayoutConstraint(item: bannerView,
                          attribute: .bottom,
                          relatedBy: .equal,
                          toItem: bottomLayoutGuide,
                          attribute: .top,
                          multiplier: 1,
                          constant: 0),
       NSLayoutConstraint(item: bannerView,
                          attribute: .centerX,
                          relatedBy: .equal,
                          toItem: view,
                          attribute: .centerX,
                          multiplier: 1,
                          constant: 0)
      ])
   }
   
}

Objetivo-C

@import GoogleMobileAds;

@interface ViewController ()

@property(nonatomic, strong) GADBannerView *bannerView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  
  // In this case, we instantiate the banner with desired ad size.
  self.bannerView = [[GADBannerView alloc]
      initWithAdSize:GADAdSizeBanner];

  [self addBannerViewToView:self.bannerView];
}

- (void)addBannerViewToView:(UIView *)bannerView {
  bannerView.translatesAutoresizingMaskIntoConstraints = NO;
  [self.view addSubview:bannerView];
  [self.view addConstraints:@[
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeBottom
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.bottomLayoutGuide
                               attribute:NSLayoutAttributeTop
                              multiplier:1
                                constant:0],
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeCenterX
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view
                               attribute:NSLayoutAttributeCenterX
                              multiplier:1
                                constant:0]
                                ]];
}
  


@end

Observe que, neste caso, não fornecemos restrições de largura ou altura, pois o tamanho do anúncio fornecido dará ao banner um tamanho de conteúdo intrínseco para dimensionar a visualização.

Se você não quiser usar um tamanho padrão definido por uma constante, poderá definir um tamanho personalizado usando GADAdSizeFromCGSize . Consulte a seção de tamanho do banner para obter mais informações.

Configurar propriedades GADBannerView

Para carregar e exibir anúncios, GADBannerView requer que algumas propriedades sejam definidas.

  • rootViewController - Este controlador de visualização é usado para apresentar uma sobreposição quando o anúncio é clicado. Normalmente deve ser definido para o controlador de exibição que contém o GADBannerView .
  • adUnitID - Este é o ID do bloco de anúncios a partir do qual o GADBannerView deve carregar anúncios.

Aqui está um exemplo de código mostrando como definir as duas propriedades necessárias no método viewDidLoad de um UIViewController:

Rápido

override func viewDidLoad() {
  super.viewDidLoad()
  ...

  bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
  bannerView.rootViewController = self
}

Objetivo-C

- (void)viewDidLoad {
  [super viewDidLoad];
  ...

  self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2934735716";
  self.bannerView.rootViewController = self;
}

Carregar um anúncio

Uma vez que o GADBannerView esteja no lugar e suas propriedades configuradas, é hora de carregar um anúncio. Isso é feito chamando loadRequest: em um objeto GADRequest :

Rápido

override func viewDidLoad() {
  super.viewDidLoad()
  ...

  bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
  bannerView.rootViewController = self
  bannerView.load(GADRequest())
}

Objetivo-C

- (void)viewDidLoad {
  [super viewDidLoad];
  ...

  self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2934735716";
  self.bannerView.rootViewController = self;
  [self.bannerView loadRequest:[GADRequest request]];
}

Os objetosGADRequest representam uma única solicitação de anúncio e contêm propriedades para itens como informações de segmentação.

Eventos de anúncios

Por meio do uso de GADBannerViewDelegate , você pode ouvir eventos de ciclo de vida, como quando um anúncio é fechado ou o usuário sai do aplicativo.

Inscrevendo-se para eventos de banner

Para se registrar em eventos de anúncio de banner, defina a propriedade delegate em GADBannerView como um objeto que implementa o protocolo GADBannerViewDelegate . Geralmente, a classe que implementa anúncios de banner também atua como a classe delegada; nesse caso, a propriedade delegate pode ser definida como self .

Rápido

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADBannerViewDelegate {

  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    ...
    bannerView.delegate = self
  }
}

Objetivo-C

@import GoogleMobileAds;

@interface ViewController () <GADBannerViewDelegate>

@property(nonatomic, strong) GADBannerView *bannerView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  ...
  self.bannerView.delegate = self;
}

Implementando eventos de banner

Cada um dos métodos no GADBannerViewDelegate é marcado como opcional, portanto, você só precisa implementar os métodos desejados. Este exemplo implementa cada método e registra uma mensagem no console:

Rápido

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  print("bannerViewDidReceiveAd")
}

func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error) {
  print("bannerView:didFailToReceiveAdWithError: \(error.localizedDescription)")
}

func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
  print("bannerViewDidRecordImpression")
}

func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillPresentScreen")
}

func bannerViewWillDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillDIsmissScreen")
}

func bannerViewDidDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewDidDismissScreen")
}

Objetivo-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidReceiveAd");
}

- (void)bannerView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(NSError *)error {
  NSLog(@"bannerView:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}

- (void)bannerViewDidRecordImpression:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidRecordImpression");
}

- (void)bannerViewWillPresentScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillPresentScreen");
}

- (void)bannerViewWillDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillDismissScreen");
}

- (void)bannerViewDidDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidDismissScreen");
}

Veja o exemplo Ad Delegate para uma implementação de métodos de delegado de banner no aplicativo iOS API Demo.

Swift Objective-C

Casos de uso

Veja alguns exemplos de casos de uso para esses métodos de evento de anúncio.

Adicionando um banner à hierarquia de visualização quando um anúncio é recebido

Você pode querer atrasar a adição de um GADBannerView à hierarquia de exibição até que um anúncio seja recebido. Você pode fazer isso ouvindo o evento bannerViewDidReceiveAd: ::

Rápido

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  // Add banner to view and add constraints as above.
  addBannerViewToView(bannerView)
}

Objetivo-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  // Add bannerView to view and add constraints as above.
  [self addBannerViewToView:self.bannerView];
}

Animando um anúncio de banner

Você também pode usar o evento bannerViewDidReceiveAd: para animar um banner quando ele for retornado, conforme mostrado no exemplo a seguir:

Rápido

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  bannerView.alpha = 0
  UIView.animate(withDuration: 1, animations: {
    bannerView.alpha = 1
  })
}

Objetivo-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  bannerView.alpha = 0;
  [UIView animateWithDuration:1.0 animations:^{
    bannerView.alpha = 1;
  }];
}

Pausando e retomando o aplicativo

O protocolo GADBannerViewDelegate tem métodos para notificá-lo sobre eventos, como quando um clique faz com que uma sobreposição seja apresentada ou dispensada. Se você quiser rastrear se esses eventos foram causados ​​por anúncios, registre-se para esses métodos GADBannerViewDelegate .

Para capturar todos os tipos de apresentações de sobreposição ou invocações externas do navegador, não apenas aquelas provenientes de cliques em anúncios, é melhor que seu aplicativo ouça os métodos equivalentes em UIViewController ou UIApplication . Aqui está uma tabela mostrando os métodos iOS equivalentes que são invocados ao mesmo tempo que os métodos GADBannerViewDelegate :

Método GADBannerViewDelegate método iOS
bannerViewWillPresentScreen: viewWillDisappear:
bannerViewWillDismissScreen: ViewWillAppear do UIViewController viewWillAppear:
bannerViewDidDismissScreen: viewDidAppear:

A tabela abaixo lista os tamanhos de banner padrão.

Tamanho em pontos (LxA) Descrição Disponibilidade Constante AdSize
320 x 50 Bandeira Telefones e tablets GADAdSizeBanner
320 x 100 Faixa grande Telefones e tablets GADAdSizeLargeBanner
300 x 250 retângulo médio IAB Telefones e tablets GADAdSizeMediumRectangle
468 x 60 Banner em tamanho real do IAB Comprimidos GADAdSizeFullBanner
728 x 90 Tabela de classificação do IAB Comprimidos GADAdSizeLeaderboard
Largura fornecida x Altura adaptável Faixa adaptável Telefones e tablets N / D

Tamanhos de anúncio personalizados

Para definir um tamanho de banner personalizado, defina o tamanho desejado usando GADAdSizeFromCGSize , conforme mostrado aqui:

Rápido

let adSize = GADAdSizeFromCGSize(CGSize(width: 300, height: 50))

Objetivo-C

GADAdSize size = GADAdSizeFromCGSize(CGSizeMake(300, 50));

Recursos adicionais

Exemplos no GitHub

Tutoriais em vídeo do Mobile Ads Garage

Histórias de sucesso