Anúncios em banner

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

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, saiba que eles são um bom lugar para começar. Estudo de caso.

Este guia mostra como integrar anúncios de banner deAdMob em um app Android. Além de snippets de código e instruções, ele também inclui informações sobre como dimensionar banners corretamente e links para recursos adicionais.

Pré-requisitos

Adicionar AdView ao layout

A primeira etapa para exibir um banner é colocar AdView no layout da Activity ou do Fragment em que você quer exibi-lo. A maneira mais fácil de fazer isso é adicionar uma ao arquivo de layout XML correspondente. Veja um exemplo que mostra a AdView da atividade:

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...

Observe os seguintes atributos obrigatórios:

  • ads:adSize: defina para o tamanho de anúncio que você quer usar. Se você não quiser usar o tamanho padrão definido pela constante, defina um tamanho personalizado. Consulte a seção de tamanho de banner abaixo para mais detalhes.
  • ads:adUnitId: defina como o identificador exclusivo atribuído ao bloco de anúncios no seu app em que os anúncios vão ser exibidos. Se você exibir anúncios de banner em atividades diferentes, cada um precisará de um bloco de anúncios.

Como alternativa, é possível criar AdView de maneira programática:

Java

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

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 banners do Android:

ca-app-pub-3940256099942544/6300978111

Ele foi especialmente configurado para retornar anúncios de teste para cada solicitação, e você pode usar os anúncios em seus próprios aplicativos durante a programação, teste e 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.

Carregar um anúncio

Depois que AdView estiver no lugar certo, o próximo passo é carregar um anúncio. Isso é feito com o método loadAd() na classe AdView. Ele usa um parâmetro AdRequest, que contém informações de ambiente de execução (como informações de segmentação) sobre uma única solicitação de anúncio.

Veja um exemplo que mostra como carregar um anúncio no método onCreate() de uma Activity:

MainActivity (trecho)

Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

Pronto! Seu app está pronto para exibir anúncios de banner.

Eventos de anúncio

Para personalizar ainda mais o comportamento do seu anúncio, você pode se conectar a vários eventos do ciclo de vida do anúncio: carregamento, abertura, fechamento e assim por diante. É possível detectar esses eventos usando a classe AdListener.

Para usar um AdListener com AdView, chame o método setAdListener():

Java

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

mAdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

Cada um dos métodos substituíveis em AdListener corresponde a um evento no ciclo de vida de um anúncio.

Métodos substituíveis
onAdClicked() O método onAdClicked() é invocado quando um clique é registrado para um anúncio.
onAdClosed() O método onAdClosed() é invocado quando um usuário retorna ao app depois de visualizar o URL de destino de um anúncio. O app pode usá-lo para retomar atividades suspensas ou realizar qualquer outro trabalho necessário para se preparar para a interação. Consulte o exemplo de AdListener da AdMob para ver uma implementação dos métodos de listener de anúncios no app de demonstração da API do Android.
onAdFailedToLoad() O método onAdFailedToLoad() é o único que inclui um parâmetro. O parâmetro de erro do tipo LoadAdError descreve o erro que ocorreu. Para mais informações, consulte a documentação sobre depuração de erros de carregamento de anúncios.
onAdImpression() O método onAdImpression() é invocado quando uma impressão é registrada para um anúncio.
onAdLoaded() O método onAdLoaded() é executado quando um anúncio termina de carregar. Se quiser atrasar a adição de AdView à atividade ou ao fragmento até ter certeza de que um anúncio será carregado, por exemplo, faça isso aqui.
onAdOpened() O método onAdOpened() é invocado quando um anúncio abre uma sobreposição que cobre a tela.

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

Tamanho em dp (L x A) Descrição Disponibilidade Constante "AdSize"
320 x 50 Banner Telefones e tablets BANNER
320 x 100 Banner grande Telefones e tablets LARGE_BANNER
300 x 250 Retângulo médio IAB Telefones e tablets MEDIUM_RECTANGLE
468 x 60 Banner de tamanho original do IAB Tablets FULL_BANNER
728 x 90 Quadro de liderança IAB Tablets LEADERBOARD
Largura fornecida x Altura adaptável Banner adaptativo Telefones e tablets N/A
Largura da tela x 32|50|90 Banner inteligente Telefones e tablets SMART_BANNER
Saiba mais sobre banners adaptativos destinados a substituir banners inteligentes.

Para definir um tamanho de banner personalizado, defina o AdSize desejado, como mostrado aqui:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

Aceleração de hardware para anúncios em vídeo

Para que os anúncios em vídeo sejam exibidos com sucesso nas suas visualizações de anúncios de banner, a aceleração de hardware precisa estar ativada.

A aceleração de hardware é ativada por padrão, mas alguns apps podem desativá-la. Se isso se aplica ao seu app, recomendamos ativar a aceleração de hardware para as classes de atividade que usam anúncios.

Como ativar a aceleração de hardware

Se o app não se comporta da forma correta com a aceleração de hardware globalmente ativada, ela também pode ser controlada para atividades individuais. Para ativar ou desativar a aceleração de hardware, use o atributo android:hardwareAccelerated para os elementos <application> e <activity> no seu AndroidManifest.xml. O exemplo a seguir ativa a aceleração de hardware para todo o app, mas a desativa para uma atividade:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Consulte o Guia de aceleração de hardware para ver mais informações sobre as opções de controle de aceleração de hardware. As visualizações de anúncios individuais não poderão ser ativadas para aceleração de hardware se a atividade estiver desativada. Portanto, a própria atividade precisa ter a aceleração de hardware ativada.

Outros recursos

Exemplos no GitHub

  • Exemplo de anúncios de banner: Java | Kotlin

  • Demonstração de recursos avançados: Java | Kotlin

  • App de exemplo RecyclerView de banner: Java

Tutoriais em vídeo sobre anúncios de garagem para dispositivos móveis

Histórias de sucesso