Anúncios intersticiais


São anúncios em tela cheia que cobrem a interface de um app até serem fechados pelo usuário. Eles geralmente aparecem 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 mostra um anúncio intersticial, o usuário pode tocar nele e continuar até o destino ou fechá-lo e voltar para o app. Estudo de caso.

Este guia mostra 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. Mostre o anúncio e processe os eventos do 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, além de quando ele 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 anúncio intersticial 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 (por exemplo, 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 veiculado 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.
Os anúncios intersticiais funcionam melhor em apps com pontos de transição naturais. Esses momentos são criados pela conclusão de uma tarefa dentro de um aplicativo, 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, é fácil apresentar um anúncio intersticial sem interromper a experiência dele. Analise em quais pontos do fluxo do seu aplicativo você vai exibir os anúncios intersticiais e como o usuário provavelmente responderá a eles.
Não se esqueça de pausar a ação ao mostrar um anúncio intersticial.
Existem vários tipos diferentes de anúncios intersticiais: de texto, imagem, vídeo e muito mais. É importante garantir que, quando o app mostrar um anúncio intersticial, ele também suspenda o uso de alguns recursos para que o anúncio possa aproveitar esses recursos. Por exemplo, ao fazer a chamada para mostrar 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 interromper temporariamente qualquer tarefa de computação intensa (como um loop de jogo) enquanto o anúncio está sendo mostrado. Isso garante que o usuário não tenha gráficos lentos ou sem resposta nem vídeos travados.
Aguarde tempo suficiente para o carregamento.
Garantir que os anúncios intersticiais sejam exibidos no momento apropriado é 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 mostrar garante que seu app tenha um anúncio intersticial totalmente carregado quando chegar a hora de veicular um.
Não inunde o usuário com anúncios.
Aumentar a frequência dos anúncios intersticiais no seu app pode parecer uma ótima maneira de aumentar a receita, mas também pode prejudicar a experiência do usuário e diminuir 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 pode causar uma experiência ruim para o usuário. Em vez disso, pré-carregue o anúncio antes de precisar mostrá-lo.

Outros recursos

Exemplo no GitHub

Tutoriais em vídeo da Garagem de anúncios para dispositivos móveis

Histórias de sucesso

Próximas etapas