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ê é novo na publicidade para celular, eles são um bom lugar para começar. Estudo de caso.
Este guia mostra como integrar anúncios de banner doAdMob em um app para Android. Além de snippets de código e instruções, ele também inclui informações sobre o dimensionamento correto de banners e links para recursos adicionais.
Pré-requisitos
- Concluir o Guia de primeiros passos.
Adicionar AdView ao layout
A primeira etapa para exibir um banner é colocar AdView
no layout do 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 o AdView
de uma 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 como o tamanho de anúncio que você deseja usar. Se você não quiser usar o tamanho padrão definido pela constante, defina um tamanho personalizado. Consulte a seção sobre tamanho de banner abaixo para detalhes.ads:adUnitId
: defina como o identificador exclusivo atribuído ao bloco de anúncios no seu app em que os anúncios serão exibidos. Se você exibir anúncios de banner em diferentes atividades, cada uma delas exigirá um bloco de anúncios.
Como alternativa, é possível criar AdView
programaticamente:
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 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 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ê está livre para usá-lo em seus próprios aplicativos durante a codificação, teste e depuração. Basta substituí-lo por seu próprio código de bloco de anúncios antes de publicar seu 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.
Carregar um anúncio
Depois que AdView estiver em vigor, a próxima etapa será carregar um anúncio. Isso é feito com o método loadAd()
na classe AdView
. Ele utiliza um parâmetro AdRequest
, que contém informações de tempo 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 um 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 aplicativo 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 no ciclo de vida do anúncio: carregamento, abertura, fechamento e assim por diante. Você pode detectar esses eventos por meio da 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.
Seu 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 de 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 você 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.
|
Tamanhos de banner
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 IAB médio | Telefones e tablets | MEDIUM_RECTANGLE |
468 x 60 | Banner IAB de tamanho total | Tablets | FULL_BANNER |
728 x 90 | Cabeçalho IAB | Tablets | LEADERBOARD |
Largura fornecida x Altura adaptável | Banner adaptativo | Telefones e tablets | POLÍTICA SOBRE SAÚDE E MEDICAMENTOS |
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, conforme 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 visualizações de anúncio de banner, a aceleração de hardware precisa estar ativada.
A aceleração de hardware é ativada por padrão, mas alguns apps podem optar por desativá-la. Se isso se aplica ao seu app, recomendamos ativar a aceleração de hardware para classes de atividade que usam anúncios.
Como ativar a aceleração de hardware
Se o app não se comportar corretamente com a aceleração de hardware ativada globalmente, também é possível controlá-la para atividades individuais. Para ativar ou
desativar a aceleração de hardware, use o atributo android:hardwareAccelerated
para os elementos
<application>
e
<activity>
no 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 HW para mais informações sobre as opções de controle da aceleração de hardware. As visualizações de anúncios individuais não podem 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
App de amostra RecyclerView de banner: Java
Tutoriais em vídeo do Mobile Ads Garage
Histórias de sucesso
Próximas etapas
Saiba mais sobre a privacidade do usuário.