Anúncios intersticiais

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

Este guia mostra como integrar anúncios intersticiais em apps Android e iOS usando o SDK dos anúncios para dispositivos móveis do Google para C++.

Pré-requisitos

Sempre faça testes 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, que varia de acordo com a plataforma do dispositivo:

  • Android: ca-app-pub-3940256099942544/1033173712
  • iOS: ca-app-pub-3940256099942544/4411468910

Elas foram configuradas especialmente para retornar anúncios de teste para cada solicitação. Você pode usá-las nos seus próprios apps durante a programação, o teste e a depuração. Apenas lembre-se de substituí-lo pelo seu próprio ID do bloco de anúncios antes de publicar o aplicativo.

Para mais informações sobre como os anúncios de teste do SDK 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. Registre-se para callbacks.
  3. Exiba o anúncio e processe os eventos de ciclo de vida.

Configurar um InterstitialAd

Os anúncios intersticiais são exibidos em objetos InterstitialAd. Portanto, a primeira etapa para integrar anúncios intersticiais no seu app é criar e inicializar um objeto InterstitialAd.

  1. Adicione o seguinte cabeçalho ao código C++ do app:

     #include "firebase/gma/interstial_ad.h"
    

  2. Declare e instancie um objeto InterstitialAd:

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();
    

  3. Inicialize a instância InterstitialAd usando a visualização mãe convertida para um tipo AdParent. A visualização pai é uma referência jobject da JNI a um Activity do Android ou um ponteiro para um UIView do iOS.

    // my_ad_parent is a jobject reference to an Android Activity or
    // a pointer to an iOS UIView.
    firebase::gma::AdParent ad_parent =
      static_cast<firebase::gma::AdParent>(my_ad_parent);
    firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
    
  4. Como alternativa para reter o futuro como uma variável, você pode verificar periodicamente o status da operação de inicialização invocando InitializeLastResult() no objeto InterstitialAd. Isso pode ser útil para acompanhar o processo de inicialização no loop de jogo global.

    // Monitor the status of the future in your game loop:
    firebase::Future<void> result = interstitial_ad->InitializeLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      // Initialization completed.
      if(future.error() == firebase::gma::kAdErrorCodeNone) {
        // Initialization successful.
      } else {
        // An error has occurred.
      }
    } else {
      // Initialization on-going.
    }
    

Para mais informações sobre como trabalhar com firebase::Future, consulte Usar Futures para monitorar o status de conclusão das chamadas de método.

Carregar um anúncio

É possível carregar um anúncio usando o método LoadAd() no objeto InterstitialAd. O método de carregamento exige que você inicialize o objeto InterstitialAd e que tenha o ID do bloco de anúncios e um objeto AdRequest. É retornado um firebase::Future que pode ser usado para monitorar o estado e o resultado da operação de carregamento.

O código a seguir mostra como carregar um anúncio depois que o InterstitialAd for inicializado com sucesso:

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);

Registrar-se para callbacks

Estenda a classe FullScreenContentListener para receber notificações de apresentação do anúncio intersticial e eventos de ciclo de vida. Sua subclasse FullScreenContentListener personalizada pode ser registrada com o método InterstitialAd::SetFullScreenContentListener() e vai receber callbacks quando o anúncio for apresentado com sucesso ou não, bem como quando for dispensado.

O código a seguir mostra como estender a classe e atribuí-la ao anúncio:

  class ExampleFullScreenContentListener
      : public firebase::gma::FullScreenContentListener {

   public:
    ExampleFullScreenContentListener() {}

    void OnAdClicked() override {
      // This method is invoked when the user clicks the ad.
    }

    void OnAdDismissedFullScreenContent() override {
     // This method is invoked when the ad dismisses full screen content.
    }

    void OnAdFailedToShowFullScreenContent(const AdError& error) override {
      // This method is invoked when the ad failed to show full screen content.
      // Details about the error are contained within the AdError parameter.
    }

    void OnAdImpression() override {
      // This method is invoked when an impression is recorded for an ad.
    }

    void OnAdShowedFullScreenContent() override {
      // This method is invoked when the ad showed its full screen content.
    }
  };

  ExampleFullScreenContentListener* full_screen_content_listener =
    new ExampleFullScreenContentListener();
  interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);

InterstitialAd é um objeto de uso único. Isso significa que um anúncio intersticial não pode ser mostrado de novo. Uma prática recomendada é carregar outro anúncio intersticial no método OnAdDismissedFullScreenContent() da FullScreenContentListener para que o próximo anúncio intersticial comece a carregar assim que o anterior for dispensado.

Exibir o anúncio

Os intersticiais precisam ser exibidos durante pausas naturais no fluxo de um app. Entre as fases de um jogo é um bom exemplo ou depois que o usuário conclui uma tarefa. Embora o FullScreenContentListener possa ser usado para determinar quando um anúncio mostrou o conteúdo em tela cheia, o futuro retornado por Show() também vai sinalizar quando o anúncio foi mostrado.

  firebase::Future<void> result = interstitial_ad->Show();

Práticas recomendadas

Avalie se os anúncios intersticiais são o tipo certo de anúncio para seu app.
Os anúncios intersticiais funcionam melhor em apps com pontos de transição natural. Esse ponto é criado pela conclusão de uma tarefa em um app, como compartilhar uma imagem ou passar uma fase do jogo. Como o usuário está esperando uma pausa na ação, é fácil apresentar um anúncio intersticial sem prejudicar a experiência. Considere em quais pontos do fluxo de trabalho do seu 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áficos, em vídeo e muito mais. É importante garantir que, quando seu app exibe um anúncio intersticial, ele também suspende o uso de alguns recursos para permitir que o anúncio aproveite-os. Por exemplo, ao fazer a chamada para mostrar um anúncio intersticial, pause qualquer saída de áudio que esteja sendo produzida pelo app. Você pode retomar a reprodução de sons no método OnAdDismissedFullScreenContent da FullScreenContentListener instalada, que vai 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 garante que o usuário não tenha gráficos lentos ou que não respondam nem vídeos travados.
Permita um tempo de carregamento adequado.
Tão importante quanto a exibição dos anúncios intersticiais no momento adequado é garantir que o usuário não tenha que esperar o carregamento deles. Carregar o anúncio antes da exibição pode garantir que seu app tenha um anúncio intersticial totalmente carregado pronto no momento para mostrá-lo.
Não sobrecarregue o usuário com anúncios.
Embora aumentar a frequência de anúncios intersticiais no seu app possa parecer uma ótima maneira de aumentar a receita, ele também pode prejudicar a experiência do usuário e reduzir as taxas de cliques. Confira se os usuários não são interrompidos com tanta frequência de modo que não possam mais aproveitar o uso do app.
Não use o futuro da conclusão do carregamento para mostrar o intersticial.
Isso pode resultar em uma experiência ruim para o usuário. Em vez disso, pré-carregue o anúncio antes de precisar exibi-lo.

Outros recursos

Exemplo no GitHub

Tutoriais em vídeo do Mobile Ads Garage

Histórias de sucesso

Próximas etapas