Anúncios em banner

Os anúncios de banner ocupam um espaço no layout de um app, na parte superior ou inferior da tela do dispositivo. Eles permanecem na tela enquanto os usuários interagem com o app e podem ser atualizados automaticamente após um determinado período. Se você começou a usar os anúncios para dispositivos móveis agora, eles são um bom lugar para começar. Estudo de caso.

Pré-requisitos

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 código do bloco de anúncios de teste dedicado para banners, que varia de acordo com a plataforma do dispositivo:

  • Android: ca-app-pub-3940256099942544/6300978111
  • iOS: ca-app-pub-3940256099942544/2934735716

Esses IDs de bloco de anúncios foram configurados especialmente para retornar anúncios de teste para cada solicitação, e você pode usá-los nos seus próprios aplicativos durante a codificação, teste e depuração. Basta substituí-lo pelo código do seu bloco de anúncios antes de publicar o aplicativo.

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

Configurar um AdView

Os anúncios de banner são exibidos em objetos AdView. Portanto, a primeira etapa para integrar esses anúncios é criar e posicionar um AdView.

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

     #include "firebase/gma/ad_view.h"
    
  2. Declare e instancie um objeto AdView:

      firebase::gma::AdView* ad_view;
      ad_view = new firebase::gma::AdView();
    
  3. Crie um AdSize e inicialize a visualização de anúncios usando a visualização mãe AdParent. A visualização mãe é uma referência JNI jobject a um Activity do Android ou um ponteiro para uma UIView do iOS transmitida para um tipo AdParent:

     // 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(my_ad_parent);
     firebase::Future result =
       ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner);
    
  4. Como alternativa à retenção do futuro como uma variável, é possível verificar periodicamente o status da operação de inicialização invocando InitializeLastResult() no objeto AdView. 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 = ad_view->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.
      }
    
  5. 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.

Definir a posição do anúncio

É possível definir a posição do AdView a qualquer momento após a inicialização:

firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);

Carregar um anúncio

É possível carregar um anúncio assim que AdView for inicializado:

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);

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

Exibir o anúncio

Por fim, exiba o anúncio na tela chamando Show(). Esse método pode ser invocado a qualquer momento após a inicialização do anúncio:

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

Eventos de anúncio

O SDK dos anúncios para dispositivos móveis do Google para C++ fornece uma classe AdListener que você pode estender e transmitir a AdView::SetListener() para ser notificado sobre alterações no estado da visualização do anúncio.

A extensão de métodos em AdListener é opcional, então você só precisa implementar os métodos que quiser. Veja abaixo um exemplo de implementação de uma classe que estende toda a classe de métodos AdListener:

class ExampleAdListener
    : public firebase::gma::AdListener {
 public:
  ExampleAdListener() {}
  void OnAdClicked() override {
    // This method is invoked when the user clicks the ad.
  }

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

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

  void OnAdOpened() override {
    // This method is invoked when an ad opens an overlay that covers the screen.
  }
};

ExampleAdListener* ad_listener = new ExampleAdListener();
ad_view->SetAdListener(ad_listener);

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

Tamanho em pontos (L x A) Descrição Disponibilidade constante de firebase::gma::AdSize
320 x 50 Banner Telefones e tablets kBanner
320 x 100 Banner grande Telefones e tablets kLargeBanner
300 x 250 Retângulo IAB médio Telefones e tablets kMediumRectangle
468 x 60 Banner IAB de tamanho total Tablets kFullBanner
728 x 90 Cabeçalho IAB Tablets kLeaderboard
Largura fornecida x Altura adaptável Banner adaptativo Telefones e tablets N/A

Tamanhos de anúncio personalizados

Para definir um tamanho de banner personalizado, defina as dimensões desejadas usando o construtor firebase::gma::AdSize com os parâmetros de largura e altura, conforme mostrado aqui:

firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);

Outros recursos

Exemplo no GitHub

Histórias de sucesso