Anúncios intersticiais


Os anúncios intersticiais são de tela cheia e cobrem a interface do app até serem fechados pelo usuário. Geralmente, eles são exibidos em momentos de transição naturais no fluxo de um app, como no meio de atividades ou durante pausas entre os níveis de um jogo. Quando um app mostra um anúncio intersticial, o usuário pode tocar nele e continuar até o destino ou fechar e voltar ao app. Estudo de caso.

Neste guia, mostramos como integrar anúncios intersticiais a apps Android e iOS usando o SDK dos anúncios para dispositivos móveis do Google para C++.

Pré-requisitos

Sempre use 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

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

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

Configurar um InterstitialAd

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

  1. Adicione este cabeçalho ao código em C++ do aplicativo:

     #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 transmissão da visualização principal para um tipo AdParent. A visualização principal é uma referência JNI jobject 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 a manter 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 seu 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ê tenha inicializado o objeto InterstitialAd e que tenha o ID do bloco de anúncios e um objeto AdRequest. Um firebase::Future é retornado, 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 é inicializado:

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 callbacks

Você precisa estender a classe FullScreenContentListener para receber notificações de eventos de ciclo de vida e apresentação de anúncios intersticiais. Sua subclasse FullScreenContentListener personalizada pode ser registrada pelo método InterstitialAd::SetFullScreenContentListener() e vai receber callbacks quando o anúncio for apresentado com ou sem sucesso e 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, depois que um anúncio intersticial é mostrado, ele não pode ser exibido novamente. Uma prática recomendada é carregar outro anúncio intersticial no método OnAdDismissedFullScreenContent() do seu FullScreenContentListener para que o próximo comece a ser carregado assim que o anterior for dispensado.

Mostrar o anúncio

Os anúncios intersticiais devem ser exibidos durante pausas naturais no fluxo de um app, como entre as fases de um jogo 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 com sucesso.

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

Práticas recomendadas

Avalie se os anúncios intersticiais são o tipo certo para seu app.
Eles funcionam melhor em apps com momentos de transição natural. Esses momentos são criados pela conclusão de uma tarefa dentro de um app, como o compartilhamento de uma imagem ou o término de um nível do jogo. Como o usuário espera uma pausa na ação, fica fácil apresentar um intersticial sem prejudicar a experiência. Analise em quais pontos do fluxo do app você exibirá os intersticiais e como o usuário provavelmente vai responder a eles.
Não se esqueça de pausar a ação ao exibir um anúncio intersticial.
Há vários tipos diferentes de anúncios intersticiais: texto, imagem, vídeo e muito mais. Quando seu app exibir um anúncio desse tipo, ele também precisa suspender o uso de alguns recursos para que o anúncio possa aproveitá-los. Por exemplo, ao realizar a chamada para exibir um anúncio intersticial, pause todas as saídas de áudio que estiverem sendo produzidas pelo seu app. Você pode retomar a reprodução de sons no método OnAdDismissedFullScreenContent do FullScreenContentListener instalado, que será invocado quando o usuário terminar de interagir com o anúncio. Além disso, considere suspender temporariamente qualquer tarefa computacional intensa (como um loop de jogo) enquanto o anúncio estiver sendo exibido. Isso garante que o usuário não tenha gráficos lentos/sem resposta ou vídeos com renderização lenta.
Permita um tempo de carregamento adequado.
Garantir que os anúncios intersticiais sejam exibidos no momento adequado é tão importante quanto garantir que o usuário não tenha que esperar o carregamento deles. Carregar o anúncio com antecedência antes de mostrá-lo é uma maneira de confirmar que o app terá uma publicidade pronta para ser exibida quando chegar a hora.
Não exiba anúncios em excesso aos usuários.
Embora aumentar a frequência de anúncios intersticiais no seu app possa parecer uma ótima forma de gerar mais receita, isso também prejudica a experiência do usuário e diminui as taxas de cliques. Se os usuários forem interrompidos com muita frequência, eles não vão gostar do app.
Não use o futuro de conclusão do carregamento para mostrar o intersticial.
Isso gera uma experiência ruim para o usuário. O ideal é pré-carregar o anúncio antes de precisar mostrá-lo.

Outros recursos

Exemplo no GitHub

Tutoriais em vídeo do Mobile Ads Garage

Histórias de sucesso

Próximas etapas