Os anúncios de banner ocupam um lugar 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ê não tem experiência com a publicidade para dispositivos móveis, eles são um ótimo ponto de partida. Estudo de caso.
Este guia mostra como integrar anúncios de banner do AdMob a um app Android. Além de snippets de código e instruções, ele também inclui informações sobre o dimensionamento adequado de banners e links para outros recursos.
Pré-requisitos
- Leia o Guia explicativo.
Adicionar AdView ao layout
A primeira etapa para mostrar 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 um ao arquivo de layout XML
correspondente. Confira 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 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 do banner para mais detalhes.ads:adUnitId
: defina como o identificador exclusivo atribuído ao bloco de anúncios no app em que os anúncios serão exibidos. Se você mostrar anúncios de banner em atividades diferentes, cada uma vai exigir um bloco de anúncios.
Como alternativa, você pode 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 teste 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 configurado especialmente para retornar anúncios de teste para cada solicitação, e você pode usá-lo nos seus próprios aplicativos durante a programação, os testes e a depuração. Basta substituí-lo pelo seu próprio 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.
Carregar um anúncio
Com o AdView em vigor, a próxima etapa é
carregar um anúncio. Isso pode ser feito com o método
loadAd()
na classe AdView
. Ele usa 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.
Confira 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)
}
}
Se o anúncio não for carregado, não será necessário solicitar outro explicitamente, desde que você tenha configurado o bloco de anúncios para atualização. O SDK dos anúncios para dispositivos móveis do Google respeita qualquer taxa de atualização especificada na interface da WebAdMob . Se você não tiver ativado a atualização, será necessário emitir uma nova solicitação.
Pronto! Seu app está pronto para exibir anúncios de banner.
Eventos de anúncio
Para personalizar ainda mais o comportamento do anúncio, você pode vincular a vários eventos do ciclo de vida do anúncio: carregamento, abertura, fechamento e assim por diante. Você pode
detectar esses eventos com 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 modificá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 aplicativo depois de ver 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 Como depurar 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 à sua atividade ou fragmento até ter certeza de que um anúncio será carregado, por exemplo, você pode fazer isso aqui.
|
onAdOpened() |
O método onAdOpened()
é invocado quando um anúncio abre uma sobreposição que cobre a tela.
|
Tamanhos de banner
O tamanho do contêiner em que você coloca o anúncio precisa ter pelo menos o mesmo tamanho do banner. Se o contêiner tiver padding, isso diminuirá o tamanho dele. Quando o anúncio de banner não couber no contêiner, o banner não será exibido, e você receberá este aviso nos registros:
W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.
A tabela abaixo lista os tamanhos padrão de banner.
Tamanho em dp (L x A) | Descrição | Disponibilidade | Constante "AdSize" |
---|---|---|---|
320x50 | Banner | Smartphones e tablets | BANNER |
320 x 100 | Banner grande | Smartphones e tablets | LARGE_BANNER |
300 x 250 | Retângulo IAB médio | Smartphones e tablets | MEDIUM_RECTANGLE |
468 x 60 | Banner do IAB em tamanho real | Tablets | FULL_BANNER |
728 x 90 | Cabeçalho IAB | Tablets | LEADERBOARD |
Largura fornecida x Altura adaptável | Banner adaptativo | Smartphones e tablets | N/A |
Largura da tela x 32|50|90 | Banner inteligente | Smartphones e tablets | SMART_BANNER |
Para definir um tamanho de banner personalizado, defina o AdSize
desejado como mostrado abaixo:
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 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 optar por desativá-la. Se isso se aplica ao seu app, recomendamos ativar a aceleração de hardware para
classes Activity
que usam anúncios.
Ativar a aceleração de hardware
Se o app não se comporta corretamente com a aceleração de hardware ativada
globalmente, 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 AndroidManifest.xml
. O exemplo abaixo 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 saber mais sobre as opções de controle dela. 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 atividade em si precisa ter a aceleração de hardware ativada.
Outros recursos
Exemplos no GitHub
App de exemplo RecyclerView de banner: Java
Tutoriais em vídeo "Mobile Ads Garage"
Histórias de sucesso
Próximas etapas
Confira os seguintes tópicos: