Anúncios intersticiais

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

São anúncios em tela cheia que cobrem a interface de um aplicativo até serem fechados pelo usuário. Normalmente, eles são exibidos em pontos de transição naturais no fluxo de um app, como entre atividades ou durante a pausa entre os níveis de um jogo. Quando um app exibe um anúncio intersticial, o usuário tem a opção de tocar no anúncio e continuar no destino ou fechá-lo e retornar ao app. Estudo de caso.

Este guia mostra como integrar anúncios intersticiais a um app iOS.

Pré-requisitos

  • SDK dos anúncios para dispositivos móveis do Google 8.0.0 ou mais recente.
  • Conclua o guia Primeiros passos.

Sempre testar com anúncios de teste

Ao criar e testar seus apps, use anúncios de teste em vez de anúncios de produção ativos. Sua conta poderá ser suspensa se isso não for feito.

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

Ele foi configurado especialmente para retornar anúncios de teste a cada solicitação, e você pode usá-lo nos seus próprios apps durante a programação, os testes e a depuração. Basta substituí-lo pelo ID do seu bloco de anúncios antes de publicar o app.

Para 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.

Implementação

As principais etapas para integrar anúncios intersticiais são:

  1. Carregue um anúncio.
  2. Registrar para callbacks.
  3. Exiba o anúncio e gerencie o evento de recompensa.

Carregar um anúncio

É possível carregar um anúncio usando o método estático loadWithAdUnitID:request:completionHandler: na classe GADInterstitialAd. O método de carregamento exige o ID do bloco de anúncios, um objeto GADRequest e um gerenciador de conclusão que é chamado quando o carregamento do anúncio é concluído ou falha. O objeto GADInterstitialAd carregado é fornecido como um parâmetro no gerenciador de conclusão. O exemplo abaixo mostra como carregar uma GADInterstitialAd na classe ViewController.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                      }
    )
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request:request
                    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

Registrar para callbacks

Para receber notificações de eventos de apresentação, é necessário implementar o protocolo GADFullScreenContentDelegate e atribuí-lo à propriedade fullScreenContentDelegate do anúncio retornado. O protocolo GADFullScreenContentDelegate gerencia callbacks para quando o anúncio é apresentado com sucesso ou não e quando é dispensado. O código a seguir mostra como implementar o protocolo e atribuí-lo ao anúncio:

Swift

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                        interstitial?.fullScreenContentDelegate = self
                      }
    )
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

Objective-C

@interface ViewController ()<GADFullScreenContentDelegate>

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request:request
                    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
    self.interstitial.fullScreenContentDelegate = self;
  }];
}

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
    NSLog(@"Ad did fail to present full screen content.");
}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
    NSLog(@"Ad will present full screen content.");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
   NSLog(@"Ad did dismiss full screen content.");
}

GADInterstitialAd é um objeto de uso único. Isso significa que, depois que um anúncio intersticial é exibido, ele não pode ser exibido novamente. Uma prática recomendada é carregar outro anúncio intersticial no método adDidDismissFullScreenContent: em GADFullScreenContentDelegate para que o próximo anúncio intersticial comece a ser carregado assim que o anterior for dispensado.

Exibir o anúncio

Os intersticiais precisam ser exibidos durante pausas naturais no fluxo de um app. Entre os níveis de um jogo, é um bom exemplo ou depois que o usuário conclui uma tarefa. Veja um exemplo de como fazer isso em um dos métodos de ação em uma UIViewController:

Swift

@IBAction func doSomething(_ sender: Any) {
  if interstitial != nil {
    interstitial.present(fromRootViewController: self)
  } else {
    print("Ad wasn't ready")
  }
}

Objective-C

- (IBAction)doSomething:(id)sender {
  ...
  if (self.interstitial) {
    [self.interstitial presentFromRootViewController:self];
  } else {
    NSLog(@"Ad wasn't ready");
  }
}

Práticas recomendadas

Avalie se os anúncios intersticiais são o tipo certo para seu app.
Anúncios intersticiais funcionam melhor em apps com pontos de transição naturais. A conclusão de uma tarefa em um app, como compartilhar uma imagem ou concluir um nível de jogo, cria esse ponto. Como o usuário espera uma interrupção na ação, é fácil apresentar um anúncio intersticial sem interromper a experiência. Pense em quais pontos do fluxo de trabalho do app você exibirá anúncios intersticiais e como o usuário provavelmente responderá.
Lembre-se de pausar a ação ao exibir um anúncio intersticial.
Há vários tipos diferentes de anúncios intersticiais: de texto, gráfico, em vídeo e muito mais. É importante garantir que, quando o app exibir um anúncio intersticial, ele também suspenda o uso de alguns recursos para permitir que eles aproveitem esses recursos. Por exemplo, ao fazer uma chamada para exibir um anúncio intersticial, pause a saída de áudio que está sendo produzida pelo app. É possível retomar a reprodução de sons no manipulador de eventos adDidDismissFullScreenContent:, que será invocado quando o usuário terminar de interagir com o anúncio. Além disso, considere interromper temporariamente todas as tarefas de computação intensas (como um loop de jogo) enquanto o anúncio estiver sendo exibido. Isso vai garantir que o usuário não enfrente gráficos lentos ou que não respondem, ou vídeos com renderização lenta.
Aguarde um tempo de carregamento adequado.
Assim como é importante garantir que você exiba anúncios intersticiais em um momento adequado, também é importante garantir que o usuário não tenha que esperar o carregamento deles. Carregar o anúncio com antecedência antes da intenção de mostrar pode garantir que seu app tenha um anúncio intersticial totalmente carregado quando estiver pronto para exibi-lo.
Não encha o usuário de anúncios.
Embora aumentar a frequência dos anúncios intersticiais no seu app possa parecer uma ótima maneira de aumentar a receita, isso também pode prejudicar a experiência do usuário e diminuir as taxas de cliques. Verifique se os usuários não são interrompidos com tanta frequência que não consigam mais aproveitar o uso do seu app.
Não use o retorno de chamada de conclusão do carregamento para exibir o intersticial.
Isso pode prejudicar a experiência do usuário. Em vez disso, pré-carregue o anúncio antes de exibi-lo. Em seguida, verifique o método canPresentFromRootViewController:error: em GADInterstitialAd para descobrir se ele está pronto para ser exibido.

Outros recursos

Exemplos no GitHub

Tutoriais em vídeo do Mobile Ads Garage

Histórias de sucesso

Próximas etapas